27 lines
590 B
TypeScript
27 lines
590 B
TypeScript
import type { AuthUser } from '../lib/api';
|
|
|
|
function normalizeRole(value: string) {
|
|
return value
|
|
.normalize('NFD')
|
|
.replace(/[\u0300-\u036f]/g, '')
|
|
.toLowerCase()
|
|
.replace(/[^a-z0-9]+/g, ' ')
|
|
.trim();
|
|
}
|
|
|
|
const ADMIN_ROLES = new Set([
|
|
'admin',
|
|
'administrator',
|
|
'administrador',
|
|
'superadmin',
|
|
'super admin',
|
|
'superadministrator',
|
|
'super administrator',
|
|
'superadministrador',
|
|
'super administrador',
|
|
]);
|
|
|
|
export function hasAdministratorRole(user: AuthUser | null) {
|
|
return Boolean(user?.roles.some((role) => ADMIN_ROLES.has(normalizeRole(role))));
|
|
}
|