Pular para conteúdo

Views e Permissões

Mixins de Permissão

AdminRequiredMixin

Usado em todas as views da área /escola/. Verifica: - Usuário autenticado - user.is_admin == True - Escola pertence ao usuário

StudentRequiredMixin

Usado em views do /dashboard/. Verifica: - Usuário autenticado - user.is_student == True

Verificações de Segurança

Todas as views filtram dados pelo usuário autenticado, nunca confiando em IDs da URL sem validação:

# Seguro — sempre filtra pela escola do usuário
agent = get_object_or_404(Agent, pk=pk, course__school=self.get_school())

# Nunca assim — permite acesso cross-tenant
agent = get_object_or_404(Agent, pk=pk)  # ERRADO