- Shipped
- April 23, 2026 at 8:43 PM UTC
- Author
- Kamo
- Commit
- d158239
- New MemberCreateController exposes: * GET **************** — age-req, timezone, departments, job titles * GET **************** — debounced existence check by email or username * POST /api/security/members/create — create Member in caller's org * POST **************** — create TeamMember with department / job title / work location / membership status / security level - Reuses an existing User when email or username already matches; otherwise creates a net-new User and sends the EMAIL_VERIFICATION template. WELCOME template is always sent on creation. - For orgs whose AgeReqType permits under-13 users, email collection is skipped and username becomes the primary identifier. - Extends GET /members/{id} to return location + teamMembershipStatus + isOrganizationOwner for TeamMembers, and PUT to persist location, teamMembershipStatus, and jobTitleOfficial when the record is a TeamMember. - Default role assignment + rights materialization delegated to MemberService so every new member lands with their effective rights already applied. - Fix EntitlementService: boolean getter was spelled getIsOrganizationOwner (Lombok generates isOrganizationOwner for primitive boolean fields).