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