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 implementedEvent.host is a single user FK.


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

  1. User signs up at /accounts/signup/.
  2. Admin sets user_type=organizer if needed (or user self-selects).
  3. Assign subscription plan in admin or user completes /pricing/select/.
  4. User creates events as host.

  1. Create talent_management.Account in admin.
  2. Set CustomUser.account FK for team members.
  3. 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.py centralizes 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

Screenshot placeholders

  • [SCREENSHOT: Profile edit user type]
  • [SCREENSHOT: Admin user change form]

Administrator notes

  • Bulk plan changes via admin actions
  • Audit is_staff assignments quarterly

Developer/API notes

Model: users.models.CustomUser
Helper: users.subscription_plans.user_has_paid_tools_subscription


See also: Account Setup