Organization & User Management¶
Overview¶
Nigall user management spans django-allauth authentication, CustomUser profiles, user types, subscription plans, and optional linkage to talent_management.Account for CRM teams.
Purpose¶
Govern who can access platform tools, how accounts are typed, and how organization-level talent data is scoped.
Who should use it¶
- Organization administrators
- IT provisioning accounts
- Talent CRM customers linking teams
Benefits¶
- Role hints via
user_type - Subscription stored on user record
- Profile fields for company context
- Account FK for talent API scoping
Note: Native multi-user co-host or org-wide event permissions are not implemented —
Event.hostis a single user FK.
Navigation path¶
| Action | Path |
|---|---|
| User profile | /users/profile/ |
| Edit profile | /users/profile/edit/ |
| Django admin users | /admin/users/customuser/ |
| Talent accounts | /admin/talent_management/account/ |
| Sign up | /accounts/signup/ |
Prerequisites¶
- Admin access for provisioning other users
- Presenter Pro+ for talent account linking
Step-by-step — Provision organizer¶
- User signs up at
/accounts/signup/. - Admin sets
user_type=organizerif needed (or user self-selects). - Assign subscription plan in admin or user completes
/pricing/select/. - User creates events as
host.
Step-by-step — Link talent organization¶
- Create
talent_management.Accountin admin. - Set
CustomUser.accountFK for team members. - Users access
/talent/and API scoped to account UUID.
Field descriptions¶
| Field | Description |
|---|---|
user_type |
organizer, participant, exhibitor, vendor, venue_manager |
subscription_plan |
free, basic, plus, pro |
subscription_billing_cycle |
monthly, annual, per_event |
account |
Talent CRM organization UUID |
is_staff |
Platform staff tool bypass |
is_superuser |
Full Django admin |
Business rules¶
| Rule | Detail |
|---|---|
| Single host | One Event.host per event |
| Tool access | user_has_tool_access() in subscription_plans |
| Staff bypass | is_staff unlocks all tools |
| Enterprise exhibitors | Contact sales; not self-serve plan enum |
Validation rules¶
- Unique username/email
- Valid plan enum on save
User permissions¶
| Role | Manage users | Assign plan |
|---|---|---|
| User | Self profile | Self via Stripe |
| Staff | Admin | Admin |
| Superuser | Full | Full |
Workflow¶
flowchart LR
Signup[User signup] --> Type[user_type]
Type --> Plan[subscription_plan]
Plan --> Tools[Tools hub access]
Account[account FK] --> Talent[Talent CRM]
Examples¶
Agency: Shared login (interim) for single host user — co-host not native.
Enterprise talent team: 3 users linked to one Account UUID.
Best practices¶
- Separate test attendee accounts from organizer accounts
- Use staff flag only for Nigall employees
- Document shared-login risk until org roles ship
Tips¶
users/tools_access.pycentralizes hub card logic- Plan upgrade prorates via
calculate_subscription_balance
Common mistakes¶
| Mistake | Result | Fix |
|---|---|---|
| Expect co-organizer | Denied edit | Use host account |
| Staff for events | Over-privileged | Use organizer account |
FAQs¶
Team access to one event?
Share host credentials or wait for org roles feature.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| Tools locked | Plan | Upgrade |
| No talent hub | No account FK | Admin link |
Related features¶
Screenshot placeholders¶
[SCREENSHOT: Profile edit user type][SCREENSHOT: Admin user change form]
Administrator notes¶
- Bulk plan changes via admin actions
- Audit
is_staffassignments quarterly
Developer/API notes¶
Model: users.models.CustomUser
Helper: users.subscription_plans.user_has_paid_tools_subscription
See also: Account Setup