feat: replace mock system with real backend, RBAC, and Teams management
All checks were successful
Build and Deploy / build-and-push (push) Successful in 2m3s

- Implemented real JWT authentication and persistent user sessions
- Replaced all hardcoded mock data with dynamic MySQL-backed API calls
- Created new 'Times' (Teams) dashboard with performance metrics
- Renamed 'Equipe' to 'Membros' and centralized team management
- Added Role-Based Access Control (RBAC) for Admin/Manager/Agent roles
- Implemented secure invite-only member creation and password setup flow
- Enhanced Login with password visibility and real-time validation
- Added safe delete confirmation modal and custom Toast notifications
This commit is contained in:
Cauê Faleiros
2026-03-02 10:26:20 -03:00
parent 76b919d857
commit b7e73fce3d
19 changed files with 1707 additions and 553 deletions

View File

@@ -57,7 +57,8 @@ export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) =>
// Simple title mapping based on route
const getPageTitle = () => {
if (location.pathname === '/') return 'Dashboard';
if (location.pathname.includes('/admin/users')) return 'Gestão de Equipe';
if (location.pathname.includes('/admin/users')) return 'Membros';
if (location.pathname.includes('/admin/teams')) return 'Times';
if (location.pathname.includes('/users/')) return 'Histórico do Usuário';
if (location.pathname.includes('/attendances')) return 'Detalhes do Atendimento';
if (location.pathname.includes('/super-admin')) return 'Gestão de Organizações';
@@ -96,7 +97,8 @@ export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) =>
{!isSuperAdmin && (
<>
<SidebarItem to="/" icon={LayoutDashboard} label="Dashboard" collapsed={false} />
<SidebarItem to="/admin/users" icon={Users} label="Equipe" collapsed={false} />
<SidebarItem to="/admin/users" icon={Users} label="Membros" collapsed={false} />
<SidebarItem to="/admin/teams" icon={Building2} label="Times" collapsed={false} />
</>
)}