SI-2473-Acknowledge-Client-Roles
diff --git a/src/app/common/session-context.ts b/src/app/common/session-context.ts
index 5d66c35..549e3a0 100644
--- a/src/app/common/session-context.ts
+++ b/src/app/common/session-context.ts
@@ -45,8 +45,22 @@
const jwtHelper: JwtHelper = new JwtHelper();
const jwtPayload: JwtPayload = new JwtPayload();
const decoded: any = jwtHelper.decodeToken(accessToken);
+ jwtPayload.roles = [];
jwtPayload.name = decoded.name;
- jwtPayload.roles = decoded.realm_access.roles;
+
+ //add realm roles to jwtPayload.roles
+ if (decoded.realm_access && decoded.realm_access.roles) {
+ jwtPayload.roles = decoded.realm_access.roles;
+ }
+
+ //add client roles to jwtPayload.roles
+ const clientRoles = [];
+ const resourceAccessList = decoded.resource_access;
+ for (const el in resourceAccessList) {
+ clientRoles.push(...resourceAccessList[el].roles);
+ }
+ jwtPayload.roles.push(...clientRoles);
+
return jwtPayload;
}
}