Skip to main content

Visão Geral

O AssessIQ usa um sistema de controle de acesso baseado em roles (RBAC). Cada usuário tem um único papel que determina o que ele pode visualizar e fazer na plataforma.

Papéis Disponíveis

PROFESSOR

Papel padrão para profissionais que aplicam testes.

ADMIN

Gerencia usuários, organizações e toda a plataforma.

SUPER_ADMIN

Acesso irrestrito incluindo operações críticas de dados.

Matriz de Permissões

FuncionalidadePROFESSORADMINSUPER_ADMIN
Criar testes
Ver testes de outros
Importar testes via JSON
Gerenciar alunos (criar/editar)
Excluir alunos
Gerenciar professores
Gerenciar candidatos
Ver relatórios próprios
Ver todos os relatórios
KPI “Testes Concluídos” global
Gerenciar usuários
Gerenciar organizações
Configurar notificações
Templates de e-mail
Backup e recuperação de dados
Gerência de retenção
Logs em tempo real

Como os Roles são Verificados

O sistema valida permissões em dois lugares:

1. Server Components / API Routes

import { auth } from "@/auth";

const session = await auth();
const userRole = session?.user?.role;
const isAdmin = userRole === "ADMIN" || userRole === "SUPER_ADMIN";

2. Client Components

const { data: session } = useSession();
const isAdmin = session?.user?.role === "ADMIN" || 
                session?.user?.role === "SUPER_ADMIN";

// Botão de exclusão visível apenas para admins
{(isAdmin || isSuperAdmin) && (
  <DeleteButton />
)}

Atribuindo Roles

Um SUPER_ADMIN pode alterar o papel de qualquer usuário via Admin → Usuários → Editar. Um ADMIN pode alterar apenas entre PROFESSOR e ADMIN.
O papel SUPER_ADMIN só pode ser atribuído por outro SUPER_ADMIN. Um admin comum não tem acesso a essa opção.