Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 1x 1x 47x 47x 47x 47x 47x 47x 47x 47x 47x 30x 30x 17x 17x 17x 17x 18x 47x 47x 47x | import {
FrontendUserObject, validDepartments
} from '@/types/api/users';
import { UserPermissions } from '@/types/backend/user';
export function getUserPermissions(user: FrontendUserObject | null): UserPermissions {
const userPerms: UserPermissions = {
isUser: false,
isAdmin: false,
isDistrictAdmin: false,
canEditNames: false,
activeDepartments: [],
adminDepartments: [],
};
if (user === null) {
return userPerms;
}
// Determine the permissions
userPerms.activeDepartments = validDepartments.filter(dep => user[dep]?.active);
userPerms.adminDepartments = userPerms.activeDepartments.filter(dep => user[dep]?.admin);
userPerms.isUser = userPerms.activeDepartments.length > 0;
userPerms.isAdmin = userPerms.adminDepartments.length > 0;
userPerms.isDistrictAdmin = userPerms.isUser && !!user.isDistrictAdmin;
userPerms.canEditNames = userPerms.isDistrictAdmin || user.canEditNames || false;
return userPerms;
}
|