add features
This commit is contained in:
@@ -1,13 +1,27 @@
|
||||
import { useAuth } from '../contexts/AuthContext';
|
||||
import { AusruestungKategorie } from '../types/equipment.types';
|
||||
|
||||
export function usePermissions() {
|
||||
const { user } = useAuth();
|
||||
const groups = user?.groups ?? [];
|
||||
|
||||
const isAdmin = groups.includes('dashboard_admin');
|
||||
const isFahrmeister = groups.includes('dashboard_fahrmeister');
|
||||
const isZeugmeister = groups.includes('dashboard_zeugmeister');
|
||||
|
||||
return {
|
||||
isAdmin: groups.includes('dashboard_admin'),
|
||||
canChangeStatus: groups.includes('dashboard_admin') || groups.includes('dashboard_fahrmeister'),
|
||||
canManageEquipment: groups.includes('dashboard_admin') || groups.includes('dashboard_fahrmeister'),
|
||||
isAdmin,
|
||||
isFahrmeister,
|
||||
isZeugmeister,
|
||||
canChangeStatus: isAdmin || isFahrmeister || isZeugmeister,
|
||||
canManageEquipment: isAdmin || isFahrmeister || isZeugmeister,
|
||||
canManageMotorizedEquipment: isAdmin || isFahrmeister,
|
||||
canManageNonMotorizedEquipment: isAdmin || isZeugmeister,
|
||||
canManageCategory: (kategorie: AusruestungKategorie | null | undefined): boolean => {
|
||||
if (isAdmin) return true;
|
||||
if (!kategorie) return false;
|
||||
return kategorie.motorisiert ? isFahrmeister : isZeugmeister;
|
||||
},
|
||||
groups,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user