Permissions & Roles¶
Bifolk uses a role-based access control (RBAC) system to manage what each user can do within an organization. Every user has a specific role in each organization they belong to, and that role determines their permissions.
Target Audience: Organization owners and administrators
Role Hierarchy¶
Bifolk uses four roles, ordered from most to least privileged:
Owner > Admin > Member > Viewer
Each role inherits all capabilities of the roles below it. For example, an Admin can do everything a Member can do, plus additional management tasks.
Role Capabilities¶
| Capability | Owner | Admin | Member | Viewer |
|---|---|---|---|---|
| View all resources | ✅ | ✅ | ✅ | ✅ |
| Create resources (hives, inspections, etc.) | ✅ | ✅ | ✅ | ❌ |
| Edit own resources | ✅ | ✅ | ✅ | ❌ |
| Edit all resources | ✅ | ✅ | ❌ | ❌ |
| Delete resources | ✅ | ✅ | ❌ | ❌ |
| Manage members (invite, remove, change roles) | ✅ | ✅ | ❌ | ❌ |
| View and manage invitations | ✅ | ✅ | ❌ | ❌ |
| Change organization settings | ✅ | ✅ | ❌ | ❌ |
| Export data | ✅ | ✅ | ❌ | ❌ |
| Import data | ✅ | ✅ | ❌ | ❌ |
| Transfer hives between organizations | ✅ | ✅ | ❌ | ❌ |
| Edit organization details (name, type, logo) | ✅ | ❌ | ❌ | ❌ |
| Assign the Owner role | ✅ | ❌ | ❌ | ❌ |
| Remove an Owner | ✅ | ❌ | ❌ | ❌ |
| Delete the organization | ✅ | ❌ | ❌ | ❌ |
Role Descriptions¶
Owner¶
Full control over the organization. The user who creates an organization automatically becomes its Owner.
- All capabilities of Admin, plus:
- Can edit organization details (name, type, description, logo, active status)
- Can delete the organization and all its data
- Can assign and revoke the Owner role for other members
- Can remove other Owners
- There must always be at least one Owner per organization
Admin (Administrator)¶
Management-level access for day-to-day operations:
- Can create, edit, and delete all resources in the organization (hives, inspections, operations, harvests, etc.)
- Can manage members: invite new members, remove existing members, and change roles (up to Admin level)
- Can view and manage invitations
- Can change organization settings (date format, units, numbering schemes, notifications, branding)
- Can export and import data
- Can transfer hives between organizations (requires Admin or Owner in both organizations)
- Cannot edit organization details (name, type, logo)
- Cannot assign the Owner role to others
- Cannot remove an Owner
- Cannot delete the organization
Member¶
Standard contributor access for active beekeepers:
- Can view all resources in the organization
- Can create new resources (hives, inspections, operations, harvests, breeding records, etc.)
- Can edit resources they created themselves
- Cannot edit resources created by other members
- Cannot delete any resources
- Cannot manage members, invitations, or organization settings
Viewer¶
Read-only access for observers:
- Can view all resources in the organization
- Cannot create, edit, or delete any resources
- Cannot manage members, invitations, or settings
- Useful for family members, mentors, or external observers who only need to read data
Tip
The Viewer role is ideal for people who want to follow along with the organization's beekeeping activities without making changes, such as family members or club advisors.
Special Permission Cases¶
Owner Role Protection¶
Admins cannot modify, demote, or remove Owner memberships. This applies to both the member role-change page and the invitation form:
- Role change: An Admin who opens the role-change page for a member with the Owner role will be redirected with an error. The Owner option is not shown in the role dropdown for non-Owners.
- Invitations: The Owner role is not available in the invitation form for Admins. A server-side check also rejects any POST that attempts to invite a new Owner by an Admin.
Only an existing Owner can assign the Owner role to another member or remove it.
Hive Transfers¶
Transferring a hive from one organization to another requires the user to be an Admin or Owner in both the source and destination organizations. If you are not an Admin or Owner in any other organization, the transfer option is not available.
Closed Batches and Buckets¶
Closed honey charges (batches) and buckets cannot be modified by anyone, including Owners. This ensures the integrity of honey traceability records.
Inventory Items in Sales¶
Inventory items that are referenced in sales records cannot be deleted, regardless of the user's role. This prevents breaking the link between inventory and sales data.
Health Status Changes¶
Hive and queen health statuses can only be changed through inspections, not by directly editing the hive or queen. This ensures every health status change is linked to an inspection record.
Django Superuser¶
The Django superuser is a separate, system-level role that exists outside the organization-based RBAC system. Superusers have:
- Full access to the Django admin interface (
/admin/) - Access to all organizations and all data
- Ability to manage all user accounts
- Ability to configure system-wide settings (configurable choices, global MFA policy, etc.)
Warning
The Django superuser role is intended for system administrators only and is separate from the organization-level Owner role. A user can be a Django superuser without being an Owner of any organization, and vice versa.
MFA Policy¶
Organizations can set a multi-factor authentication (MFA) policy for their members through the organization settings:
| Policy | Behavior |
|---|---|
| Inherit global setting | Uses the system-wide MFA configuration |
| MFA required | All members of this organization must set up MFA |
| MFA optional | Members can choose whether to enable MFA |
This setting is configured by Owners and Admins in the organization settings.
Assigning Roles¶
For step-by-step instructions on managing roles, see Organization Management:
What's Next¶
- Organization Management -- Managing organizations and members
- User Management -- Managing user accounts
- System Configuration -- System-wide settings