Skip to content

Commit 6d605b8

Browse files
author
psubram3
committed
fix keycloak role issue with default role
1 parent 311dcc2 commit 6d605b8

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

src/lib/server/oidc.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,11 +244,25 @@ const mutation = `mutation InsertUser($input: users_insert_input!) {
244244

245245
async function upsertUser(decodedAccessToken: HasuraToken, accessToken: string): Promise<void> {
246246
const username = decodedAccessToken['https://hasura.io/jwt/claims']['x-hasura-user-id'];
247-
const defaultRole = decodedAccessToken['https://hasura.io/jwt/claims']['x-hasura-default-role'];
247+
// const defaultRole = decodedAccessToken['https://hasura.io/jwt/claims']['x-hasura-default-role'];
248248
const allowedRoles = decodedAccessToken['https://hasura.io/jwt/claims']['x-hasura-allowed-roles'];
249+
250+
// set the active and default role manually:
251+
let defaultRole = 'viewer';
252+
switch (true) {
253+
case allowedRoles.includes('aerie_admin'):
254+
defaultRole = 'aerie_admin';
255+
break;
256+
case allowedRoles.includes('user'):
257+
defaultRole = 'user';
258+
break;
259+
default:
260+
defaultRole = 'viewer';
261+
}
262+
249263
const input = { default_role: defaultRole, username };
250264
const user: User = {
251-
activeRole: defaultRole,
265+
activeRole: defaultRole, // TODO: check allowed roles and pick highest. forget about default role.
252266
allowedRoles,
253267
defaultRole,
254268
id: username, // TODO: not exactly. I think this is supposed to be decodedAccessToken.sub. but we don't even use it.

0 commit comments

Comments
 (0)