feat(roles): add admin store roles page, permission i18n, and menu integration
Some checks failed
CI / ruff (push) Successful in 9s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has started running

- Add admin store roles page with merchant→store cascading for superadmin
  and store-only selection for platform admin
- Add permission catalog API with translated labels/descriptions (en/fr/de/lb)
- Add permission translations to all 15 module locale files (60 files total)
- Add info icon tooltips for permission descriptions in role editor
- Add store roles menu item and admin menu item in module definition
- Fix store-selector.js URL construction bug when apiEndpoint has query params
- Add admin store roles API (CRUD + platform scoping)
- Add integration tests for admin store roles and permission catalog

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 23:31:27 +01:00
parent 2b55e7458b
commit f95db7c0b1
83 changed files with 3491 additions and 513 deletions

View File

@@ -112,5 +112,37 @@
"name": "Audit-Protokoll",
"description": "Alle Benutzeraktionen und Änderungen nachverfolgen"
}
},
"permissions": {
"category": {
"dashboard": "Dashboard",
"products": "Produkte",
"stock": "Inventar",
"orders": "Bestellungen",
"customers": "Kunden",
"marketing": "Marketing",
"reports": "Berichte",
"settings": "Einstellungen",
"team": "Team",
"imports": "Importe",
"general": "Allgemein",
"analytics": "Analytik",
"billing": "Abrechnung",
"cart": "Warenkorb",
"checkout": "Kasse",
"cms": "Inhalte",
"loyalty": "Treue",
"marketplace": "Marktplatz",
"messaging": "Nachrichten",
"payments": "Zahlungen"
},
"team_view": "Team anzeigen",
"team_view_desc": "Teammitglieder und ihre Rollen anzeigen",
"team_invite": "Mitglieder einladen",
"team_invite_desc": "Neue Mitglieder ins Team einladen",
"team_edit": "Mitglieder bearbeiten",
"team_edit_desc": "Rollen und Berechtigungen der Mitglieder bearbeiten",
"team_remove": "Mitglieder entfernen",
"team_remove_desc": "Mitglieder aus dem Team entfernen"
}
}

View File

@@ -97,6 +97,38 @@
"show_all_menu_items": "This will show all menu items. Continue?",
"hide_all_menu_items": "This will hide all menu items (except mandatory ones). You can then enable the ones you want. Continue?"
},
"permissions": {
"category": {
"dashboard": "Dashboard",
"products": "Products",
"stock": "Inventory",
"orders": "Orders",
"customers": "Customers",
"marketing": "Marketing",
"reports": "Reports",
"settings": "Settings",
"team": "Team",
"imports": "Imports",
"general": "General",
"analytics": "Analytics",
"billing": "Billing",
"cart": "Cart",
"checkout": "Checkout",
"cms": "Content",
"loyalty": "Loyalty",
"marketplace": "Marketplace",
"messaging": "Messaging",
"payments": "Payments"
},
"team_view": "View Team",
"team_view_desc": "View team members and their roles",
"team_invite": "Invite Members",
"team_invite_desc": "Invite new members to the store team",
"team_edit": "Edit Members",
"team_edit_desc": "Edit team member roles and permissions",
"team_remove": "Remove Members",
"team_remove_desc": "Remove members from the store team"
},
"features": {
"team_members": {
"name": "Team Members",

View File

@@ -112,5 +112,37 @@
"name": "Journal d'audit",
"description": "Suivre toutes les actions et modifications"
}
},
"permissions": {
"category": {
"dashboard": "Tableau de bord",
"products": "Produits",
"stock": "Inventaire",
"orders": "Commandes",
"customers": "Clients",
"marketing": "Marketing",
"reports": "Rapports",
"settings": "Paramètres",
"team": "Équipe",
"imports": "Importations",
"general": "Général",
"analytics": "Analytique",
"billing": "Facturation",
"cart": "Panier",
"checkout": "Paiement",
"cms": "Contenu",
"loyalty": "Fidélité",
"marketplace": "Marketplace",
"messaging": "Messagerie",
"payments": "Paiements"
},
"team_view": "Voir l'équipe",
"team_view_desc": "Voir les membres de l'équipe et leurs rôles",
"team_invite": "Inviter des membres",
"team_invite_desc": "Inviter de nouveaux membres dans l'équipe",
"team_edit": "Modifier les membres",
"team_edit_desc": "Modifier les rôles et permissions des membres",
"team_remove": "Supprimer des membres",
"team_remove_desc": "Retirer des membres de l'équipe"
}
}

View File

@@ -112,5 +112,37 @@
"name": "Audit-Protokoll",
"description": "All Benotzeraktiounen an Ännerungen nospueren"
}
},
"permissions": {
"category": {
"dashboard": "Dashboard",
"products": "Produiten",
"stock": "Inventar",
"orders": "Bestellungen",
"customers": "Clienten",
"marketing": "Marketing",
"reports": "Berichter",
"settings": "Astellungen",
"team": "Team",
"imports": "Importatiounen",
"general": "Allgemeng",
"analytics": "Analytik",
"billing": "Ofrechnung",
"cart": "Kuerf",
"checkout": "Keess",
"cms": "Inhalter",
"loyalty": "Treiheet",
"marketplace": "Marché",
"messaging": "Messagen",
"payments": "Bezuelungen"
},
"team_view": "Team kucken",
"team_view_desc": "Team-Memberen an hir Rollen kucken",
"team_invite": "Memberen invitéieren",
"team_invite_desc": "Nei Memberen an d'Team invitéieren",
"team_edit": "Memberen änneren",
"team_edit_desc": "Rollen a Rechter vun de Memberen änneren",
"team_remove": "Memberen ewechhuelen",
"team_remove_desc": "Memberen aus dem Team ewechhuelen"
}
}