- Full auth system with email/password (using phx.gen.auth) - Login, registration, password reset - Session management with remember-me functionality - Magic link login support 2. Organization Management - Multi-tenant organization system - Organizations schema with unique slugs - Automatic organization creation when users register - Organization switcher UI at /orgs 3. Membership System - Users can belong to multiple organizations - 4 permission levels: Owner, Admin, Member, Viewer - Complete permission matrix implemented - Join/leave organizations 4. Invitation System - Email-based invitations with secure tokens - 7-day expiration on invites - Track who invited and who accepted 5. Authorization - Full policy system (Organizations.Policy) - can?(membership, :action, :resource) helper - Enforced via plugs in router 6. LiveView Pages - /orgs - List all your organizations - /orgs/new - Create new organization - /orgs/:slug - Organization dashboard (placeholder) 7. Database Schema - users table - organizations table - organization_memberships table - organization_invitations table - All migrations run successfully
17 lines
566 B
Text
17 lines
566 B
Text
<.header>
|
|
{@page_title}
|
|
<:subtitle>Create a new organization to manage your sites and equipment</:subtitle>
|
|
</.header>
|
|
|
|
<div class="max-w-2xl mt-8">
|
|
<.form for={@form} id="organization-form" phx-change="validate" phx-submit="save">
|
|
<div class="space-y-4">
|
|
<.input field={@form[:name]} type="text" label="Organization Name" required />
|
|
|
|
<div class="flex gap-2">
|
|
<.button phx-disable-with="Creating...">Create Organization</.button>
|
|
<.link navigate={~p"/orgs"} class="btn">Cancel</.link>
|
|
</div>
|
|
</div>
|
|
</.form>
|
|
</div>
|