Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/components/layout/config/menuItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import {
GraduationCap,
Shield,
Package,
ShieldCheck,
} from 'lucide-react';

export interface MenuItem {
Expand Down Expand Up @@ -234,6 +235,13 @@ export const getCustomerMenuItems = (t: (key: string) => string): MenuItem[] =>
resource: 'access_tokens',
action: 'read',
},
{
name: t('menu.settings.roles'),
href: '/settings/roles',
icon: ShieldCheck,
resource: 'roles',
action: 'read',
},
{
name: t('menu.settings.admin'),
href: '/settings/admin',
Expand Down
12 changes: 12 additions & 0 deletions src/i18n/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import ptBRInstagram from './locales/pt-BR/instagram.json';
import ptBRMessenger from './locales/pt-BR/messenger.json';
import ptBRCustomerDashboard from './locales/pt-BR/customerDashboard.json';
import ptBRAdminSettings from './locales/pt-BR/adminSettings.json';
import ptBRRoles from './locales/pt-BR/roles.json';
import ptBRTutorials from './locales/pt-BR/tutorials.json';
import ptAuth from './locales/pt/auth.json';
import ptChangePassword from './locales/pt/changePassword.json';
Expand Down Expand Up @@ -97,6 +98,7 @@ import ptInstagram from './locales/pt/instagram.json';
import ptMessenger from './locales/pt/messenger.json';
import ptCustomerDashboard from './locales/pt/customerDashboard.json';
import ptAdminSettings from './locales/pt/adminSettings.json';
import ptRoles from './locales/pt/roles.json';
import ptTutorials from './locales/pt/tutorials.json';
import enAuth from './locales/en/auth.json';
import enChangePassword from './locales/en/changePassword.json';
Expand Down Expand Up @@ -146,6 +148,7 @@ import enInstagram from './locales/en/instagram.json';
import enMessenger from './locales/en/messenger.json';
import enCustomerDashboard from './locales/en/customerDashboard.json';
import enAdminSettings from './locales/en/adminSettings.json';
import enRoles from './locales/en/roles.json';
import enTutorials from './locales/en/tutorials.json';
import esAuth from './locales/es/auth.json';
import esChangePassword from './locales/es/changePassword.json';
Expand Down Expand Up @@ -194,6 +197,7 @@ import esInstagram from './locales/es/instagram.json';
import esMessenger from './locales/es/messenger.json';
import esCustomerDashboard from './locales/es/customerDashboard.json';
import esAdminSettings from './locales/es/adminSettings.json';
import esRoles from './locales/es/roles.json';
import esTutorials from './locales/es/tutorials.json';
import frAuth from './locales/fr/auth.json';
import frChangePassword from './locales/fr/changePassword.json';
Expand Down Expand Up @@ -242,6 +246,7 @@ import frInstagram from './locales/fr/instagram.json';
import frMessenger from './locales/fr/messenger.json';
import frCustomerDashboard from './locales/fr/customerDashboard.json';
import frAdminSettings from './locales/fr/adminSettings.json';
import frRoles from './locales/fr/roles.json';
import frTutorials from './locales/fr/tutorials.json';
import itAuth from './locales/it/auth.json';
import itChangePassword from './locales/it/changePassword.json';
Expand Down Expand Up @@ -290,6 +295,7 @@ import itInstagram from './locales/it/instagram.json';
import itMessenger from './locales/it/messenger.json';
import itCustomerDashboard from './locales/it/customerDashboard.json';
import itAdminSettings from './locales/it/adminSettings.json';
import itRoles from './locales/it/roles.json';
import ptBRTours from './locales/pt-BR/tours.json';
import ptTours from './locales/pt/tours.json';
import enTours from './locales/en/tours.json';
Expand Down Expand Up @@ -381,6 +387,7 @@ const resources = {
messenger: ptBRMessenger,
customerDashboard: ptBRCustomerDashboard,
adminSettings: ptBRAdminSettings,
roles: ptBRRoles,
tours: ptBRTours,
tutorials: ptBRTutorials,
},
Expand Down Expand Up @@ -432,6 +439,7 @@ const resources = {
messenger: ptMessenger,
customerDashboard: ptCustomerDashboard,
adminSettings: ptAdminSettings,
roles: ptRoles,
tours: ptTours,
tutorials: ptTutorials,
},
Expand Down Expand Up @@ -484,6 +492,7 @@ const resources = {
messenger: enMessenger,
customerDashboard: enCustomerDashboard,
adminSettings: enAdminSettings,
roles: enRoles,
tours: enTours,
tutorials: enTutorials,
},
Expand Down Expand Up @@ -535,6 +544,7 @@ const resources = {
messenger: esMessenger,
customerDashboard: esCustomerDashboard,
adminSettings: esAdminSettings,
roles: esRoles,
tours: esTours,
tutorials: esTutorials,
},
Expand Down Expand Up @@ -586,6 +596,7 @@ const resources = {
messenger: frMessenger,
customerDashboard: frCustomerDashboard,
adminSettings: frAdminSettings,
roles: frRoles,
tours: frTours,
tutorials: frTutorials,
},
Expand Down Expand Up @@ -637,6 +648,7 @@ const resources = {
messenger: itMessenger,
customerDashboard: itCustomerDashboard,
adminSettings: itAdminSettings,
roles: itRoles,
tours: itTours,
tutorials: itTutorials,
},
Expand Down
1 change: 1 addition & 0 deletions src/i18n/locales/en/layout.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
"templates": "Templates",
"integrations": "Integrations",
"accessTokens": "Access Tokens",
"roles": "Roles & Permissions",
"admin": "Admin Settings"
}
}
Expand Down
72 changes: 72 additions & 0 deletions src/i18n/locales/en/roles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"title": "Roles & Permissions",
"description": "Manage roles and their permissions. System roles cannot be deleted, but their permissions can be edited.",
"header": {
"subtitle": "{{count}} role(s) configured",
"searchPlaceholder": "Search roles..."
},
"addRole": "New Role",
"editRole": "Edit Role",
"deleteRole": "Delete Role",
"backToList": "Back to Roles",
"savePermissions": "Save Permissions",
"saving": "Saving...",
"noRoles": "No roles found",
"noRolesDescription": "Create a custom role to get started.",
"table": {
"name": "Name",
"description": "Description",
"type": "Type",
"permissions": "Permissions",
"users": "Users",
"actions": "Actions"
},
"type": {
"user": "User",
"account": "Account"
},
"badges": {
"system": "System",
"custom": "Custom"
},
"detail": {
"permissionsTitle": "Permissions",
"permissionsDescription": "Check the permissions this role should have. Changes take effect on the user's next session refresh.",
"permissionsSelected": "permissions selected",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"noPermissions": "No permissions available."
},
"createModal": {
"title": "Create Role",
"description": "Define a name and optional description for the new role. You can configure permissions after creation.",
"nameLabel": "Name",
"namePlaceholder": "e.g. Support Agent",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Brief description of this role",
"cancel": "Cancel",
"create": "Create Role",
"creating": "Creating..."
},
"deleteDialog": {
"title": "Delete Role",
"description": "Are you sure you want to delete the role \"{{name}}\"? This action cannot be undone.",
"cancel": "Cancel",
"confirm": "Delete",
"deleting": "Deleting..."
},
"messages": {
"createSuccess": "Role created successfully",
"createError": "Failed to create role",
"updateSuccess": "Role updated successfully",
"updateError": "Failed to update role",
"deleteSuccess": "Role deleted successfully",
"deleteError": "Failed to delete role",
"permissionsSuccess": "Permissions saved successfully",
"permissionsError": "Failed to save permissions",
"loadError": "Failed to load roles",
"systemRoleCannotDelete": "System roles cannot be deleted",
"roleHasUsers": "Cannot delete a role that has assigned users"
},
"saveChanges": "Save Changes"
}
1 change: 1 addition & 0 deletions src/i18n/locales/es/layout.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
"templates": "Plantillas",
"integrations": "Integraciones",
"accessTokens": "Tokens de Acceso",
"roles": "Perfiles y Permisos",
"admin": "Configuración Admin"
}
}
Expand Down
72 changes: 72 additions & 0 deletions src/i18n/locales/es/roles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"title": "Perfiles y Permisos",
"description": "Gestione perfiles y sus permisos. Los perfiles del sistema no pueden eliminarse, pero sus permisos pueden editarse.",
"header": {
"subtitle": "{{count}} perfil(es) configurado(s)",
"searchPlaceholder": "Buscar perfiles..."
},
"addRole": "Nuevo Perfil",
"editRole": "Editar Perfil",
"deleteRole": "Eliminar Perfil",
"backToList": "Volver a Perfiles",
"savePermissions": "Guardar Permisos",
"saving": "Guardando...",
"noRoles": "No se encontraron perfiles",
"noRolesDescription": "Crea un perfil personalizado para empezar.",
"table": {
"name": "Nombre",
"description": "Descripción",
"type": "Tipo",
"permissions": "Permisos",
"users": "Usuarios",
"actions": "Acciones"
},
"type": {
"user": "Usuario",
"account": "Cuenta"
},
"badges": {
"system": "Sistema",
"custom": "Personalizado"
},
"detail": {
"permissionsTitle": "Permisos",
"permissionsDescription": "Marca los permisos que debe tener este perfil. Los cambios tienen efecto en el próximo acceso del usuario.",
"permissionsSelected": "permisos seleccionados",
"selectAll": "Seleccionar todos",
"deselectAll": "Deseleccionar todos",
"noPermissions": "No hay permisos disponibles."
},
"createModal": {
"title": "Crear Perfil",
"description": "Define un nombre y descripción opcional para el nuevo perfil. Puedes configurar los permisos después de crearlo.",
"nameLabel": "Nombre",
"namePlaceholder": "ej. Agente de Soporte",
"descriptionLabel": "Descripción",
"descriptionPlaceholder": "Breve descripción de este perfil",
"cancel": "Cancelar",
"create": "Crear Perfil",
"creating": "Creando..."
},
"deleteDialog": {
"title": "Eliminar Perfil",
"description": "¿Estás seguro de que quieres eliminar el perfil \"{{name}}\"? Esta acción no se puede deshacer.",
"cancel": "Cancelar",
"confirm": "Eliminar",
"deleting": "Eliminando..."
},
"messages": {
"createSuccess": "Perfil creado exitosamente",
"createError": "Error al crear el perfil",
"updateSuccess": "Perfil actualizado exitosamente",
"updateError": "Error al actualizar el perfil",
"deleteSuccess": "Perfil eliminado exitosamente",
"deleteError": "Error al eliminar el perfil",
"permissionsSuccess": "Permisos guardados exitosamente",
"permissionsError": "Error al guardar los permisos",
"loadError": "Error al cargar los perfiles",
"systemRoleCannotDelete": "Los perfiles del sistema no pueden eliminarse",
"roleHasUsers": "No se puede eliminar un perfil con usuarios asignados"
},
"saveChanges": "Guardar Cambios"
}
1 change: 1 addition & 0 deletions src/i18n/locales/fr/layout.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
"templates": "Modèles",
"integrations": "Intégrations",
"accessTokens": "Jetons D'accès",
"roles": "Profils et Permissions",
"admin": "Paramètres Admin"
}
}
Expand Down
72 changes: 72 additions & 0 deletions src/i18n/locales/fr/roles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"title": "Profils et Permissions",
"description": "Gérez les profils et leurs permissions. Les profils système ne peuvent pas être supprimés, mais leurs permissions peuvent être modifiées.",
"header": {
"subtitle": "{{count}} profil(s) configuré(s)",
"searchPlaceholder": "Rechercher des profils..."
},
"addRole": "Nouveau Profil",
"editRole": "Modifier le Profil",
"deleteRole": "Supprimer le Profil",
"backToList": "Retour aux Profils",
"savePermissions": "Enregistrer les Permissions",
"saving": "Enregistrement...",
"noRoles": "Aucun profil trouvé",
"noRolesDescription": "Créez un profil personnalisé pour commencer.",
"table": {
"name": "Nom",
"description": "Description",
"type": "Type",
"permissions": "Permissions",
"users": "Utilisateurs",
"actions": "Actions"
},
"type": {
"user": "Utilisateur",
"account": "Compte"
},
"badges": {
"system": "Système",
"custom": "Personnalisé"
},
"detail": {
"permissionsTitle": "Permissions",
"permissionsDescription": "Cochez les permissions que ce profil doit avoir. Les modifications prennent effet à la prochaine connexion de l'utilisateur.",
"permissionsSelected": "permissions sélectionnées",
"selectAll": "Tout sélectionner",
"deselectAll": "Tout désélectionner",
"noPermissions": "Aucune permission disponible."
},
"createModal": {
"title": "Créer un Profil",
"description": "Définissez un nom et une description optionnelle pour le nouveau profil. Vous pouvez configurer les permissions après la création.",
"nameLabel": "Nom",
"namePlaceholder": "ex. Agent Support",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Brève description de ce profil",
"cancel": "Annuler",
"create": "Créer le Profil",
"creating": "Création..."
},
"deleteDialog": {
"title": "Supprimer le Profil",
"description": "Êtes-vous sûr de vouloir supprimer le profil \"{{name}}\" ? Cette action est irréversible.",
"cancel": "Annuler",
"confirm": "Supprimer",
"deleting": "Suppression..."
},
"messages": {
"createSuccess": "Profil créé avec succès",
"createError": "Échec de la création du profil",
"updateSuccess": "Profil mis à jour avec succès",
"updateError": "Échec de la mise à jour du profil",
"deleteSuccess": "Profil supprimé avec succès",
"deleteError": "Échec de la suppression du profil",
"permissionsSuccess": "Permissions enregistrées avec succès",
"permissionsError": "Échec de l'enregistrement des permissions",
"loadError": "Échec du chargement des profils",
"systemRoleCannotDelete": "Les profils système ne peuvent pas être supprimés",
"roleHasUsers": "Impossible de supprimer un profil avec des utilisateurs assignés"
},
"saveChanges": "Enregistrer les modifications"
}
1 change: 1 addition & 0 deletions src/i18n/locales/it/layout.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
"templates": "Modelli",
"integrations": "Integrazioni",
"accessTokens": "Tokens di Accesso",
"roles": "Profili e Permessi",
"admin": "Impostazioni Admin"
}
}
Expand Down
Loading