Project started 🥂
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import { useAppSelector } from './useAppDispatch';
|
||||
|
||||
type Permission = 'download' | 'upload' | 'admin' | 'manage_users' | 'edit_metadata' | 'delete_tracks';
|
||||
|
||||
const ROLE_PERMISSIONS: Record<string, Permission[]> = {
|
||||
admin: ['download', 'upload', 'admin', 'manage_users', 'edit_metadata', 'delete_tracks'],
|
||||
user: ['download', 'upload'],
|
||||
};
|
||||
|
||||
export function usePermissions() {
|
||||
const user = useAppSelector((s) => s.auth.user);
|
||||
|
||||
const hasPermission = (permission: Permission): boolean => {
|
||||
if (!user) return false;
|
||||
return ROLE_PERMISSIONS[user.role]?.includes(permission) ?? false;
|
||||
};
|
||||
|
||||
const isAdmin = user?.role === 'admin';
|
||||
|
||||
return { hasPermission, isAdmin, user };
|
||||
}
|
||||
Reference in New Issue
Block a user