Darko Gjorgjijoski
|
92a1baced4
|
Add company invitation system (backend)
New feature allowing company owners/admins to invite users by email with
a specific company-scoped role.
Database:
- New company_invitations table (company_id, email, role_id, token,
status, invited_by, expires_at)
Backend:
- CompanyInvitation model with pending/forUser scopes
- InvitationService: invite, accept, decline, getPendingForUser
- CompanyInvitationMail with markdown email template
- InvitationController (company-scoped): list, send, cancel invitations
- InvitationResponseController (user-scoped): pending, accept, decline
- BootstrapController returns pending_invitations in response
- CompanyMiddleware handles zero-company users gracefully
Tests: 9 feature tests covering invite, accept, decline, cancel, expire,
duplicate prevention, and bootstrap integration.
|
2026-04-03 22:58:55 +02:00 |
|