Skip to content
This repository was archived by the owner on Jul 24, 2025. It is now read-only.
This repository was archived by the owner on Jul 24, 2025. It is now read-only.

Handling multiple roles from different keys #697

@jongbonga

Description

@jongbonga

Hey

I have this structure

user1 = {
    name: 'John',
    department: ['tech', 'operations'],
    tech: { role: 'manager' }
}


user2 = {
    name: 'Steve',
    department: ['hr'],
    hr: { role: 'manager' }
}

My rolesKey is set to department.

I want to allow all to log in regardless of their departments but go to /unauthorized if they don't have the department tech. if they do have it, they will still be unauthorized if they don't have the role of manager or admin

my options look like this

options: {
    rolesKey: "department",
    notFoundRedirect: { path: "/dashboard" },
    forbiddenRedirect: { path: "/unauthorized" }
}

my router meta looks like this

meta: {
  roles: ["manager", "admin"],
  rolesKey: "tech.role"
}

my user2 is logged in but not being redirected anywhere, not even to the forbuddenRedirect.
Is there a way of handling this use case? how do I avoid the error properties of undefined (reading 'role') when user2 isn't part of tech and thus can't access the tech.role?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions