{
  "id": "perfis-e-responsabilidades-por-vinculo",
  "title": "Perfis e responsabilidades por vínculo",
  "description": "Referência operacional das responsabilidades, escopos, limites e controles de cada AffiliationType.",
  "type": "authorization-reference",
  "status": "defined",
  "visibility": "public",
  "tags": [
    "sge/autorizacao",
    "sge/affiliations",
    "sge/policies"
  ],
  "related": [
    "matriz-de-autorizacao",
    "pessoas-e-responsabilidades",
    "fase-05-administracao"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Policies/UserPolicy.php",
    "https://github.com/sge-suite/sge/blob/master/app/Policies/AffiliationPolicy.php",
    "https://github.com/sge-suite/sge/blob/master/app/Policies/ActivityPolicy.php",
    "https://github.com/sge-suite/sge/blob/master/app/Policies/EmailDeliveryAttemptPolicy.php",
    "https://github.com/sge-suite/sge/blob/master/app/Support/AdministrativeActivityScope.php",
    "https://github.com/sge-suite/sge/blob/master/app/Support/AdministrativeEmailLogScope.php",
    "https://github.com/sge-suite/sge/blob/master/app/Support/EmailLogAccess.php",
    "https://github.com/sge-suite/sge/blob/master/app/Actions/ManageAdministrativeUser.php",
    "https://github.com/sge-suite/sge/blob/master/app/Actions/UpdateAdministrativeAffiliation.php",
    "https://github.com/sge-suite/sge/blob/master/app/Actions/GetAdministrativeDashboardMetrics.php",
    "https://github.com/sge-suite/sge/blob/master/app/Http/Controllers/UserController.php",
    "https://github.com/sge-suite/sge/blob/master/app/Http/Controllers/AdministrativeAffiliationController.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Feature/AuditInterfaceTest.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Feature/EmailLogInterfaceTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "Esta é a referência operacional para implementar as telas, Gates, Policies e testes de acesso. Ela detalha a [matriz resumida](doc:matriz-de-autorizacao); não cria permissões configuráveis em banco. Para a explicação pública, sem termos de implementação, use [Pessoas e responsabilidades](doc:pessoas-e-responsabilidades).\n\n> [!warning] Regra de interpretação\n> Uma ação só é permitida quando esta referência a atribui ao vínculo **e** a Policy confirma vínculo ativo, escopo, posse do registro e estado do fluxo. Ausência de atribuição significa acesso negado. Pontos marcados como “a confirmar” não devem virar tela ou permissão até decisão institucional.\n\n## Regras comuns a todos os vínculos\n\n- Cada pessoa autentica uma única conta e seleciona um `affiliations` ativo para operar. Trocar de vínculo troca o contexto; não soma acessos.\n- A caixa operacional consulta somente as notificações do vínculo ativo selecionado. `AffiliationPolicy::viewNotifications` exige vínculo ativo e pertencente à conta autenticada; notificações de outro vínculo não atravessam a relação polimórfica, mesmo para a mesma conta. Notificações de conta continuam em `User`.\n- Toda leitura e alteração verifica `AffiliationType`, campus, curso quando aplicável, posse ou relação com o registro e o status atual. Um vínculo desativado não inicia nem altera fluxos.\n- Um campus desativado mantém vínculos e histórico, mas congela as alterações em seus recursos; configurações pessoais da conta continuam disponíveis e a pessoa pode trocar para outro vínculo.\n- Gates e Policies nativos do Laravel são a única camada de autorização. Não existem papéis, permissões ou exceções editáveis por interface.\n- O Activity Log registra alterações relevantes. Discente e supervisor não o consultam; os demais o consultam somente quando a Policy do processo autorizar.\n- No estado atual, a tela de auditoria e o histórico de e-mails estão disponíveis somente ao Administrador do Sistema com vínculo ativo selecionado; os escopos dos demais perfis continuam para decisão futura.\n- Notificação interna e e-mail são canais diferentes. Quem possui conta recebe ambos quando for destinatário elegível; o Setor de Estágio recebe seu resumo operacional somente dentro do sistema.\n- Informações privadas, inclusive prova de emancipação, nunca entram em e-mail, documento gerado ou Activity Log detalhado. O acesso depende de necessidade funcional explícita.\n\n## Resumo de fronteiras\n\n| Vínculo | Escopo-base | Atua diretamente no estágio? | Administração cadastral | Decisão final típica |\n| --- | --- | --- | --- | --- |\n| Administrador do Sistema | institucional/global | não, salvo atribuição futura explícita | campi e vínculos administrativos globais | ativação e estrutura institucional |\n| Administrador do Campus | próprio campus | não, salvo outro vínculo ativo | pessoas, vínculos, cursos e tipos do campus | administração do campus |\n| Setor de Estágio | campus ou escopo atribuído | sim | concedentes, pendências e templates | análise, formalização, liberação e avaliação |\n| Coordenador | cursos que o referenciam como coordenador | consulta acadêmica | não | atestado de orientação previsto |\n| Orientador | próprios orientandos | sim, nas notas acadêmicas | não | lançamento de relatório e apresentação |\n| Discente | próprio vínculo/processo | sim, na própria solicitação e pedidos | próprios dados permitidos | envio, correção, desistência e pedido de cancelamento |\n| Supervisor | estágios sob sua supervisão | sim, na própria avaliação | não | envio ou cancelamento da própria avaliação |\n| Direção de Ensino | institucional a confirmar | consulta, quando autorizada | não | nenhuma definida atualmente |\n\n## Administrador do Sistema\n\n### Finalidade e escopo\n\nMantém a estrutura institucional global. Seu vínculo pode não possuir campus e não o transforma, por si só, em operador acadêmico ou do Setor de Estágio.\n\n### Ações permitidas\n\n- consultar todos os campi e criar, editar, ativar, desativar e reativar campi;\n- editar todos os campos cadastrais de um campus ativo; informar a senha atual em cada desativação;\n- criar e administrar vínculos de Administrador do Sistema e Administrador do Campus, respeitando a separação entre escopo global e de campus;\n- iniciar o subfluxo de conta existente ou nova para esses vínculos e disparar o aviso de disponibilização do vínculo;\n- consultar auditoria de campi, contas com vínculos administrativos e vínculos de Administrador do Sistema/Administrador do Campus;\n- consultar envios relacionados a essas contas e vínculos, inclusive quando o destinatário do e-mail for externo;\n- consultar os dados administrativos indispensáveis para essas operações.\n\n### Limites e proibições\n\n- não analisa solicitação, não libera estágio, não confere assinatura, não preenche notas e não aprova avaliação apenas por ser administrador global;\n- não atua por outro vínculo sem selecioná-lo explicitamente;\n- não substitui o Setor de Estágio em seu escopo operacional;\n- nenhuma consulta a dados sensíveis ou a processos acadêmicos é presumida: precisa de Policy específica ou de outro vínculo ativo.\n\n### Notificações e auditoria\n\nA criação, edição, desativação e reativação de contas e vínculos administrativos envia os avisos previstos aos e-mails da conta e do vínculo, com destinatários deduplicados quando necessário. Mudanças de conta, vínculo e campus registram autoria do vínculo ativo no Activity Log; senhas não são registradas. O Administrador do Sistema consulta campi, contas com vínculos administrativos e vínculos dos tipos Administrador do Sistema e Administrador do Campus na tela de auditoria. A tela de e-mails usa o contexto do registro afetado, não apenas o endereço destinatário, e mostra conteúdo salvo e tentativas. Ambas exigem o vínculo ativo selecionado e excluem atividades operacionais de estágios, documentos, concedentes e demais registros fora do escopo. Campus desativado só pode ser reativado, sem alterar vínculos ou processos.\n\n### Controles a implementar\n\n`CampusPolicy` cobre as operações de campus e exige o vínculo ativo selecionado. `UserPolicy` e `AffiliationPolicy` autorizam a administração de contas e vínculos administrativos pelo Administrador do Sistema, também sem `Gate::before` global. As gravações usam controllers, Form Requests e Actions transacionais; a interface e as Policies de cursos, tipos e fluxos operacionais continuam pendentes.\n\n## Administrador do Campus\n\n### Finalidade e escopo\n\nMantém cadastros e estrutura do próprio campus. Sua visibilidade é limitada ao `campus_id` do vínculo ativo.\n\n### Ações permitidas\n\n- consultar os dados do próprio campus e editar telefone, representante legal e dados do seguro enquanto o campus estiver ativo;\n- criar e administrar contas e vínculos dentro do campus, inclusive por meio do fluxo de reutilização de conta existente;\n- criar e editar cursos, atribuir os dois coordenadores previstos e administrar tipos de estágio do próprio campus;\n- ativar ou desativar vínculos do próprio escopo, sem apagar histórico;\n- consultar os dados administrativos necessários para essas tarefas.\n\n### Limites e proibições\n\n- não cria outro campus, não altera seu nome, CNPJ, endereço, e-mail ou ciclo de ativação e não acessa registros de campus alheio;\n- enquanto o campus estiver desativado, não altera dados cadastrais, vínculos ou outros recursos ligados a ele;\n- não cria nem administra Administrador do Sistema;\n- não assume análise de solicitações, documentos, liberação, avaliações ou notas sem também possuir e selecionar o vínculo correspondente;\n- não modifica dados pessoais do discente fora do fluxo cadastral autorizado nem contorna snapshots históricos.\n\n### Notificações e auditoria\n\nAo adicionar vínculo a uma conta, o destinatário recebe o aviso previsto para conta nova ou existente. Alterações administrativas e de vínculo ficam auditadas; o administrador não recebe automaticamente os avisos operacionais de todos os estágios do campus.\n\n### Controles a implementar\n\n`CampusPolicy` já cobre consulta e campos editáveis do campus. As Policies de vínculo, curso e tipo de estágio continuam pendentes. Testes devem cobrir campus alheio, vínculo desativado, duplicidade de pessoa e tentativa de operar recursos de estágio.\n\n## Setor de Estágio\n\n### Finalidade e escopo\n\nÉ o vínculo operacional do estágio no campus ou escopo que lhe foi atribuído. Concentra análise humana, formalização e decisões administrativas do processo; não altera livremente respostas de outras pessoas.\n\n### Ações permitidas\n\n- analisar solicitação enviada, aceitar, recusar ou devolver com motivo e seções autorizadas para correção;\n- analisar solicitações pendentes de cadastro de supervisor e parte concedente, criando ou associando o cadastro resultante;\n- criar e manter partes concedentes autorizadas, templates DOCX e versões de template;\n- criar o estágio após aceite, gerar documentos, informar o local genérico de assinatura e selecionar interessados elegíveis para aviso;\n- conferir manualmente assinaturas externas, liberar o estágio e manter pendências documentais;\n- registrar pausa, tratar substituição autorizada de orientador ou supervisor e gerar aditivo quando houver mudança contratual;\n- aprovar ou recusar pedido de cancelamento, preservando documentos e histórico conforme o fluxo;\n- liberar a avaliação do supervisor, aprovar ou devolver a resposta com motivo e validar a carga horária exigida;\n- consultar o histórico operacional autorizado e emitir o resumo interno agrupado de pendências.\n\n### Limites e proibições\n\n- não edita a resposta enviada pelo discente: devolve e indica as seções que podem ser corrigidas;\n- não edita conteúdo de avaliação do supervisor: somente aprova ou devolve;\n- não altera jornada de modo direto ou temporário. Mudança de carga exige documento de aditivo e nova vigência apenas após assinaturas conferidas;\n- não conclui estágio, cancela documento ou abre correção por automação temporal; essas decisões são manuais;\n- não acessa provas privadas de emancipação fora da análise da solicitação nem divulga seus dados em comunicação ou documento.\n\n### Notificações e auditoria\n\nRecebe no sistema um resumo diário agrupado por campus e destinatário, sem e-mail operacional fragmentado. Suas decisões e mudanças registram vínculo responsável, motivo e efeitos no Activity Log. Avisos enviados a interessados de assinatura mantêm categorias e quantidade, nunca endereços de e-mail no log.\n\n### Controles a implementar\n\n`InternshipRequestPolicy`, `RegistrationRequestPolicy`, `GrantingPartyPolicy`, `TemplatePolicy`, `GeneratedDocumentPolicy`, `InternshipPolicy`, `InternshipPausePolicy`, `InternshipCancellationRequestPolicy` e `SupervisorEvaluationPolicy` restringem o escopo ao campus e às transições válidas. Testar, no mínimo, edição indevida de resposta, liberação sem assinatura confirmada, aprovação de avaliação com carga pendente e tentativa de alterar jornada sem aditivo.\n\n## Coordenador de Curso\n\n### Finalidade e escopo\n\nConsulta o acompanhamento acadêmico do curso vinculado. Não se confunde com o Setor de Estágio e não recebe suas decisões operacionais por herança.\n\n### Ações permitidas\n\n- consultar estágios e informações acadêmicas autorizadas do próprio curso;\n- emitir o atestado de orientação previsto no processo;\n- exercer apenas outras ações acadêmicas que sejam atribuídas explicitamente por decisão futura e Policy correspondente.\n\n### Limites e proibições\n\n- não analisa nem aprova solicitações, documentos, assinaturas, cancelamentos ou avaliações do supervisor;\n- não lança notas de relatório ou apresentação, que pertencem ao orientador responsável;\n- não consulta estágio de outro curso pelo simples fato de ser coordenador e não edita vínculo, campus ou tipo sem vínculo administrativo próprio.\n\n### Notificações e auditoria\n\nNão possui aviso operacional recorrente definido. A emissão do atestado e eventuais consultas sensíveis autorizadas são auditáveis. Inclusão em avisos documentais ou novas responsabilidades depende de decisão explícita.\n\n### Controles a implementar\n\n`InternshipPolicy::viewCourse` e `OrientationCertificatePolicy` validam curso e campus do vínculo. Testar curso alheio, tentativa de decisão operacional e emissão de atestado sem relação de curso válida.\n\n## Orientador\n\n### Finalidade e escopo\n\nAcompanha apenas os discentes para os quais é orientador no estágio. O escopo nasce da relação registrada no estágio, não de todos os discentes do curso.\n\n### Ações permitidas\n\n- consultar dados e andamento dos próprios orientandos necessários ao acompanhamento;\n- lançar ou alterar, quando o status permitir, as notas de relatório e apresentação na escala congelada do tipo de estágio;\n- acompanhar a nota consolidada calculada pelo sistema;\n- receber avisos de documento disponível para assinatura quando selecionado pelo Setor e alertas que exijam ação sua.\n\n### Limites e proibições\n\n- não aprova nem edita a avaliação respondida pelo supervisor;\n- não altera a nota do supervisor, os pesos, os conceitos ou a fórmula congelada;\n- não conclui, libera, pausa, cancela ou formaliza o estágio;\n- não consulta orientandos de outro vínculo nem o Activity Log fora do necessário e autorizado.\n\n### Notificações e auditoria\n\nRecebe notificação interna e e-mail quando selecionado para assinatura ou quando tiver ação acadêmica atribuída. Cada lançamento de nota registra autor, vínculo, valor anterior e novo; o sistema recalcula a nota consolidada conforme as regras congeladas.\n\n### Controles a implementar\n\n`InternshipPolicy::viewAsAdvisor` e `InternshipGradePolicy` validam a relação de orientação, campus, estado do estágio e limites da escala. Testar lançamento em orientando alheio, nota fora do peso, estágio cancelado ou nota já bloqueada por regra de conclusão.\n\n## Discente\n\n### Finalidade e escopo\n\nOpera exclusivamente a própria solicitação e o próprio estágio, dentro do curso do vínculo ativo. A Migration 10 associa o curso ao vínculo de discente; uma pessoa com dois cursos usa vínculos separados e não mistura os processos.\n\n### Ações permitidas\n\n- alterar a própria senha e e-mail de login; como discente, também atualizar RG, nascimento e endereço atuais permitidos;\n- criar, salvar progressivamente e editar a própria solicitação em `Draft`;\n- enviar a solicitação, responder uma devolução nas seções liberadas e acompanhar o resultado da análise;\n- registrar a capacidade civil, informar responsável quando necessário e enviar comprovante privado de emancipação pelo SGE;\n- consultar seus estágios, notificações, documentos que lhe forem disponibilizados e a previsão de término;\n- desistir da solicitação não formalizada ou solicitar cancelamento do estágio com motivo, nos estados permitidos.\n\n### Limites e proibições\n\n- não aceita, recusa, libera ou conclui o próprio estágio;\n- não cadastra definitivamente parte concedente ou supervisor, não escolhe template e não confirma assinaturas externas;\n- não altera jornada após a formalização, avaliações, notas, snapshots, status ou data prevista diretamente;\n- não exclui solicitações, estágios, evidências ou cancelamentos e não consulta o Activity Log;\n- não acessa processo de outro discente, mesmo que pertença ao mesmo curso.\n\n### Notificações e auditoria\n\nRecebe notificação interna e e-mail sobre fatos temporais do próprio estágio, devoluções, decisões e assinatura quando selecionado. A evidência de emancipação permanece privada; o histórico registra o evento de envio e análise sem expor arquivo ou metadados.\n\n### Controles a implementar\n\n`InternshipRequestPolicy`, `InternshipPolicy`, `EmancipationEvidencePolicy` e `InternshipCancellationRequestPolicy` verificam posse pelo `affiliation_id`, curso, estado e seções liberadas. Testar acesso cruzado entre discentes, envio incompleto fora de `Draft`, edição após envio e leitura de Activity Log.\n\n## Supervisor\n\n### Finalidade e escopo\n\nResponde pela avaliação dos estágios em que está formalmente vinculado como supervisor. Não é aprovador nem operador do processo de estágio.\n\n### Ações permitidas\n\n- consultar os próprios estágios e avaliações liberadas;\n- criar ou continuar a avaliação em `Draft`, com salvamento progressivo;\n- enviar a avaliação completa como `Submitted`;\n- editar integralmente a mesma avaliação quando estiver `Returned` e reenviá-la;\n- cancelar a própria avaliação `Submitted` ou `Returned`, com motivo, preservando o registro;\n- receber aviso para preencher ou corrigir avaliação e, quando selecionado, aviso de documento disponível para assinatura.\n\n### Limites e proibições\n\n- não aprova a própria avaliação, não muda o status para `Approved` e não edita resposta depois de enviada, salvo retorno do Setor;\n- não altera estágio, jornada, pausas, documentos, notas ou avaliação de outro supervisor;\n- não exclui formulários e não consulta o Activity Log;\n- não tem acesso a dados privados sem relação com a supervisão, incluindo evidências de emancipação.\n\n### Notificações e auditoria\n\nQuando tiver conta, recebe notificação interna e e-mail pelos fatos que exigirem ação. O Activity Log preserva valores e transições, mas não é exposto na interface do supervisor.\n\n### Controles a implementar\n\n`SupervisorEvaluationPolicy` valida a relação de supervisão, estado do estágio e transição do formulário. Testar avaliação de estágio alheio, edição em `Submitted` ou `Approved`, aprovação própria, cancelamento fora dos estados permitidos e leitura do log.\n\n## Direção de Ensino\n\n### Finalidade e escopo\n\nÉ um vínculo institucional de consulta. O escopo exato de campus e os relatórios que poderá acessar ainda dependem de confirmação institucional.\n\n### Ações atualmente permitidas\n\n- consultar informações gerais e relatórios somente quando uma Policy definir expressamente o escopo institucional aplicável.\n\n### Limites e proibições\n\n- não possui criação, edição, aprovação, liberação, assinatura, lançamento de nota ou cancelamento definidos;\n- não deve receber acesso operacional por analogia com Administrador, Coordenador ou Setor de Estágio;\n- enquanto o escopo não estiver definido, a Policy nega qualquer consulta que não seja pública ou estritamente necessária à própria conta.\n\n### Notificações e auditoria\n\nNão há notificações operacionais definidas. Consultas a relatórios ou dados sensíveis autorizados devem registrar o vínculo e a finalidade conforme a política de auditoria a ser definida.\n\n### Controles a implementar\n\nCriar `TeachingDirectionReportPolicy` somente após confirmar relatórios, abrangência e necessidade de dados pessoais. Os testes atuais devem provar ausência de permissão de escrita e negar acesso a relatórios fora do escopo ainda não decidido.\n\n## Mapa de implementação e testes\n\n| Área protegida | Policy principal | Decisão obrigatória |\n| --- | --- | --- |\n| conta, vínculo, campus, curso e tipo | `AffiliationPolicy`, `CampusPolicy`, `CoursePolicy`, `InternshipTypePolicy` | tipo do vínculo e mesmo campus/curso |\n| solicitação e evidência de emancipação | `InternshipRequestPolicy`, `EmancipationEvidencePolicy` | posse do discente ou análise pelo Setor |\n| estágio, pausa, aditivo e cancelamento | `InternshipPolicy`, `InternshipPausePolicy`, `InternshipCancellationRequestPolicy` | relação com estágio, estado e fluxo documental |\n| documentos e assinaturas | `GeneratedDocumentPolicy`, `TemplatePolicy` | Setor no escopo; destinatário apenas visualiza o que lhe foi disponibilizado |\n| avaliação e notas | `SupervisorEvaluationPolicy`, `InternshipGradePolicy` | supervisor, Setor ou orientador correto; estado e relação válidos |\n| relatórios institucionais | Policy específica de relatório | somente quando o vínculo e o escopo tiverem sido definidos |\n\nCada ação deve ter testes positivos e negativos: vínculo correto, tipo errado, campus/curso errado, relação inexistente, vínculo desativado e status inválido. A [Fase 05](doc:fase-05-administracao) implementa primeiro a base de contexto e as Policies administrativas; as fases de estágio, documentos e avaliação acrescentam as Policies de domínio acima.\n\n## Pendências institucionais que bloqueiam novas permissões\n\n- definir o escopo e a lista de relatórios da Direção de Ensino;\n- confirmar se o Coordenador terá alguma ação acadêmica além de consulta por curso e emissão de atestado de orientação;\n- confirmar quais dados e relatórios poderão ser visualizados por cada vínculo sem relação direta com o estágio;\n- definir a política de auditoria para consultas sensíveis, caso ela exija registros além do Activity Log de alterações.",
  "sections": [
    {
      "id": "regras-comuns-a-todos-os-vinculos",
      "level": 2,
      "title": "Regras comuns a todos os vínculos",
      "text": "- Cada pessoa autentica uma única conta e seleciona um `affiliations` ativo para operar. Trocar de vínculo troca o contexto; não soma acessos. - A caixa operacional consulta somente as notificações do vínculo ativo selecionado. `AffiliationPolicy::viewNotifications` exige vínculo ativo e pertencente à conta autenticada; notificações de outro vínculo não atravessam a relação polimórfica, mesmo para a mesma conta. Notificações de conta continuam em `User`. - Toda leitura e alteração verifica `AffiliationType`, campus, curso quando aplicável, posse ou relação com o registro e o status atual. Um vínculo desativado não inicia nem altera fluxos. - Um campus desativado mantém vínculos e histórico, mas congela as alterações em seus recursos; configurações pessoais da conta continuam disponíveis e a pessoa pode trocar para outro vínculo. - Gates e Policies nativos do Laravel são a única camada de autorização. Não existem papéis, permissões ou exceções editáveis por interface. - O Activity Log registra alterações relevantes. Discente e supervisor não o consultam; os demais o consultam somente quando a Policy do processo autorizar. - No estado atual, a tela de auditoria e o histórico de e-mails estão disponíveis somente ao Administrador do Sistema com vínculo ativo selecionado; os escopos dos demais perfis continuam para decisão futura. - Notificação interna e e-mail são canais diferentes. Quem possui conta recebe ambos quando for destinatário elegível; o Setor de Estágio recebe seu resumo operacional somente dentro do sistema. - Informações privadas, inclusive prova de emancipação, nunca entram em e-mail, documento gerado ou Activity Log detalhado. O acesso depende de necessidade funcional explícita.",
      "line": 6
    },
    {
      "id": "resumo-de-fronteiras",
      "level": 2,
      "title": "Resumo de fronteiras",
      "text": "| Vínculo | Escopo-base | Atua diretamente no estágio? | Administração cadastral | Decisão final típica | | --- | --- | --- | --- | --- | | Administrador do Sistema | institucional/global | não, salvo atribuição futura explícita | campi e vínculos administrativos globais | ativação e estrutura institucional | | Administrador do Campus | próprio campus | não, salvo outro vínculo ativo | pessoas, vínculos, cursos e tipos do campus | administração do campus | | Setor de Estágio | campus ou escopo atribuído | sim | concedentes, pendências e templates | análise, formalização, liberação e avaliação | | Coordenador | cursos que o referenciam como coordenador | consulta acadêmica | não | atestado de orientação previsto | | Orientador | próprios orientandos | sim, nas notas acadêmicas | não | lançamento de relatório e apresentação | | Discente | próprio vínculo/processo | sim, na própria solicitação e pedidos | próprios dados permitidos | envio, correção, desistência e pedido de cancelamento | | Supervisor | estágios sob sua supervisão | sim, na própria avaliação | não | envio ou cancelamento da própria avaliação | | Direção de Ensino | institucional a confirmar | consulta, quando autorizada | não | nenhuma definida atualmente |",
      "line": 18
    },
    {
      "id": "administrador-do-sistema",
      "level": 2,
      "title": "Administrador do Sistema",
      "text": "",
      "line": 31
    },
    {
      "id": "finalidade-e-escopo",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Mantém a estrutura institucional global. Seu vínculo pode não possuir campus e não o transforma, por si só, em operador acadêmico ou do Setor de Estágio.",
      "line": 33
    },
    {
      "id": "acoes-permitidas",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- consultar todos os campi e criar, editar, ativar, desativar e reativar campi; - editar todos os campos cadastrais de um campus ativo; informar a senha atual em cada desativação; - criar e administrar vínculos de Administrador do Sistema e Administrador do Campus, respeitando a separação entre escopo global e de campus; - iniciar o subfluxo de conta existente ou nova para esses vínculos e disparar o aviso de disponibilização do vínculo; - consultar auditoria de campi, contas com vínculos administrativos e vínculos de Administrador do Sistema/Administrador do Campus; - consultar envios relacionados a essas contas e vínculos, inclusive quando o destinatário do e-mail for externo; - consultar os dados administrativos indispensáveis para essas operações.",
      "line": 37
    },
    {
      "id": "limites-e-proibicoes",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não analisa solicitação, não libera estágio, não confere assinatura, não preenche notas e não aprova avaliação apenas por ser administrador global; - não atua por outro vínculo sem selecioná-lo explicitamente; - não substitui o Setor de Estágio em seu escopo operacional; - nenhuma consulta a dados sensíveis ou a processos acadêmicos é presumida: precisa de Policy específica ou de outro vínculo ativo.",
      "line": 47
    },
    {
      "id": "notificacoes-e-auditoria",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "A criação, edição, desativação e reativação de contas e vínculos administrativos envia os avisos previstos aos e-mails da conta e do vínculo, com destinatários deduplicados quando necessário. Mudanças de conta, vínculo e campus registram autoria do vínculo ativo no Activity Log; senhas não são registradas. O Administrador do Sistema consulta campi, contas com vínculos administrativos e vínculos dos tipos Administrador do Sistema e Administrador do Campus na tela de auditoria. A tela de e-mails usa o contexto do registro afetado, não apenas o endereço destinatário, e mostra conteúdo salvo e tentativas. Ambas exigem o vínculo ativo selecionado e excluem atividades operacionais de estágios, documentos, concedentes e demais registros fora do escopo. Campus desativado só pode ser reativado, sem alterar vínculos ou processos.",
      "line": 54
    },
    {
      "id": "controles-a-implementar",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`CampusPolicy` cobre as operações de campus e exige o vínculo ativo selecionado. `UserPolicy` e `AffiliationPolicy` autorizam a administração de contas e vínculos administrativos pelo Administrador do Sistema, também sem `Gate::before` global. As gravações usam controllers, Form Requests e Actions transacionais; a interface e as Policies de cursos, tipos e fluxos operacionais continuam pendentes.",
      "line": 58
    },
    {
      "id": "administrador-do-campus",
      "level": 2,
      "title": "Administrador do Campus",
      "text": "",
      "line": 62
    },
    {
      "id": "finalidade-e-escopo-2",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Mantém cadastros e estrutura do próprio campus. Sua visibilidade é limitada ao `campus_id` do vínculo ativo.",
      "line": 64
    },
    {
      "id": "acoes-permitidas-2",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- consultar os dados do próprio campus e editar telefone, representante legal e dados do seguro enquanto o campus estiver ativo; - criar e administrar contas e vínculos dentro do campus, inclusive por meio do fluxo de reutilização de conta existente; - criar e editar cursos, atribuir os dois coordenadores previstos e administrar tipos de estágio do próprio campus; - ativar ou desativar vínculos do próprio escopo, sem apagar histórico; - consultar os dados administrativos necessários para essas tarefas.",
      "line": 68
    },
    {
      "id": "limites-e-proibicoes-2",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não cria outro campus, não altera seu nome, CNPJ, endereço, e-mail ou ciclo de ativação e não acessa registros de campus alheio; - enquanto o campus estiver desativado, não altera dados cadastrais, vínculos ou outros recursos ligados a ele; - não cria nem administra Administrador do Sistema; - não assume análise de solicitações, documentos, liberação, avaliações ou notas sem também possuir e selecionar o vínculo correspondente; - não modifica dados pessoais do discente fora do fluxo cadastral autorizado nem contorna snapshots históricos.",
      "line": 76
    },
    {
      "id": "notificacoes-e-auditoria-2",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Ao adicionar vínculo a uma conta, o destinatário recebe o aviso previsto para conta nova ou existente. Alterações administrativas e de vínculo ficam auditadas; o administrador não recebe automaticamente os avisos operacionais de todos os estágios do campus.",
      "line": 84
    },
    {
      "id": "controles-a-implementar-2",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`CampusPolicy` já cobre consulta e campos editáveis do campus. As Policies de vínculo, curso e tipo de estágio continuam pendentes. Testes devem cobrir campus alheio, vínculo desativado, duplicidade de pessoa e tentativa de operar recursos de estágio.",
      "line": 88
    },
    {
      "id": "setor-de-estagio",
      "level": 2,
      "title": "Setor de Estágio",
      "text": "",
      "line": 92
    },
    {
      "id": "finalidade-e-escopo-3",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "É o vínculo operacional do estágio no campus ou escopo que lhe foi atribuído. Concentra análise humana, formalização e decisões administrativas do processo; não altera livremente respostas de outras pessoas.",
      "line": 94
    },
    {
      "id": "acoes-permitidas-3",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- analisar solicitação enviada, aceitar, recusar ou devolver com motivo e seções autorizadas para correção; - analisar solicitações pendentes de cadastro de supervisor e parte concedente, criando ou associando o cadastro resultante; - criar e manter partes concedentes autorizadas, templates DOCX e versões de template; - criar o estágio após aceite, gerar documentos, informar o local genérico de assinatura e selecionar interessados elegíveis para aviso; - conferir manualmente assinaturas externas, liberar o estágio e manter pendências documentais; - registrar pausa, tratar substituição autorizada de orientador ou supervisor e gerar aditivo quando houver mudança contratual; - aprovar ou recusar pedido de cancelamento, preservando documentos e histórico conforme o fluxo; - liberar a avaliação do supervisor, aprovar ou devolver a resposta com motivo e validar a carga horária exigida; - consultar o histórico operacional autorizado e emitir o resumo interno agrupado de pendências.",
      "line": 98
    },
    {
      "id": "limites-e-proibicoes-3",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não edita a resposta enviada pelo discente: devolve e indica as seções que podem ser corrigidas; - não edita conteúdo de avaliação do supervisor: somente aprova ou devolve; - não altera jornada de modo direto ou temporário. Mudança de carga exige documento de aditivo e nova vigência apenas após assinaturas conferidas; - não conclui estágio, cancela documento ou abre correção por automação temporal; essas decisões são manuais; - não acessa provas privadas de emancipação fora da análise da solicitação nem divulga seus dados em comunicação ou documento.",
      "line": 110
    },
    {
      "id": "notificacoes-e-auditoria-3",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Recebe no sistema um resumo diário agrupado por campus e destinatário, sem e-mail operacional fragmentado. Suas decisões e mudanças registram vínculo responsável, motivo e efeitos no Activity Log. Avisos enviados a interessados de assinatura mantêm categorias e quantidade, nunca endereços de e-mail no log.",
      "line": 118
    },
    {
      "id": "controles-a-implementar-3",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`InternshipRequestPolicy`, `RegistrationRequestPolicy`, `GrantingPartyPolicy`, `TemplatePolicy`, `GeneratedDocumentPolicy`, `InternshipPolicy`, `InternshipPausePolicy`, `InternshipCancellationRequestPolicy` e `SupervisorEvaluationPolicy` restringem o escopo ao campus e às transições válidas. Testar, no mínimo, edição indevida de resposta, liberação sem assinatura confirmada, aprovação de avaliação com carga pendente e tentativa de alterar jornada sem aditivo.",
      "line": 122
    },
    {
      "id": "coordenador-de-curso",
      "level": 2,
      "title": "Coordenador de Curso",
      "text": "",
      "line": 126
    },
    {
      "id": "finalidade-e-escopo-4",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Consulta o acompanhamento acadêmico do curso vinculado. Não se confunde com o Setor de Estágio e não recebe suas decisões operacionais por herança.",
      "line": 128
    },
    {
      "id": "acoes-permitidas-4",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- consultar estágios e informações acadêmicas autorizadas do próprio curso; - emitir o atestado de orientação previsto no processo; - exercer apenas outras ações acadêmicas que sejam atribuídas explicitamente por decisão futura e Policy correspondente.",
      "line": 132
    },
    {
      "id": "limites-e-proibicoes-4",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não analisa nem aprova solicitações, documentos, assinaturas, cancelamentos ou avaliações do supervisor; - não lança notas de relatório ou apresentação, que pertencem ao orientador responsável; - não consulta estágio de outro curso pelo simples fato de ser coordenador e não edita vínculo, campus ou tipo sem vínculo administrativo próprio.",
      "line": 138
    },
    {
      "id": "notificacoes-e-auditoria-4",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Não possui aviso operacional recorrente definido. A emissão do atestado e eventuais consultas sensíveis autorizadas são auditáveis. Inclusão em avisos documentais ou novas responsabilidades depende de decisão explícita.",
      "line": 144
    },
    {
      "id": "controles-a-implementar-4",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`InternshipPolicy::viewCourse` e `OrientationCertificatePolicy` validam curso e campus do vínculo. Testar curso alheio, tentativa de decisão operacional e emissão de atestado sem relação de curso válida.",
      "line": 148
    },
    {
      "id": "orientador",
      "level": 2,
      "title": "Orientador",
      "text": "",
      "line": 152
    },
    {
      "id": "finalidade-e-escopo-5",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Acompanha apenas os discentes para os quais é orientador no estágio. O escopo nasce da relação registrada no estágio, não de todos os discentes do curso.",
      "line": 154
    },
    {
      "id": "acoes-permitidas-5",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- consultar dados e andamento dos próprios orientandos necessários ao acompanhamento; - lançar ou alterar, quando o status permitir, as notas de relatório e apresentação na escala congelada do tipo de estágio; - acompanhar a nota consolidada calculada pelo sistema; - receber avisos de documento disponível para assinatura quando selecionado pelo Setor e alertas que exijam ação sua.",
      "line": 158
    },
    {
      "id": "limites-e-proibicoes-5",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não aprova nem edita a avaliação respondida pelo supervisor; - não altera a nota do supervisor, os pesos, os conceitos ou a fórmula congelada; - não conclui, libera, pausa, cancela ou formaliza o estágio; - não consulta orientandos de outro vínculo nem o Activity Log fora do necessário e autorizado.",
      "line": 165
    },
    {
      "id": "notificacoes-e-auditoria-5",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Recebe notificação interna e e-mail quando selecionado para assinatura ou quando tiver ação acadêmica atribuída. Cada lançamento de nota registra autor, vínculo, valor anterior e novo; o sistema recalcula a nota consolidada conforme as regras congeladas.",
      "line": 172
    },
    {
      "id": "controles-a-implementar-5",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`InternshipPolicy::viewAsAdvisor` e `InternshipGradePolicy` validam a relação de orientação, campus, estado do estágio e limites da escala. Testar lançamento em orientando alheio, nota fora do peso, estágio cancelado ou nota já bloqueada por regra de conclusão.",
      "line": 176
    },
    {
      "id": "discente",
      "level": 2,
      "title": "Discente",
      "text": "",
      "line": 180
    },
    {
      "id": "finalidade-e-escopo-6",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Opera exclusivamente a própria solicitação e o próprio estágio, dentro do curso do vínculo ativo. A Migration 10 associa o curso ao vínculo de discente; uma pessoa com dois cursos usa vínculos separados e não mistura os processos.",
      "line": 182
    },
    {
      "id": "acoes-permitidas-6",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- alterar a própria senha e e-mail de login; como discente, também atualizar RG, nascimento e endereço atuais permitidos; - criar, salvar progressivamente e editar a própria solicitação em `Draft`; - enviar a solicitação, responder uma devolução nas seções liberadas e acompanhar o resultado da análise; - registrar a capacidade civil, informar responsável quando necessário e enviar comprovante privado de emancipação pelo SGE; - consultar seus estágios, notificações, documentos que lhe forem disponibilizados e a previsão de término; - desistir da solicitação não formalizada ou solicitar cancelamento do estágio com motivo, nos estados permitidos.",
      "line": 186
    },
    {
      "id": "limites-e-proibicoes-6",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não aceita, recusa, libera ou conclui o próprio estágio; - não cadastra definitivamente parte concedente ou supervisor, não escolhe template e não confirma assinaturas externas; - não altera jornada após a formalização, avaliações, notas, snapshots, status ou data prevista diretamente; - não exclui solicitações, estágios, evidências ou cancelamentos e não consulta o Activity Log; - não acessa processo de outro discente, mesmo que pertença ao mesmo curso.",
      "line": 195
    },
    {
      "id": "notificacoes-e-auditoria-6",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Recebe notificação interna e e-mail sobre fatos temporais do próprio estágio, devoluções, decisões e assinatura quando selecionado. A evidência de emancipação permanece privada; o histórico registra o evento de envio e análise sem expor arquivo ou metadados.",
      "line": 203
    },
    {
      "id": "controles-a-implementar-6",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`InternshipRequestPolicy`, `InternshipPolicy`, `EmancipationEvidencePolicy` e `InternshipCancellationRequestPolicy` verificam posse pelo `affiliation_id`, curso, estado e seções liberadas. Testar acesso cruzado entre discentes, envio incompleto fora de `Draft`, edição após envio e leitura de Activity Log.",
      "line": 207
    },
    {
      "id": "supervisor",
      "level": 2,
      "title": "Supervisor",
      "text": "",
      "line": 211
    },
    {
      "id": "finalidade-e-escopo-7",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "Responde pela avaliação dos estágios em que está formalmente vinculado como supervisor. Não é aprovador nem operador do processo de estágio.",
      "line": 213
    },
    {
      "id": "acoes-permitidas-7",
      "level": 3,
      "title": "Ações permitidas",
      "text": "- consultar os próprios estágios e avaliações liberadas; - criar ou continuar a avaliação em `Draft`, com salvamento progressivo; - enviar a avaliação completa como `Submitted`; - editar integralmente a mesma avaliação quando estiver `Returned` e reenviá-la; - cancelar a própria avaliação `Submitted` ou `Returned`, com motivo, preservando o registro; - receber aviso para preencher ou corrigir avaliação e, quando selecionado, aviso de documento disponível para assinatura.",
      "line": 217
    },
    {
      "id": "limites-e-proibicoes-7",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não aprova a própria avaliação, não muda o status para `Approved` e não edita resposta depois de enviada, salvo retorno do Setor; - não altera estágio, jornada, pausas, documentos, notas ou avaliação de outro supervisor; - não exclui formulários e não consulta o Activity Log; - não tem acesso a dados privados sem relação com a supervisão, incluindo evidências de emancipação.",
      "line": 226
    },
    {
      "id": "notificacoes-e-auditoria-7",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Quando tiver conta, recebe notificação interna e e-mail pelos fatos que exigirem ação. O Activity Log preserva valores e transições, mas não é exposto na interface do supervisor.",
      "line": 233
    },
    {
      "id": "controles-a-implementar-7",
      "level": 3,
      "title": "Controles a implementar",
      "text": "`SupervisorEvaluationPolicy` valida a relação de supervisão, estado do estágio e transição do formulário. Testar avaliação de estágio alheio, edição em `Submitted` ou `Approved`, aprovação própria, cancelamento fora dos estados permitidos e leitura do log.",
      "line": 237
    },
    {
      "id": "direcao-de-ensino",
      "level": 2,
      "title": "Direção de Ensino",
      "text": "",
      "line": 241
    },
    {
      "id": "finalidade-e-escopo-8",
      "level": 3,
      "title": "Finalidade e escopo",
      "text": "É um vínculo institucional de consulta. O escopo exato de campus e os relatórios que poderá acessar ainda dependem de confirmação institucional.",
      "line": 243
    },
    {
      "id": "acoes-atualmente-permitidas",
      "level": 3,
      "title": "Ações atualmente permitidas",
      "text": "- consultar informações gerais e relatórios somente quando uma Policy definir expressamente o escopo institucional aplicável.",
      "line": 247
    },
    {
      "id": "limites-e-proibicoes-8",
      "level": 3,
      "title": "Limites e proibições",
      "text": "- não possui criação, edição, aprovação, liberação, assinatura, lançamento de nota ou cancelamento definidos; - não deve receber acesso operacional por analogia com Administrador, Coordenador ou Setor de Estágio; - enquanto o escopo não estiver definido, a Policy nega qualquer consulta que não seja pública ou estritamente necessária à própria conta.",
      "line": 251
    },
    {
      "id": "notificacoes-e-auditoria-8",
      "level": 3,
      "title": "Notificações e auditoria",
      "text": "Não há notificações operacionais definidas. Consultas a relatórios ou dados sensíveis autorizados devem registrar o vínculo e a finalidade conforme a política de auditoria a ser definida.",
      "line": 257
    },
    {
      "id": "controles-a-implementar-8",
      "level": 3,
      "title": "Controles a implementar",
      "text": "Criar `TeachingDirectionReportPolicy` somente após confirmar relatórios, abrangência e necessidade de dados pessoais. Os testes atuais devem provar ausência de permissão de escrita e negar acesso a relatórios fora do escopo ainda não decidido.",
      "line": 261
    },
    {
      "id": "mapa-de-implementacao-e-testes",
      "level": 2,
      "title": "Mapa de implementação e testes",
      "text": "| Área protegida | Policy principal | Decisão obrigatória | | --- | --- | --- | | conta, vínculo, campus, curso e tipo | `AffiliationPolicy`, `CampusPolicy`, `CoursePolicy`, `InternshipTypePolicy` | tipo do vínculo e mesmo campus/curso | | solicitação e evidência de emancipação | `InternshipRequestPolicy`, `EmancipationEvidencePolicy` | posse do discente ou análise pelo Setor | | estágio, pausa, aditivo e cancelamento | `InternshipPolicy`, `InternshipPausePolicy`, `InternshipCancellationRequestPolicy` | relação com estágio, estado e fluxo documental | | documentos e assinaturas | `GeneratedDocumentPolicy`, `TemplatePolicy` | Setor no escopo; destinatário apenas visualiza o que lhe foi disponibilizado | | avaliação e notas | `SupervisorEvaluationPolicy`, `InternshipGradePolicy` | supervisor, Setor ou orientador correto; estado e relação válidos | | relatórios institucionais | Policy específica de relatório | somente quando o vínculo e o escopo tiverem sido definidos |  Cada ação deve ter testes positivos e negativos: vínculo correto, tipo errado, campus/curso errado, relação inexistente, vínculo desativado e status inválido. A [Fase 05](doc:fase-05-administracao) implementa primeiro a base de contexto e as Policies administrativas; as fases de estágio, documentos e avaliação acrescentam as Policies de domínio acima.",
      "line": 265
    },
    {
      "id": "pendencias-institucionais-que-bloqueiam-novas-permissoes",
      "level": 2,
      "title": "Pendências institucionais que bloqueiam novas permissões",
      "text": "- definir o escopo e a lista de relatórios da Direção de Ensino; - confirmar se o Coordenador terá alguma ação acadêmica além de consulta por curso e emissão de atestado de orientação; - confirmar quais dados e relatórios poderão ser visualizados por cada vínculo sem relação direta com o estágio; - definir a política de auditoria para consultas sensíveis, caso ela exija registros além do Activity Log de alterações.",
      "line": 278
    }
  ],
  "sourcePath": "content/perfis-e-responsabilidades-por-vinculo.md",
  "visuals": [],
  "apiVersion": 1
}
