feat: User Management menu — My Settings, Oracle IAM page, sidebar restructure

- Sidebar: "User Management" expandable group with sub-items (Users, My Settings, Oracle IAM)
- MySettingsPage: self-service timezone + MFA setup/disable (any user)
- OracleIamPage: admin-only OIDC config (auth mode, issuer, client ID/secret, group→role mapping, test connection)
- UsersPage: removed timezone card (moved to My Settings)
- i18n: 35+ new keys (pt/en) for settings and IAM pages
- Routes: /admin/user-settings, /admin/iam registered with code splitting
This commit is contained in:
nogueiraguh
2026-04-01 15:00:23 -03:00
parent 7b50767159
commit c3035abf81
7 changed files with 593 additions and 48 deletions

View File

@@ -20,7 +20,10 @@ const pt: Record<string, string> = {
'nav.adb': 'ADB Vector',
'nav.embeddings': 'Embeddings',
'nav.embConsult': 'Consultar Embeddings',
'nav.userMgmt': 'Gestão de Usuários',
'nav.users': 'Usuários',
'nav.mySettings': 'Minhas Configurações',
'nav.oracleIam': 'Oracle IAM',
'nav.audit': 'Audit Log',
'sidebar.lightMode': 'Modo claro',
'sidebar.darkMode': 'Modo escuro',
@@ -748,6 +751,38 @@ const pt: Record<string, string> = {
'common.noData': 'Nenhum dado encontrado',
'common.error': 'Erro',
'common.success': 'Sucesso',
// ── My Settings ──
'settings.title': 'Minhas Configurações',
'settings.timezone': 'Timezone',
'settings.tzDesc': 'Define o fuso horário para exibição de datas e horários.',
'settings.tzChanged': 'Timezone alterado com sucesso',
'settings.mfa': 'Autenticação Multi-Fator (MFA)',
// ── Oracle IAM ──
'iam.title': 'Oracle IAM Identity Domains',
'iam.subtitle': 'Integração OIDC para autenticação corporativa',
'iam.authMode': 'Modo de Autenticação',
'iam.authModeDesc': 'Define como os usuários se autenticam no sistema.',
'iam.modeLocal': 'Local',
'iam.modeLocalDesc': 'Usuários locais com senha',
'iam.modeOidc': 'Oracle IAM',
'iam.modeOidcDesc': 'Somente SSO corporativo',
'iam.modeBoth': 'Ambos',
'iam.modeBothDesc': 'Local + Oracle IAM',
'iam.oidcConfig': 'Configuração OIDC',
'iam.testConnection': 'Testar Conexão',
'iam.issuerUrl': 'Issuer URL (Identity Domain)',
'iam.clientId': 'Client ID',
'iam.clientSecret': 'Client Secret',
'iam.redirectUri': 'Redirect URI',
'iam.groupMapping': 'Mapeamento de Grupos',
'iam.groupMappingDesc': 'Mapeie os grupos do OCI Identity Domain para as roles do sistema.',
'iam.save': 'Salvar Configuração',
'iam.saving': 'Salvando...',
'iam.saved': 'Configuração salva com sucesso',
'iam.issuerRequired': 'Issuer URL é obrigatório',
'iam.testOk': 'Conexão OK',
'iam.testInvalid': 'Resposta inválida do discovery endpoint',
'iam.testFail': 'Falha na conexão',
};
export default pt;