Authorization & Permissions
The Tuturuuu platform implements a sophisticated role-based access control (RBAC) system with granular workspace-scoped permissions.Permission Architecture
Permission System
Available Permissions
The platform defines 30+ workspace permissions organized into groups:Infrastructure
manage_infrastructure_settings
- Manage infrastructure-level settings
Workspace
manage_workspace_settings
- Manage workspace configurationmanage_workspace_security
- Manage security settings
Users
manage_users
- Create, update, delete usersmanage_user_groups
- Manage user groups and tagsmanage_user_roles
- Assign and modify user rolesview_disabled_users
- View disabled user accountsdisable_user
- Disable/enable user accounts
Finance
manage_finance
- Manage financial resourcesai_lab_assistant
- Access AI lab features
Calendar
manage_calendar
- Manage calendar eventsmanage_external_users
- Manage external/guest users
Content
manage_documents
- Manage document resources
Inventory
manage_inventory
- Manage inventory resources
Permission Groups
Defined in@tuturuuu/utils/permissions
:
Database Schema
workspace_role_permissions
workspace_members
Checking Permissions
Server-Side Permission Check
Usage in Server Actions
Usage in API Routes
Check Multiple Permissions
Permission Utilities
Get User Permissions
Get User Role
Assigning Permissions
Create Role with Permissions
Assign Role to User
Client-Side Permission Checks
usePermissions Hook
Usage
Conditional Rendering
Common Permission Patterns
Admin Check
Owner Check
Member Check
Permission Middleware
Create reusable permission middleware for API routes:Best Practices
✅ DO
-
Always check permissions server-side
-
Use granular permissions
-
Check permissions before operations
-
Return appropriate HTTP status codes
-
Cache permission checks when appropriate
❌ DON’T
-
Don’t rely only on client-side permission checks
-
Don’t expose permission logic in URLs
-
Don’t hard-code permission checks
-
Don’t skip permission checks for “trusted” operations
Related Documentation
- Authentication - User authentication
- RLS Policies - Database-level security
- Supabase Client - Client usage patterns