update oauth
This commit is contained in:
@@ -9,8 +9,11 @@ export interface AdminRequestUser {
|
||||
isSuperAdmin: boolean;
|
||||
canAccessAdmin: boolean;
|
||||
canManageRoles: boolean;
|
||||
canViewOAuth: boolean;
|
||||
canManageOAuth: boolean;
|
||||
canManageAllOAuth: boolean;
|
||||
canManageUsers: boolean;
|
||||
canManageAllUsers: boolean;
|
||||
canViewUsers: boolean;
|
||||
canManageSettings: boolean;
|
||||
roles: string[];
|
||||
@@ -48,8 +51,11 @@ export class AdminGuard implements CanActivate {
|
||||
isSuperAdmin: profile.isSuperAdmin,
|
||||
canAccessAdmin: Boolean(profile.canAccessAdmin),
|
||||
canManageRoles: Boolean(profile.canManageRoles),
|
||||
canViewOAuth: Boolean(profile.canViewOAuth),
|
||||
canManageOAuth: Boolean(profile.canManageOAuth),
|
||||
canManageAllOAuth: Boolean(profile.canManageAllOAuth),
|
||||
canManageUsers: Boolean(profile.canManageUsers),
|
||||
canManageAllUsers: Boolean(profile.canManageAllUsers),
|
||||
canManageSettings: Boolean(profile.canManageSettings),
|
||||
canViewUsers: Boolean(profile.canViewUsers),
|
||||
roles: profile.roles ?? [],
|
||||
@@ -71,8 +77,19 @@ export class SuperAdminGuard implements CanActivate {
|
||||
}
|
||||
}
|
||||
|
||||
export function assertAdminPermission(user: AdminRequestUser | undefined, permission: keyof Pick<AdminRequestUser, 'canManageOAuth' | 'canManageUsers' | 'canManageSettings'>) {
|
||||
type AdminPermissionKey = keyof Pick<
|
||||
AdminRequestUser,
|
||||
'canViewOAuth' | 'canManageOAuth' | 'canManageUsers' | 'canViewUsers' | 'canManageSettings'
|
||||
>;
|
||||
|
||||
export function assertAdminPermission(user: AdminRequestUser | undefined, permission: AdminPermissionKey) {
|
||||
if (!user?.[permission]) {
|
||||
throw new ForbiddenException('Недостаточно прав для выполнения действия');
|
||||
}
|
||||
}
|
||||
|
||||
export function assertAdminAnyPermission(user: AdminRequestUser | undefined, ...permissions: AdminPermissionKey[]) {
|
||||
if (!user || !permissions.some((permission) => user[permission])) {
|
||||
throw new ForbiddenException('Недостаточно прав для выполнения действия');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user