Permissões
A API decide cada chamada pelos vínculos da conta: um vínculo é um papel com um escopo (onde vale). Não há permissões separadas para "integração": a conta pode exatamente o que a mesma pessoa poderia no aplicativo.
Escopo
O escopo é hierárquico: instituição ⊃ disciplina ⊃ turma. Um vínculo vale no seu escopo e abaixo dele, nunca acima nem ao lado. Quem é professor da turma A não enxerga a turma B.
Papéis
| Papel | Escopo do vínculo | Capacidades |
|---|---|---|
ADMIN_PLATAFORMA | global | PLATAFORMA, ADMINISTRAR, CADASTRAR, LER (não AVALIAR) |
CURADOR | instituição | ADMINISTRAR, CADASTRAR, LER |
PRECEPTOR | instituição | LER |
COORDENADOR | disciplina | CADASTRAR, LER |
PROFESSOR | turma | LER |
AUXILIAR | disciplina ou turma | LER |
Duas marcas do vínculo acrescentam capacidades: podeAvaliar dá AVALIAR e podeCadastrar dá CADASTRAR. Nem o administrador da plataforma avalia sem a marca podeAvaliar.
Capacidades
| Capacidade | O que permite |
|---|---|
LER | Ver os dados acadêmicos do escopo (disciplinas, turmas, matrículas, atividades, frequência). |
CADASTRAR | Criar e editar disciplinas, turmas, atividades e matrículas no escopo. Inclui as importações CSV de alunos e atividades. |
AVALIAR | Decidir presenças e dar notas no escopo. |
ADMINISTRAR | Usuários, vínculos, parâmetros e auditoria da instituição. Inclui a importação CSV de pessoas. Só vem de CURADOR ou ADMIN_PLATAFORMA. |
PLATAFORMA | Criar instituições e gerir a plataforma. Só ADMIN_PLATAFORMA. |
Em cada operação da referência, o campo Acesso diz qual capacidade é exigida e sobre qual parâmetro do caminho ela é avaliada (por exemplo, CADASTRAR sobre a turma de turmaId).
Que papel dar à conta de integração
Dê o menor papel que cobre o que a integração faz:
| A integração... | Conta com... |
|---|---|
| só consulta frequência ou listas de uma turma | PROFESSOR ou AUXILIAR naquela turma (LER) |
| importa alunos e atividades de turmas de uma disciplina | COORDENADOR da disciplina |
| cria disciplinas, ou importa pessoas com papel (equipe) | CURADOR da instituição |
A conta de integração não precisa (e é melhor que não tenha) AVALIAR: o ato de confirmar a presença e dar nota é de quem está na turma.
Quando falta permissão
403 FORBIDDEN: a conta está autenticada, mas nenhum vínculo cobre aquela operação e aquele escopo.401 UNAUTHENTICATED: token ausente, inválido ou vencido; veja Autenticação.
Uma lista (GET /turmas, GET /instituicoes) traz só o que a conta pode ver; por isso duas contas diferentes recebem listas diferentes para a mesma rota.