@@ -3,6 +3,7 @@ import { User } from '../users/types.js';
3
3
import {
4
4
BackupsAction ,
5
5
BackupsPermission ,
6
+ ClusterAction ,
6
7
ClusterPermission ,
7
8
CollectionsAction ,
8
9
CollectionsPermission ,
@@ -22,44 +23,48 @@ import {
22
23
} from './types.js' ;
23
24
24
25
export class PermissionGuards {
25
- private static includes = ( permission : Permission , ...actions : string [ ] ) : boolean =>
26
+ private static includes = < A extends string > ( permission : Permission , ...actions : A [ ] ) : boolean =>
26
27
actions . filter ( ( a ) => Array . from < string > ( permission . actions ) . includes ( a ) ) . length > 0 ;
27
28
static isBackups = ( permission : Permission ) : permission is BackupsPermission =>
28
- PermissionGuards . includes ( permission , 'manage_backups' ) ;
29
+ PermissionGuards . includes < BackupsAction > ( permission , 'manage_backups' ) ;
29
30
static isCluster = ( permission : Permission ) : permission is ClusterPermission =>
30
- PermissionGuards . includes ( permission , 'read_cluster' ) ;
31
+ PermissionGuards . includes < ClusterAction > ( permission , 'read_cluster' ) ;
31
32
static isCollections = ( permission : Permission ) : permission is CollectionsPermission =>
32
- PermissionGuards . includes (
33
+ PermissionGuards . includes < CollectionsAction > (
33
34
permission ,
34
35
'create_collections' ,
35
36
'delete_collections' ,
36
37
'read_collections' ,
37
- 'update_collections' ,
38
- 'manage_collections'
38
+ 'update_collections'
39
39
) ;
40
40
static isData = ( permission : Permission ) : permission is DataPermission =>
41
- PermissionGuards . includes (
41
+ PermissionGuards . includes < DataAction > (
42
42
permission ,
43
43
'create_data' ,
44
44
'delete_data' ,
45
45
'read_data' ,
46
- 'update_data' ,
47
- 'manage_data'
46
+ 'update_data'
48
47
) ;
49
48
static isNodes = ( permission : Permission ) : permission is NodesPermission =>
50
- PermissionGuards . includes ( permission , 'read_nodes' ) ;
49
+ PermissionGuards . includes < NodesAction > ( permission , 'read_nodes' ) ;
51
50
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
+ ) ;
53
58
static isTenants = ( permission : Permission ) : permission is TenantsPermission =>
54
- PermissionGuards . includes (
59
+ PermissionGuards . includes < TenantsAction > (
55
60
permission ,
56
61
'create_tenants' ,
57
62
'delete_tenants' ,
58
63
'read_tenants' ,
59
64
'update_tenants'
60
65
) ;
61
66
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' ) ;
63
68
static isPermission = ( permissions : PermissionsInput ) : permissions is Permission =>
64
69
! Array . isArray ( permissions ) ;
65
70
static isPermissionArray = ( permissions : PermissionsInput ) : permissions is Permission [ ] =>
0 commit comments