Patch getProjectPermission

This commit is contained in:
Tuan Dang
2024-04-11 13:00:50 -07:00
parent 09b63eee90
commit ff8354605c
2 changed files with 18 additions and 11 deletions
+2 -2
View File
@@ -482,8 +482,8 @@ export const registerScimRouter = async (server: FastifyZodProvider) => {
}, },
onRequest: verifyAuth([AuthMode.SCIM_TOKEN]), onRequest: verifyAuth([AuthMode.SCIM_TOKEN]),
handler: async (req) => { handler: async (req) => {
console.log("PATCH /Groups/:groupId req.body: ", req.body); // console.log("PATCH /Groups/:groupId req.body: ", req.body);
console.log("PATCH /Groups/:groupId req.body: ", req.body.Operations[0]); // console.log("PATCH /Groups/:groupId req.body: ", req.body.Operations[0]);
const group = await req.server.services.scim.updateScimGroupNamePatch({ const group = await req.server.services.scim.updateScimGroupNamePatch({
groupId: req.params.groupId, groupId: req.params.groupId,
orgId: req.permission.orgId, orgId: req.permission.orgId,
@@ -175,7 +175,7 @@ export const permissionDALFactory = (db: TDbClient) => {
] ]
}); });
const groupRoles = groupDocs.length const groupPermission = groupDocs.length
? sqlNestRelationships({ ? sqlNestRelationships({
data: groupDocs, data: groupDocs,
key: "projectId", key: "projectId",
@@ -207,16 +207,23 @@ export const permissionDALFactory = (db: TDbClient) => {
}).parse(data) }).parse(data)
} }
] ]
})?.[0]?.roles })
: []; : [];
if (!permission?.[0]) return undefined; if (!permission?.[0] && !groupPermission[0]) return undefined;
// when introducting cron mode change it here // when introducting cron mode change it here
const activeRoles = permission?.[0]?.roles?.filter( const activeRoles =
({ isTemporary, temporaryAccessEndTime }) => permission?.[0]?.roles?.filter(
!isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime) ({ isTemporary, temporaryAccessEndTime }) =>
); !isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime)
) ?? [];
const activeGroupRoles =
groupPermission?.[0]?.roles?.filter(
({ isTemporary, temporaryAccessEndTime }) =>
!isTemporary || (isTemporary && temporaryAccessEndTime && new Date() < temporaryAccessEndTime)
) ?? [];
const activeAdditionalPrivileges = permission?.[0]?.additionalPrivileges?.filter( const activeAdditionalPrivileges = permission?.[0]?.additionalPrivileges?.filter(
({ isTemporary, temporaryAccessEndTime }) => ({ isTemporary, temporaryAccessEndTime }) =>
@@ -224,8 +231,8 @@ export const permissionDALFactory = (db: TDbClient) => {
); );
return { return {
...permission[0], ...(permission[0] || groupPermission[0]),
roles: [...activeRoles, ...groupRoles], roles: [...activeRoles, ...activeGroupRoles],
additionalPrivileges: activeAdditionalPrivileges additionalPrivileges: activeAdditionalPrivileges
}; };
} catch (error) { } catch (error) {