@mostajs/rbac 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n/fr/roles.json +95 -0
- package/dist/i18n/fr/users.json +18 -0
- package/dist/lib/i18n.d.ts +2 -0
- package/dist/lib/i18n.d.ts.map +1 -0
- package/dist/lib/i18n.js +32 -0
- package/dist/lib/i18n.js.map +1 -0
- package/dist/pages/RolesPage.d.ts +2 -0
- package/dist/pages/RolesPage.d.ts.map +1 -0
- package/dist/pages/RolesPage.js +10 -0
- package/dist/pages/RolesPage.js.map +1 -0
- package/dist/pages/UsersPage.d.ts +2 -0
- package/dist/pages/UsersPage.d.ts.map +1 -0
- package/dist/pages/UsersPage.js +26 -0
- package/dist/pages/UsersPage.js.map +1 -0
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +6 -0
- package/dist/register.js.map +1 -1
- package/i18n/fr/roles.json +95 -0
- package/i18n/fr/users.json +18 -0
- package/package.json +17 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Rôles & Permissions",
|
|
3
|
+
"tabs": {
|
|
4
|
+
"matrix": "Matrice",
|
|
5
|
+
"roles": "Rôles",
|
|
6
|
+
"permissions": "Permissions",
|
|
7
|
+
"categories": "Catégories"
|
|
8
|
+
},
|
|
9
|
+
"matrix": {
|
|
10
|
+
"title": "Matrice des permissions",
|
|
11
|
+
"save": "Sauvegarder les modifications",
|
|
12
|
+
"saving": "Sauvegarde...",
|
|
13
|
+
"saved": "Modifications sauvegardées",
|
|
14
|
+
"pending": "modification(s) en attente",
|
|
15
|
+
"noData": "Aucune permission en base de données",
|
|
16
|
+
"initRbac": "Initialiser le RBAC",
|
|
17
|
+
"initializing": "Initialisation...",
|
|
18
|
+
"initialized": "RBAC initialisé avec succès",
|
|
19
|
+
"selectAll": "Tout cocher",
|
|
20
|
+
"deselectAll": "Tout décocher"
|
|
21
|
+
},
|
|
22
|
+
"roles": {
|
|
23
|
+
"title": "Gestion des rôles",
|
|
24
|
+
"create": "Créer un rôle",
|
|
25
|
+
"edit": "Modifier le rôle",
|
|
26
|
+
"delete": "Supprimer le rôle",
|
|
27
|
+
"name": "Nom du rôle",
|
|
28
|
+
"namePlaceholder": "ex: caissier",
|
|
29
|
+
"description": "Description",
|
|
30
|
+
"descriptionPlaceholder": "Description du rôle...",
|
|
31
|
+
"permissions": "Permissions",
|
|
32
|
+
"users": "Utilisateurs",
|
|
33
|
+
"system": "Système",
|
|
34
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ce rôle ?",
|
|
35
|
+
"deleted": "Rôle supprimé",
|
|
36
|
+
"created": "Rôle créé",
|
|
37
|
+
"updated": "Rôle modifié",
|
|
38
|
+
"noRoles": "Aucun rôle",
|
|
39
|
+
"cannotDeleteSystem": "Les rôles système ne peuvent pas être supprimés",
|
|
40
|
+
"cannotDeleteUsersAssigned": "Impossible de supprimer : des utilisateurs sont assignés à ce rôle"
|
|
41
|
+
},
|
|
42
|
+
"permissions": {
|
|
43
|
+
"title": "Gestion des permissions",
|
|
44
|
+
"create": "Créer une permission",
|
|
45
|
+
"edit": "Modifier la permission",
|
|
46
|
+
"delete": "Supprimer la permission",
|
|
47
|
+
"name": "Nom de la permission",
|
|
48
|
+
"namePlaceholder": "ex: caisse:view",
|
|
49
|
+
"description": "Description",
|
|
50
|
+
"descriptionPlaceholder": "Description de la permission...",
|
|
51
|
+
"category": "Catégorie",
|
|
52
|
+
"categoryPlaceholder": "ex: caisse",
|
|
53
|
+
"rolesUsing": "Rôles utilisant",
|
|
54
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer cette permission ?",
|
|
55
|
+
"warningRolesUsing": "Attention : cette permission est utilisée par des rôles. Elle sera retirée automatiquement.",
|
|
56
|
+
"deleted": "Permission supprimée",
|
|
57
|
+
"created": "Permission créée",
|
|
58
|
+
"updated": "Permission modifiée",
|
|
59
|
+
"noPermissions": "Aucune permission"
|
|
60
|
+
},
|
|
61
|
+
"categoriesLabels": {
|
|
62
|
+
"admin": "Administration",
|
|
63
|
+
"client": "Clients",
|
|
64
|
+
"activity": "Activités",
|
|
65
|
+
"access": "Accès & Abonnements",
|
|
66
|
+
"ticket": "Tickets",
|
|
67
|
+
"scan": "Scan & Validation",
|
|
68
|
+
"locker": "Casiers",
|
|
69
|
+
"rfid": "Cartes RFID",
|
|
70
|
+
"dashboard": "Tableau de bord",
|
|
71
|
+
"audit": "Audit",
|
|
72
|
+
"other": "Autres"
|
|
73
|
+
},
|
|
74
|
+
"categories": {
|
|
75
|
+
"title": "Gestion des catégories",
|
|
76
|
+
"create": "Créer une catégorie",
|
|
77
|
+
"edit": "Modifier la catégorie",
|
|
78
|
+
"name": "Identifiant (slug)",
|
|
79
|
+
"namePlaceholder": "ex: caisse",
|
|
80
|
+
"label": "Libellé",
|
|
81
|
+
"labelPlaceholder": "ex: Caisse",
|
|
82
|
+
"description": "Description",
|
|
83
|
+
"order": "Ordre d'affichage",
|
|
84
|
+
"icon": "Icône",
|
|
85
|
+
"system": "Système",
|
|
86
|
+
"permissions": "Permissions",
|
|
87
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer cette catégorie ?",
|
|
88
|
+
"cannotDeleteSystem": "Les catégories système ne peuvent pas être supprimées",
|
|
89
|
+
"cannotDeletePermissionsUsing": "Impossible : des permissions utilisent cette catégorie",
|
|
90
|
+
"created": "Catégorie créée",
|
|
91
|
+
"updated": "Catégorie modifiée",
|
|
92
|
+
"deleted": "Catégorie supprimée",
|
|
93
|
+
"noCategories": "Aucune catégorie"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_author": "Dr Hamid MADANI drmdh@msn.com",
|
|
3
|
+
"title": "Utilisateurs",
|
|
4
|
+
"create": "Nouvel utilisateur",
|
|
5
|
+
"fields": {
|
|
6
|
+
"email": "Email",
|
|
7
|
+
"firstName": "Prénom",
|
|
8
|
+
"lastName": "Nom",
|
|
9
|
+
"phone": "Téléphone",
|
|
10
|
+
"role": "Rôle",
|
|
11
|
+
"status": "Statut"
|
|
12
|
+
},
|
|
13
|
+
"statuses": {
|
|
14
|
+
"active": "Actif",
|
|
15
|
+
"locked": "Verrouillé",
|
|
16
|
+
"disabled": "Désactivé"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../lib/i18n.ts"],"names":[],"mappings":"AAqBA,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAc/E"}
|
package/dist/lib/i18n.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @mostajs/rbac — i18n helper
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import users from '../i18n/fr/users.json';
|
|
4
|
+
import roles from '../i18n/fr/roles.json';
|
|
5
|
+
const translations = { users, roles };
|
|
6
|
+
function getNestedValue(obj, path) {
|
|
7
|
+
const keys = path.split('.');
|
|
8
|
+
let current = obj;
|
|
9
|
+
for (const key of keys) {
|
|
10
|
+
if (current && typeof current === 'object' && key in current) {
|
|
11
|
+
current = current[key];
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return path;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return typeof current === 'string' ? current : path;
|
|
18
|
+
}
|
|
19
|
+
export function t(key, params) {
|
|
20
|
+
const [namespace, ...rest] = key.split('.');
|
|
21
|
+
const ns = translations[namespace];
|
|
22
|
+
if (!ns)
|
|
23
|
+
return key;
|
|
24
|
+
let value = getNestedValue(ns, rest.join('.'));
|
|
25
|
+
if (params) {
|
|
26
|
+
Object.entries(params).forEach(([paramKey, paramValue]) => {
|
|
27
|
+
value = value.replace(`{{${paramKey}}}`, String(paramValue));
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../lib/i18n.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,wCAAwC;AAExC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AAEzC,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAW,CAAA;AAE9C,SAAS,cAAc,CAAC,GAA4B,EAAE,IAAY;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,OAAO,GAAY,GAAG,CAAA;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;YAC7D,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,CAAC,CAAC,GAAW,EAAE,MAAwC;IACrE,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,EAAE,GAAG,YAAY,CAAC,SAAsC,CAAC,CAAA;IAC/D,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAA;IAEnB,IAAI,KAAK,GAAG,cAAc,CAAC,EAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEzE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;YACxD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RolesPage.d.ts","sourceRoot":"","sources":["../../pages/RolesPage.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAQhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
|
+
'use client';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { RBACManager } from '../components/RBACManager.js';
|
|
5
|
+
import { t } from '../lib/i18n.js';
|
|
6
|
+
const SYSTEM_ROLES = ['admin', 'agent_accueil', 'agent_attraction', 'superviseur'];
|
|
7
|
+
export default function RolesPage() {
|
|
8
|
+
return (_jsx(RBACManager, { apiBasePath: "/api", t: t, systemRoles: SYSTEM_ROLES }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=RolesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RolesPage.js","sourceRoot":"","sources":["../../pages/RolesPage.tsx"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAA;AAElF,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,OAAO,CACL,KAAC,WAAW,IACV,WAAW,EAAC,MAAM,EAClB,CAAC,EAAE,CAAC,EACJ,WAAW,EAAE,YAAY,GACzB,CACH,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsersPage.d.ts","sourceRoot":"","sources":["../../pages/UsersPage.tsx"],"names":[],"mappings":"AA0BA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAUhC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
2
|
+
'use client';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { UsersManager } from '../components/UsersManager.js';
|
|
5
|
+
import { t } from '../lib/i18n.js';
|
|
6
|
+
const roleColors = {
|
|
7
|
+
admin: 'bg-red-100 text-red-800',
|
|
8
|
+
agent_accueil: 'bg-blue-100 text-blue-800',
|
|
9
|
+
agent_attraction: 'bg-green-100 text-green-800',
|
|
10
|
+
superviseur: 'bg-purple-100 text-purple-800',
|
|
11
|
+
};
|
|
12
|
+
const statusColors = {
|
|
13
|
+
active: 'bg-green-100 text-green-800',
|
|
14
|
+
locked: 'bg-yellow-100 text-yellow-800',
|
|
15
|
+
disabled: 'bg-red-100 text-red-800',
|
|
16
|
+
};
|
|
17
|
+
const fallbackRoles = [
|
|
18
|
+
{ value: 'admin', label: 'Administrateur' },
|
|
19
|
+
{ value: 'agent_accueil', label: 'Agent d\'accueil' },
|
|
20
|
+
{ value: 'agent_attraction', label: 'Agent d\'attraction' },
|
|
21
|
+
{ value: 'superviseur', label: 'Superviseur' },
|
|
22
|
+
];
|
|
23
|
+
export default function UsersPage() {
|
|
24
|
+
return (_jsx(UsersManager, { apiBasePath: "/api", t: t, roleColors: roleColors, statusColors: statusColors, fallbackRoles: fallbackRoles }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=UsersPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsersPage.js","sourceRoot":"","sources":["../../pages/UsersPage.tsx"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAA;AAElC,MAAM,UAAU,GAA2B;IACzC,KAAK,EAAE,yBAAyB;IAChC,aAAa,EAAE,2BAA2B;IAC1C,gBAAgB,EAAE,6BAA6B;IAC/C,WAAW,EAAE,+BAA+B;CAC7C,CAAA;AAED,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,+BAA+B;IACvC,QAAQ,EAAE,yBAAyB;CACpC,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC3C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;CAC/C,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,OAAO,CACL,KAAC,YAAY,IACX,WAAW,EAAC,MAAM,EAClB,CAAC,EAAE,CAAC,EACJ,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC5B,CACH,CAAA;AACH,CAAC"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAoBxD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CA2DlF"}
|
package/dist/register.js
CHANGED
|
@@ -10,6 +10,8 @@ import { RoleRepository } from './repositories/role.repository.js';
|
|
|
10
10
|
import { PermissionRepository } from './repositories/permission.repository.js';
|
|
11
11
|
import { PermissionCategoryRepository } from './repositories/permission-category.repository.js';
|
|
12
12
|
import { rbacMenuContribution } from './lib/menu.js';
|
|
13
|
+
import UsersPage from './pages/UsersPage.js';
|
|
14
|
+
import RolesPage from './pages/RolesPage.js';
|
|
13
15
|
import { usersHandlers, usersIdHandlers, rolesHandlers, rolesIdHandlers, permissionsHandlers, permissionsIdHandlers, categoriesHandlers, categoriesIdHandlers, matrixHandlers, seedHandlers, } from './lib/route-handlers.js';
|
|
14
16
|
export function register(registry) {
|
|
15
17
|
registry.register({
|
|
@@ -58,6 +60,10 @@ export function register(registry) {
|
|
|
58
60
|
{ path: 'admin/permissions/matrix', handlers: matrixHandlers, permission: 'admin:access' },
|
|
59
61
|
{ path: 'admin/permissions/seed', handlers: seedHandlers, permission: 'admin:access' },
|
|
60
62
|
],
|
|
63
|
+
pages: [
|
|
64
|
+
{ path: 'users', component: UsersPage, permission: 'user:view' },
|
|
65
|
+
{ path: 'roles', component: RolesPage, permission: 'role:view' },
|
|
66
|
+
],
|
|
61
67
|
menu: rbacMenuContribution,
|
|
62
68
|
});
|
|
63
69
|
}
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Rôles & Permissions",
|
|
3
|
+
"tabs": {
|
|
4
|
+
"matrix": "Matrice",
|
|
5
|
+
"roles": "Rôles",
|
|
6
|
+
"permissions": "Permissions",
|
|
7
|
+
"categories": "Catégories"
|
|
8
|
+
},
|
|
9
|
+
"matrix": {
|
|
10
|
+
"title": "Matrice des permissions",
|
|
11
|
+
"save": "Sauvegarder les modifications",
|
|
12
|
+
"saving": "Sauvegarde...",
|
|
13
|
+
"saved": "Modifications sauvegardées",
|
|
14
|
+
"pending": "modification(s) en attente",
|
|
15
|
+
"noData": "Aucune permission en base de données",
|
|
16
|
+
"initRbac": "Initialiser le RBAC",
|
|
17
|
+
"initializing": "Initialisation...",
|
|
18
|
+
"initialized": "RBAC initialisé avec succès",
|
|
19
|
+
"selectAll": "Tout cocher",
|
|
20
|
+
"deselectAll": "Tout décocher"
|
|
21
|
+
},
|
|
22
|
+
"roles": {
|
|
23
|
+
"title": "Gestion des rôles",
|
|
24
|
+
"create": "Créer un rôle",
|
|
25
|
+
"edit": "Modifier le rôle",
|
|
26
|
+
"delete": "Supprimer le rôle",
|
|
27
|
+
"name": "Nom du rôle",
|
|
28
|
+
"namePlaceholder": "ex: caissier",
|
|
29
|
+
"description": "Description",
|
|
30
|
+
"descriptionPlaceholder": "Description du rôle...",
|
|
31
|
+
"permissions": "Permissions",
|
|
32
|
+
"users": "Utilisateurs",
|
|
33
|
+
"system": "Système",
|
|
34
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ce rôle ?",
|
|
35
|
+
"deleted": "Rôle supprimé",
|
|
36
|
+
"created": "Rôle créé",
|
|
37
|
+
"updated": "Rôle modifié",
|
|
38
|
+
"noRoles": "Aucun rôle",
|
|
39
|
+
"cannotDeleteSystem": "Les rôles système ne peuvent pas être supprimés",
|
|
40
|
+
"cannotDeleteUsersAssigned": "Impossible de supprimer : des utilisateurs sont assignés à ce rôle"
|
|
41
|
+
},
|
|
42
|
+
"permissions": {
|
|
43
|
+
"title": "Gestion des permissions",
|
|
44
|
+
"create": "Créer une permission",
|
|
45
|
+
"edit": "Modifier la permission",
|
|
46
|
+
"delete": "Supprimer la permission",
|
|
47
|
+
"name": "Nom de la permission",
|
|
48
|
+
"namePlaceholder": "ex: caisse:view",
|
|
49
|
+
"description": "Description",
|
|
50
|
+
"descriptionPlaceholder": "Description de la permission...",
|
|
51
|
+
"category": "Catégorie",
|
|
52
|
+
"categoryPlaceholder": "ex: caisse",
|
|
53
|
+
"rolesUsing": "Rôles utilisant",
|
|
54
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer cette permission ?",
|
|
55
|
+
"warningRolesUsing": "Attention : cette permission est utilisée par des rôles. Elle sera retirée automatiquement.",
|
|
56
|
+
"deleted": "Permission supprimée",
|
|
57
|
+
"created": "Permission créée",
|
|
58
|
+
"updated": "Permission modifiée",
|
|
59
|
+
"noPermissions": "Aucune permission"
|
|
60
|
+
},
|
|
61
|
+
"categoriesLabels": {
|
|
62
|
+
"admin": "Administration",
|
|
63
|
+
"client": "Clients",
|
|
64
|
+
"activity": "Activités",
|
|
65
|
+
"access": "Accès & Abonnements",
|
|
66
|
+
"ticket": "Tickets",
|
|
67
|
+
"scan": "Scan & Validation",
|
|
68
|
+
"locker": "Casiers",
|
|
69
|
+
"rfid": "Cartes RFID",
|
|
70
|
+
"dashboard": "Tableau de bord",
|
|
71
|
+
"audit": "Audit",
|
|
72
|
+
"other": "Autres"
|
|
73
|
+
},
|
|
74
|
+
"categories": {
|
|
75
|
+
"title": "Gestion des catégories",
|
|
76
|
+
"create": "Créer une catégorie",
|
|
77
|
+
"edit": "Modifier la catégorie",
|
|
78
|
+
"name": "Identifiant (slug)",
|
|
79
|
+
"namePlaceholder": "ex: caisse",
|
|
80
|
+
"label": "Libellé",
|
|
81
|
+
"labelPlaceholder": "ex: Caisse",
|
|
82
|
+
"description": "Description",
|
|
83
|
+
"order": "Ordre d'affichage",
|
|
84
|
+
"icon": "Icône",
|
|
85
|
+
"system": "Système",
|
|
86
|
+
"permissions": "Permissions",
|
|
87
|
+
"confirmDelete": "Êtes-vous sûr de vouloir supprimer cette catégorie ?",
|
|
88
|
+
"cannotDeleteSystem": "Les catégories système ne peuvent pas être supprimées",
|
|
89
|
+
"cannotDeletePermissionsUsing": "Impossible : des permissions utilisent cette catégorie",
|
|
90
|
+
"created": "Catégorie créée",
|
|
91
|
+
"updated": "Catégorie modifiée",
|
|
92
|
+
"deleted": "Catégorie supprimée",
|
|
93
|
+
"noCategories": "Aucune catégorie"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_author": "Dr Hamid MADANI drmdh@msn.com",
|
|
3
|
+
"title": "Utilisateurs",
|
|
4
|
+
"create": "Nouvel utilisateur",
|
|
5
|
+
"fields": {
|
|
6
|
+
"email": "Email",
|
|
7
|
+
"firstName": "Prénom",
|
|
8
|
+
"lastName": "Nom",
|
|
9
|
+
"phone": "Téléphone",
|
|
10
|
+
"role": "Rôle",
|
|
11
|
+
"status": "Statut"
|
|
12
|
+
},
|
|
13
|
+
"statuses": {
|
|
14
|
+
"active": "Actif",
|
|
15
|
+
"locked": "Verrouillé",
|
|
16
|
+
"disabled": "Désactivé"
|
|
17
|
+
}
|
|
18
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/rbac",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "RBAC — User/Role/Permission schemas, repos, management UI, API handlers",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -114,6 +114,21 @@
|
|
|
114
114
|
"import": "./dist/components/PermissionMatrix.js",
|
|
115
115
|
"default": "./dist/components/PermissionMatrix.js"
|
|
116
116
|
},
|
|
117
|
+
"./pages/UsersPage": {
|
|
118
|
+
"types": "./dist/pages/UsersPage.d.ts",
|
|
119
|
+
"import": "./dist/pages/UsersPage.js",
|
|
120
|
+
"default": "./dist/pages/UsersPage.js"
|
|
121
|
+
},
|
|
122
|
+
"./pages/RolesPage": {
|
|
123
|
+
"types": "./dist/pages/RolesPage.d.ts",
|
|
124
|
+
"import": "./dist/pages/RolesPage.js",
|
|
125
|
+
"default": "./dist/pages/RolesPage.js"
|
|
126
|
+
},
|
|
127
|
+
"./lib/i18n": {
|
|
128
|
+
"types": "./dist/lib/i18n.d.ts",
|
|
129
|
+
"import": "./dist/lib/i18n.js",
|
|
130
|
+
"default": "./dist/lib/i18n.js"
|
|
131
|
+
},
|
|
117
132
|
"./register": {
|
|
118
133
|
"types": "./dist/register.d.ts",
|
|
119
134
|
"import": "./dist/register.js",
|
|
@@ -122,6 +137,7 @@
|
|
|
122
137
|
},
|
|
123
138
|
"files": [
|
|
124
139
|
"dist",
|
|
140
|
+
"i18n",
|
|
125
141
|
"wire.json",
|
|
126
142
|
"rbac.wire.json",
|
|
127
143
|
"LICENSE",
|