Skip to main content

User Roles & Permissions

AssocHub uses role-based access control (RBAC) with four roles.

Role Hierarchy

super_admin > tenant_admin > staff > member

Role Definitions

Member

The default role for all registered users.

Can DoCannot Do
View own profileList all members
Update own profileCreate/manage events
Register for eventsSend campaigns
Submit documentsView financial stats
Vote in electionsManage users
View announcementsAccess analytics
Chat with AIManage integrations

Staff

Elevated access for operational users.

Can DoCannot Do
Everything member can doDelete members
List all membersManage user roles
Create/manage eventsCreate budgets
Create/send campaignsDelete elections
Upload documentsAccess AI analytics
View statisticsManage integrations
Add staff notes

Tenant Admin

Full access within a single tenant.

Can DoCannot Do
Everything staff can doAccess other tenants
Manage users & rolesSystem-wide configuration
Delete members
Create budgets
Manage elections
Configure integrations
Full analytics access

Super Admin

Full system access across all tenants.

Can Do
Everything above
Manage all tenants
System configuration
Database operations
Cross-tenant analytics

API Access by Role

EndpointMemberStaffTenant AdminSuper Admin
GET /members/me
GET /members/
GET /members/stats
POST /members/
DELETE /members/{id}
GET /events/
POST /events/
GET /finances/*/stats
POST /ai/chat
GET /analytics/overview
POST /integrations/

Changing User Roles

Only tenant admins and super admins can change roles:

curl -X PUT http://localhost:8002/api/v1/members/{member_id}/role \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"role": "staff"}'

Default Role on Registration

New users are assigned the member role by default. Admins must promote users manually.