• Backend Libraries

  • APIs

  • Frontend Libraries

  • Fullstack Libraries

  • Remix
  • Backend Libraries

  • Sign in
  • 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
      pictureUrl
      Type
      string | undefined
      Description

      The URL of the user's profile picture

    • 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
      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 single and multi role 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)
    }