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)
}