mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-15 09:14:08 +00:00
Support invitations for unregistered users
When inviting an email without an InvoiceShelf account, the email now
links to a registration page (/register?invitation={token}) instead of
login. After registering, the invitation is auto-accepted.
Backend:
- InvitationRegistrationController: public details() and register()
endpoints. Registration validates token + email match, creates account,
auto-accepts invitation, returns Sanctum token.
- AuthController: login now accepts optional invitation_token param to
auto-accept invitation for existing users clicking the email link.
- CompanyInvitationMail: conditional URL based on user existence.
- Web route for /invitations/{token}/decline (email decline link).
Frontend:
- RegisterWithInvitation.vue: fetches invitation details, shows company
name + role, registration form with pre-filled email.
- Router: /register route added.
Tests: 3 new tests (invitation details, register + accept, email mismatch).
This commit is contained in:
8
resources/scripts/admin/admin-router.js
vendored
8
resources/scripts/admin/admin-router.js
vendored
@@ -138,8 +138,16 @@ const AdminFileDisk = () =>
|
||||
|
||||
const NoCompanyView = () =>
|
||||
import('@/scripts/admin/views/NoCompanyView.vue')
|
||||
const RegisterWithInvitation = () =>
|
||||
import('@/scripts/admin/views/auth/RegisterWithInvitation.vue')
|
||||
|
||||
export default [
|
||||
{
|
||||
path: '/register',
|
||||
name: 'register',
|
||||
component: RegisterWithInvitation,
|
||||
meta: { requiresAuth: false },
|
||||
},
|
||||
{
|
||||
path: '/admin/no-company',
|
||||
name: 'no.company',
|
||||
|
||||
Reference in New Issue
Block a user