User and OrgMemberInfo
User Object
The UserFromToken object contains information about the user and the organizations they are a member of.
It also has helper functions for checking org membership, roles, and permissions.
Properties
- Name
 userId- Type
 - string
 - Description
 The user's unique ID
- Name
 email- Type
 - string
 - Description
 The user's email address
- Name
 username- Type
 - string | undefined
 - Description
 The user's username
- Name
 firstName- Type
 - string | undefined
 - Description
 The user's first name
- Name
 lastName- Type
 - string | undefined
 - Description
 The user's last name
- Name
 legacyUserId- Type
 - string | undefined
 - Description
 The user's legacy user ID. This is only set if you migrated from an external source. See Migrating Users for more information.
- Name
 canCreateOrgs- Type
 - boolean
 - Description
 Whether the user can create organizations
- Name
 createdAt- Type
 - number
 - Description
 The timestamp of when the user was created
- Name
 emailConfirmed- Type
 - boolean
 - Description
 If the user has confirmed their email
- Name
 hasPassword- Type
 - boolean
 - Description
 If the user has set a password to login
- Name
 lastActiveAt- Type
 - number
 - Description
 The timestamp of when the user was last active
- Name
 mfaEnabled- Type
 - boolean
 - Description
 Whether the user has enabled MFA
- Name
 updatePasswordRequired- Type
 - boolean
 - Description
 Whether the user is required to update their password
- Name
 impersonatorUserId- Type
 - string | undefined
 - Description
 If the user is being impersonated, this is the ID of the impersonator. See User Impersonation for more information.
- Name
 properties- Type
 - object | undefined
 - Description
 Additional properties set on the user. See User Properties for more information.
- Name
 loginMethod- Type
 - object
 - Description
 The method the user used to log in. Returns the Login Method Property object.
- Name
 activeOrgId- Type
 - string | undefined
 - Description
 The ID of the org set by the setActiveOrg function returned in the useUser hook.
- Name
 getOrg- Type
 - (orgId: string) => OrgMemberInfo | undefined
 - Description
 Returns the OrgMemberInfo for the given org ID
- Name
 getOrgByName- Type
 - (orgName: string) => OrgMemberInfo | undefined
 - Description
 Returns the OrgMemberInfo for the given org name
- Name
 getOrgs- Type
 - () => OrgMemberInfo[]
 - Description
 Returns all orgs that the user is a member of
- Name
 isImpersonating- Type
 - () => boolean
 - Description
 Whether the current user is being impersonated by someone else. See User Impersonation for more information.
- Name
 getActiveOrgId- Type
 - () => string | undefined
 - Description
 Returns the ID of the org set by the setActiveOrg function returned in the useUser hook.
- Name
 getActiveOrg- Type
 - () => OrgMemberInfo
 - Description
 Returns the OrgMemberInfo of the org set by the setActiveOrg function returned in the useUser hook.
export async function getServerSideProps(context) {
    const user = await getUserFromServerSideProps(context)
    if (!user) {
        return { redirect: { destination: '/api/auth/login' } }
    }
    // this can be from anywhere
    const orgId = getOrgIdFromContext(context) 
    const isAdmin = user.getOrg(orgId)?.isRole("Admin")
    if (!isAdmin) {
        return { redirect: { destination: '/somewhere-else' } }
    }
    return {
        props: {},
    }
}
OrgMemberInfo Object
Contains information about the user's membership in an organization, such as their role and permissions. It's returned by the User object's getOrg, getOrgByName, and getOrgs functions.
Properties
- Name
 orgId- Type
 - string
 - Description
 The ID of the organization
- Name
 orgName- Type
 - string
 - Description
 The name of the organization
- Name
 urlSafeOrgName- Type
 - string
 - Description
 The URL-safe name of the organization
- Name
 userAssignedRole- Type
 - string
 - Description
 The role of the user within this organization
- Name
 userPermissions- Type
 - string[]
 - Description
 The permissions of the user within this organization
- Name
 orgMetadata- Type
 - object
 - Description
 A JSON blob of the org's metadata
- Name
 userInheritedRolesPlusCurrentRole- Type
 - object
 - Description
 The role of the user within this organization plus each inherited role
- Name
 isRole- Type
 - (role: string) => boolean
 - Description
 Whether the user has the given role in this organization
- Name
 isAtLeastRole- Type
 - (role: string) => boolean
 - Description
 Whether the user has at least the given role in this organization
- Name
 hasPermission- Type
 - (permission: string) => boolean
 - Description
 Whether the user has the given permission in this organization
- Name
 hasAllPermissions- Type
 - (permissions: string[]) => boolean
 - Description
 Whether the user has all the given permissions in this organization
- Name
 orgRoleStructure- Type
 - string
 - Description
 The role structure set for your project. See multi roles per user for more information.
- Name
 userAssignedAdditionalRoles- Type
 - string[]
 - Description
 If using multiple roles per user, returns an array of roles that the user belongs to. Excludes the
userAssignedRole.
const org = user.getOrg("my-org-id")
const isAdmin = org?.isRole("Admin")
if (isAdmin) {
    console.log("User is an admin in", org.orgName)
}
