- Shipped
- 11 de agosto de 2026 às 16:25 UTC
- Author
- Kamo
- Commit
- 8ade029
Registra com.kamo.z.shared.hr.training em @EnableJpaRepositórios — @EntityScan é amplo para o entidades são encontradas de qualquer forma, mas repositórios não são. Dois funis de autorização, deliberadamente separados, espelhando o módulo legal: FormaçãoPortas de acesso /api/docs/training/** em MANAGEM TRAINING (RoleRightType 185) lidas e escritas, que deve permanecer exatamente o aplicativo / hr / hrTabs.ts direito fecha a aba. Um servidor mais estreito que o aba deixa um membro capaz de abrir a aba e coletar um 403 sobre uma grade vazia; mais amplo, e é um Endpoint acessível por alguém que a UI nunca ofereceu. Os direitos são lidos de member rights applicated, nunca do token, porque o mapa de sessão OTK não tem direitos. TrainingAssignmentOwnership autoriza a superfície própria do membro por IDENTIDADE. TrainingMemberController Por conseguinte, não possui nenhum domínio de acesso à formação — um membro que faça um curso que lhes foi atribuído não tem HR direito, e roteá-los através do funil HR significaria ou bloquear todos os funcionários de o seu próprio treino ou alargamento do direito de RH definido até que o catálogo e a lista de audiência aberta ao Org inteiro. Propriedade responde 404, nunca 403: um 403 confirma que o UID é real e gira o ponto final em um oráculo para quem foi designado o quê, e um registro de avaliação não deve ser enumerável por um par. TrainingMemberSurfaceAuthTest pins todas as três propriedades por reflexão, porque o modo de falha é alguém adicionando o campo mais tarde "assim que o ponto final é garantido também". GET /atribuições e GET /atribuições / contagem de despesas. Nenhum mapeamento leva um membro ou org id — ambos vêm da sessão. status é um param REPEATÓVEL, nunca CSV: APIService entrega sua URL upstream para RestTemplate como um String, que recodifica% 2C para% 252C, então uma vírgula chega como um token literal não corresponde a nenhuma constante de enum. Um filtro não reconhecido significa "sem filtro", nunca "match nothing", então um marcador obsoleto mostra tudo em vez de uma grade vazia que lê como perda de dados. O paged lido é um repositório DocsService-local sobre a entidade compartilhada, ordenada (entrega no DESC, uid DESC) — pageando em uma chave não-única duplica e pula linhas, e uma atribuição de 200 membros escreve Entregue dentro do mesmo milissegundo. a contagem pendente retorna a mesma forma JSON que o quadro empurrado do crachá para que um analisador cliente sirva As duas coisas. As linhas são mapeadas dentro da transação; curso e versão são LAZY. 413 testes passam.