Roles & Permissions
Budget Bee uses role-based access control (RBAC) to manage what organization members can do. This ensures security and proper data governance.Overview
The permission system controls:- Who can view data
- Who can create or modify records
- Who can manage team members
- Who can change organization settings
- Who can delete the organization
Available Roles
Budget Bee defines four roles with different permission levels:Owner
The organization creator with full control
Admin
Management role with most permissions
Editor
Can create and modify data
Viewer
Read-only access to organization data
Permission Matrix
Transaction Permissions
| Action | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| List transactions | ✅ | ✅ | ✅ | ✅ |
| View transaction details | ✅ | ✅ | ✅ | ✅ |
| Create transactions | ✅ | ✅ | ✅ | ❌ |
| Edit transactions | ✅ | ✅ | ✅ | ❌ |
| Delete transactions | ✅ | ✅ | ✅ | ❌ |
| Bulk edit transactions | ✅ | ✅ | ✅ | ❌ |
| Import transactions | ✅ | ✅ | ✅ | ❌ |
| Export transactions | ✅ | ✅ | ✅ | ✅ |
Subscription Permissions
| Action | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| List subscriptions | ✅ | ✅ | ✅ | ✅ |
| View subscription details | ✅ | ✅ | ✅ | ✅ |
| Create subscriptions | ✅ | ✅ | ✅ | ❌ |
| Edit subscriptions | ✅ | ✅ | ✅ | ❌ |
| Delete subscriptions | ✅ | ✅ | ✅ | ❌ |
| Pause/resume subscriptions | ✅ | ✅ | ✅ | ❌ |
Account Permissions
| Action | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| View accounts | ✅ | ✅ | ✅ | ✅ |
| Create accounts | ✅ | ✅ | ✅ | ❌ |
| Edit accounts | ✅ | ✅ | ✅ | ❌ |
| Delete accounts | ✅ | ✅ | ✅ | ❌ |
Member Management
| Action | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| View members | ✅ | ✅ | ✅ | ✅ |
| Invite members | ✅ | ✅ | ❌ | ❌ |
| Remove members | ✅ | ✅ | ❌ | ❌ |
| Change member roles | ✅ | ✅ | ❌ | ❌ |
| Cancel invitations | ✅ | ✅ | ❌ | ❌ |
Organization Settings
| Action | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| View settings | ✅ | ✅ | ❌ | ❌ |
| Update organization name | ✅ | ✅ | ❌ | ❌ |
| Transfer ownership | ✅ | ❌ | ❌ | ❌ |
| Delete organization | ✅ | ❌ | ❌ | ❌ |
Permission Implementation
Permissions are defined in the core package:Database-Level Security
Permissions are enforced at the database level using PostgreSQL functions:Row-Level Security Policies
RLS policies use the access control function:Assigning Roles
When Inviting Members
Set the role when sending an invitation:Changing Member Roles
Owners and admins can change member roles:Special Cases
Organization Owner
- Only one owner per organization
- Automatically assigned to the organization creator
- Can transfer ownership to another member
- Cannot be removed without transferring ownership first
Transferring Ownership
Permission Checks
Client-Side Checks
Use helper functions to check permissions in the UI:Server-Side Checks
Permissions are always validated server-side:Best Practices
Principle of Least Privilege
Grant users the minimum permissions needed for their work.
Regular Audits
Review member roles periodically and adjust as responsibilities change.
Use Viewer Role
Assign viewer role to stakeholders who only need to review data.
Multiple Admins
Have at least 2 admins to ensure continuity if one admin is unavailable.
Common Role Assignments
Small Business
- Owner: Business owner
- Admin: CFO, Finance Manager
- Editor: Bookkeeper, Accountant
- Viewer: CEO, Department Heads
Freelancer Team
- Owner: Lead freelancer
- Admin: Business partner
- Editor: Assistant, Subcontractor
- Viewer: Client (for transparency)
Family Finances
- Owner: Primary account holder
- Admin: Spouse/Partner
- Editor: Older children managing allowances
- Viewer: Financial advisor
Troubleshooting
Permission denied error
Permission denied error
If you see permission errors:
- Verify your role in the organization
- Ensure you’re in the correct organization context
- Check if your role was recently changed
- Contact an admin if you need additional permissions
Cannot change member role
Cannot change member role
Check:
- You have owner or admin permissions
- You’re not trying to change your own role
- The member is actually part of the organization
- You’re not trying to create a second owner
Viewer can see edit buttons
Viewer can see edit buttons
Security Considerations
- Permissions are enforced at the database level, not just in the UI
- JWT tokens include role information but are validated server-side
- Row-level security policies prevent unauthorized data access
- Audit logs track who made changes (future feature)
Next Steps
Invite Members
Learn how to invite team members to your organization.
Organization Overview
Understand organization concepts and management.

