@@ -3,6 +3,7 @@ import { User } from '../users/types.js';
33import {
44 BackupsAction ,
55 BackupsPermission ,
6+ ClusterAction ,
67 ClusterPermission ,
78 CollectionsAction ,
89 CollectionsPermission ,
@@ -22,44 +23,48 @@ import {
2223} from './types.js' ;
2324
2425export class PermissionGuards {
25- private static includes = ( permission : Permission , ...actions : string [ ] ) : boolean =>
26+ private static includes = < A extends string > ( permission : Permission , ...actions : A [ ] ) : boolean =>
2627 actions . filter ( ( a ) => Array . from < string > ( permission . actions ) . includes ( a ) ) . length > 0 ;
2728 static isBackups = ( permission : Permission ) : permission is BackupsPermission =>
28- PermissionGuards . includes ( permission , 'manage_backups' ) ;
29+ PermissionGuards . includes < BackupsAction > ( permission , 'manage_backups' ) ;
2930 static isCluster = ( permission : Permission ) : permission is ClusterPermission =>
30- PermissionGuards . includes ( permission , 'read_cluster' ) ;
31+ PermissionGuards . includes < ClusterAction > ( permission , 'read_cluster' ) ;
3132 static isCollections = ( permission : Permission ) : permission is CollectionsPermission =>
32- PermissionGuards . includes (
33+ PermissionGuards . includes < CollectionsAction > (
3334 permission ,
3435 'create_collections' ,
3536 'delete_collections' ,
3637 'read_collections' ,
37- 'update_collections' ,
38- 'manage_collections'
38+ 'update_collections'
3939 ) ;
4040 static isData = ( permission : Permission ) : permission is DataPermission =>
41- PermissionGuards . includes (
41+ PermissionGuards . includes < DataAction > (
4242 permission ,
4343 'create_data' ,
4444 'delete_data' ,
4545 'read_data' ,
46- 'update_data' ,
47- 'manage_data'
46+ 'update_data'
4847 ) ;
4948 static isNodes = ( permission : Permission ) : permission is NodesPermission =>
50- PermissionGuards . includes ( permission , 'read_nodes' ) ;
49+ PermissionGuards . includes < NodesAction > ( permission , 'read_nodes' ) ;
5150 static isRoles = ( permission : Permission ) : permission is RolesPermission =>
52- PermissionGuards . includes ( permission , 'create_role' , 'read_roles' , 'update_roles' , 'delete_roles' ) ;
51+ PermissionGuards . includes < RolesAction > (
52+ permission ,
53+ 'create_roles' ,
54+ 'read_roles' ,
55+ 'update_roles' ,
56+ 'delete_roles'
57+ ) ;
5358 static isTenants = ( permission : Permission ) : permission is TenantsPermission =>
54- PermissionGuards . includes (
59+ PermissionGuards . includes < TenantsAction > (
5560 permission ,
5661 'create_tenants' ,
5762 'delete_tenants' ,
5863 'read_tenants' ,
5964 'update_tenants'
6065 ) ;
6166 static isUsers = ( permission : Permission ) : permission is UsersPermission =>
62- PermissionGuards . includes ( permission , 'read_users' , 'assign_and_revoke_users' ) ;
67+ PermissionGuards . includes < UsersAction > ( permission , 'read_users' , 'assign_and_revoke_users' ) ;
6368 static isPermission = ( permissions : PermissionsInput ) : permissions is Permission =>
6469 ! Array . isArray ( permissions ) ;
6570 static isPermissionArray = ( permissions : PermissionsInput ) : permissions is Permission [ ] =>
0 commit comments