Skip to content

Commit 69ae2c4

Browse files
committed
Fix action typo, add generic to catch this in future
1 parent 2fcb05f commit 69ae2c4

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

src/roles/util.ts

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { User } from '../users/types.js';
33
import {
44
BackupsAction,
55
BackupsPermission,
6+
ClusterAction,
67
ClusterPermission,
78
CollectionsAction,
89
CollectionsPermission,
@@ -22,44 +23,48 @@ import {
2223
} from './types.js';
2324

2425
export 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

Comments
 (0)