feat: Enhance people picker access control to include roles permissions

This commit is contained in:
Danny Avila 2025-08-04 12:51:27 -04:00
parent 9403613ef2
commit 82047d9416
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
7 changed files with 457 additions and 22 deletions

View file

@ -538,12 +538,14 @@ export const interfaceSchema = z
.object({
users: z.boolean().optional(),
groups: z.boolean().optional(),
roles: z.boolean().optional(),
})
.optional(),
user: z
.object({
users: z.boolean().optional(),
groups: z.boolean().optional(),
roles: z.boolean().optional(),
})
.optional(),
})
@ -583,10 +585,12 @@ export const interfaceSchema = z
admin: {
users: true,
groups: true,
roles: true,
},
user: {
users: false,
groups: false,
roles: false,
},
},
marketplace: {

View file

@ -69,6 +69,7 @@ export enum Permissions {
OPT_OUT = 'OPT_OUT',
VIEW_USERS = 'VIEW_USERS',
VIEW_GROUPS = 'VIEW_GROUPS',
VIEW_ROLES = 'VIEW_ROLES',
}
export const promptPermissionsSchema = z.object({
@ -124,6 +125,7 @@ export type TWebSearchPermissions = z.infer<typeof webSearchPermissionsSchema>;
export const peoplePickerPermissionsSchema = z.object({
[Permissions.VIEW_USERS]: z.boolean().default(true),
[Permissions.VIEW_GROUPS]: z.boolean().default(true),
[Permissions.VIEW_ROLES]: z.boolean().default(true),
});
export type TPeoplePickerPermissions = z.infer<typeof peoplePickerPermissionsSchema>;