- Se descapó
- 5 de octubre de 2026 a las 15:25 UTC
- Autor
- Kamo
- Compromit
- f6e8e8f
¿Qué? (y el /crear y /bulk-crear caminos que comparten MemberCreationService.create) tomar un equipo opcionalIds para una persona o un AI (master R1-36). Absente, null y [] no nombre equipo y no necesita derecho, por lo que una creación sin equipos no se cambia. - Revisado después de los cheques AI y antes de la búsqueda del usuario, cada negativa con el equipo de campo nada escrito: 400 INVALID FIELD, 403 NO REALIZADO sin MANAGE MEMBER SECURITY o un abierto ventana de dios (Creator.maySetTeams, llena de creadorOf), 400 NOT A TEAM MEMBER para un miembro base, 409 TOO MANY TEAMS over 25 (no read), 400 TEAM NOT FOUND for another org's or an unknown team, 400 TOO MANY MEMBERS para un equipo completo (TeamValidator.newMemberTeams). - Escrito por TeamWriter.joinNewMember, MANDATORY sin @RetryOnDbConflict, a través del nuevo equipos. NewMemberTeams, justo después del ahorro del miembro y antes del espejo, el primero aplicado derechos (que incluyen el nivel TEAM) y el alquiler de un AI; flushed, never caught: a member never existe con la mitad de sus equipos. Un 40001 es recortado enteramente por el callador (el existente 503 RETRY). - TeamService.afterCommit le dice al TeamChangeListeners una vez que la creación se compromete, nunca después de un rollback; la bienvenida se queda después del commit (a8966fd). Rulings CP01-T14A-1..3; master CP-D96.
