Begin add push groups SCIM

This commit is contained in:
Tuan Dang
2024-04-01 11:30:25 -07:00
parent 0c2e566184
commit f0b84d5bc9
9 changed files with 169 additions and 30 deletions
+63 -22
View File
@@ -250,40 +250,81 @@ export const registerScimRouter = async (server: FastifyZodProvider) => {
}
});
// TODO
server.route({
url: "/Users/:userId",
method: "PATCH",
url: "/Groups",
method: "POST",
schema: {
params: z.object({
userId: z.string().trim()
}),
body: z.object({
schemas: z.array(z.string()),
Operations: z.array(
z.object({
op: z.string().trim(),
path: z.string().trim().optional(),
value: z.union([
z.object({
active: z.boolean()
}),
z.string().trim()
])
})
)
displayName: z.string().trim(),
members: z.array(z.any()).length(0)
}),
response: {
200: z.object({
schemas: z.array(z.string()),
id: z.string().trim(),
displayName: z.string().trim(),
members: z.array(z.any()).length(0),
meta: z.object({
resourceType: z.string().trim()
})
})
}
},
onRequest: verifyAuth([AuthMode.SCIM_TOKEN]),
handler: async (req) => {
console.log("create group");
console.log("create group req.body: ", req.body);
const group = await req.server.services.scim.createScimGroup({
displayName: req.body.displayName,
orgId: req.permission.orgId
});
console.log("create group resulting group: ", group);
return group;
}
});
// TODO: GET /api/v1/scim/Groups/8432b0aa-93e0-4b55-af3c-cd3fcc176f81
server.route({
url: "/Groups/:groupId",
method: "GET",
schema: {
params: z.object({
groupId: z.string().trim()
}),
// body: z.object({
// schemas: z.array(z.string()),
// Operations: z.array(
// z.object({
// op: z.string().trim(),
// path: z.string().trim().optional(),
// value: z.union([
// z.object({
// active: z.boolean()
// }),
// z.string().trim()
// ])
// })
// )
// }),
response: {
200: z.object({})
}
},
onRequest: verifyAuth([AuthMode.SCIM_TOKEN]),
handler: async (req) => {
const user = await req.server.services.scim.updateScimUser({
userId: req.params.userId,
orgId: req.permission.orgId,
operations: req.body.Operations
console.log("get scim group endpoint start");
const group = await req.server.services.scim.getScimGroup({
groupId: req.params.groupId,
orgId: req.permission.orgId
});
return user;
console.log("get scim group endpoint end: ", group);
return group;
}
});