45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import type { UserWarren } from '~/shared/types/warrens';
|
|
|
|
export type UserWarrenPermissionKey =
|
|
| 'canListFiles'
|
|
| 'canReadFiles'
|
|
| 'canModifyFiles'
|
|
| 'canDeleteFiles'
|
|
| 'canListShares'
|
|
| 'canListShares'
|
|
| 'canCreateShares'
|
|
| 'canModifyShares'
|
|
| 'canDeleteShares';
|
|
|
|
export function getUserWarrenPermissions(
|
|
userWarren: UserWarren
|
|
): [UserWarrenPermissionKey, boolean][] {
|
|
return [
|
|
['canListFiles', userWarren.canListFiles],
|
|
['canReadFiles', userWarren.canReadFiles],
|
|
['canModifyFiles', userWarren.canModifyFiles],
|
|
['canDeleteFiles', userWarren.canDeleteFiles],
|
|
['canListShares', userWarren.canListShares],
|
|
['canCreateShares', userWarren.canCreateShares],
|
|
['canModifyShares', userWarren.canModifyShares],
|
|
['canDeleteShares', userWarren.canDeleteShares],
|
|
];
|
|
}
|
|
|
|
const PERMISSION_NAMES: Record<UserWarrenPermissionKey, string> = {
|
|
canListFiles: 'List files',
|
|
canReadFiles: 'Read files',
|
|
canModifyFiles: 'Modify files',
|
|
canDeleteFiles: 'Delete files',
|
|
canListShares: 'List shares',
|
|
canCreateShares: 'Create shares',
|
|
canModifyShares: 'Modify shares',
|
|
canDeleteShares: 'Delete shares',
|
|
};
|
|
|
|
export function getUserWarrenPermissionName(
|
|
permission: UserWarrenPermissionKey
|
|
): string {
|
|
return PERMISSION_NAMES[permission];
|
|
}
|