Bearer token authentication fails with enterprise license active
This commit is contained in:
1 file changed
+7
-5
@@ -191,13 +191,15 @@ async function buildUserFromToken(tokenRecord: any): Promise<AuthenticatedUser |
|
|||||||
permissions = adminRole?.permissions ?? {} as Permissions;
|
permissions = adminRole?.permissions ?? {} as Permissions;
|
||||||
} else {
|
} else {
|
||||||
isAdmin = await userHasAdminRole(dbUser.id);
|
isAdmin = await userHasAdminRole(dbUser.id);
|
||||||
const roles = await getUserRoles(dbUser.id);
|
const userRoleAssignments = await getUserRoles(dbUser.id);
|
||||||
// Merge permissions from all roles
|
// Merge permissions from all roles
|
||||||
permissions = {} as Permissions;
|
permissions = {} as Permissions;
|
||||||
for (const role of roles) {
|
for (const assignment of userRoleAssignments) {
|
||||||
const rolePerms = typeof role.permissions === 'string'
|
if (!assignment.role) continue;
|
||||||
? JSON.parse(role.permissions)
|
const rolePerms = typeof assignment.role.permissions === 'string'
|
||||||
: role.permissions;
|
? JSON.parse(assignment.role.permissions)
|
||||||
|
: assignment.role.permissions;
|
||||||
|
if (!rolePerms) continue;
|
||||||
for (const [key, actions] of Object.entries(rolePerms)) {
|
for (const [key, actions] of Object.entries(rolePerms)) {
|
||||||
if (!permissions[key as keyof Permissions]) {
|
if (!permissions[key as keyof Permissions]) {
|
||||||
permissions[key as keyof Permissions] = [];
|
permissions[key as keyof Permissions] = [];
|
||||||
|
|||||||
Reference in new issue
Block a user