91e3181bbc
dialyzer: fix all unmatched_return warnings (154 → 0)
...
Prefix fire-and-forget calls (PubSub.broadcast, Oban enqueue, Logger,
update_*, etc.) with `_ =` so dialyzer knows the return value is
intentionally discarded. Wrap a few if/case expressions whose
branches produce mixed types the same way.
No behavior changes — only explicit acknowledgement of discarded
returns.
Warnings: 242 → 88.
2026-04-21 10:03:55 -05:00
c52f313e2d
1. User Authentication
...
- 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
2025-12-21 13:31:59 -06:00