Permissions Management
Define and manage system permissions
Overview
Permissions define specific actions that can be performed on resources within the system. This guide covers how to create and manage permissions that will be assigned to roles.
What is a Permission?
A permission grants the ability to perform a specific action on a specific resource. Permissions follow the format: action:resource
Examples:
read:students- Can view student datawrite:courses- Can create/edit coursesdelete:classes- Can remove classesmanage:settings- Full control over settings
Permission Format
Action (What can be done)
Common actions:
- read - View/retrieve data
- write - Create and update data
- delete - Remove data
- manage - Full control (all CRUD operations)
- export - Download/export data
- import - Upload/import data
Resource (What it applies to)
Common resources:
- students - Student records
- courses - Course data
- classes - Class management
- campuses - Campus information
- reports - Reporting features
- settings - System configuration
- users - User management
- roles - Role management
Viewing Permissions
The Permissions page displays:
- Permission name (action:resource format)
- Resource and action separately
- Description
- Number of roles with this permission
- Actions (View, Edit, Delete)
Adding a New Permission
Step 1: Open Create Dialog
- Navigate to Backend > Permissions
- Click "Create Permission"
Step 2: Define the Permission
Resource* (Required):
- The system resource this permission applies to
- Examples: "students", "courses", "classes"
- Use lowercase, plural form
- One or two words max
Action* (Required):
- What operation is allowed
- Examples: "read", "write", "delete", "manage"
- Use standard CRUD terminology
- Single word, lowercase
Permission Name* (Required):
- Auto-format as
action:resource - Examples: "read:students", "write:courses"
- Must be unique across the system
Description (Optional but Recommended):
- Explain what this permission allows
- Be specific about the scope
- Mention any limitations
The Permission Name field should follow the action:resource format exactly. This ensures consistency across the system.
Step 3: Save the Permission
Click "Create Permission" to save.
After Creating
Assign the permission to appropriate roles (see Role-Permissions).
Editing a Permission
- Find permission in the table
- Click Edit button
- Update information
- Click "Update Permission"
Changing a permission affects all roles that have it assigned. Communicate changes to administrators.
Viewing Permission Details
Click View to see:
- Complete permission information
- All roles with this permission assigned
- Number of users affected
- Creation and update history
Deleting a Permission
- Click Delete button
- Confirm deletion
Deletion Restrictions:
- Cannot delete if assigned to any roles
- Remove from all roles first
- Consider if truly no longer needed
Permission Categories
Data Access Permissions
Read Permissions:
read:students- View student informationread:courses- View course recordsread:classes- View class detailsread:reports- View reports
Write Permissions:
write:students- Create/edit studentswrite:courses- Create/edit courseswrite:classes- Create/edit classeswrite:attendance- Record attendance
Delete Permissions:
delete:students- Remove student recordsdelete:courses- Remove coursesdelete:classes- Remove classes
Management Permissions
Settings Management:
manage:campuses- Full campus managementmanage:courses- Full course managementmanage:intakes- Intake management
User Management:
read:users- View user informationwrite:users- Create/edit usersmanage:roles- Role managementmanage:permissions- Permission management
Reporting Permissions
Reports:
read:reports- View reportsexport:reports- Download report datamanage:reports- Create custom reports
Best Practices
Permission Design
-
Follow Naming Convention:
- Always use
action:resourceformat - Lowercase only
- No spaces or special characters
- Always use
-
Be Specific:
- Create granular permissions
- Separate read from write
- Don't create overly broad permissions
-
Use Standard Actions:
- Stick to common CRUD terms
- Avoid custom action names unless necessary
- Maintain consistency
Permission Management
-
Start Minimal:
- Create only needed permissions
- Add more as requirements emerge
- Avoid permission bloat
-
Group Logically:
- Organize by resource/feature area
- Makes assignment to roles easier
- Easier to audit
-
Document Clearly:
- Write detailed descriptions
- Explain edge cases or limitations
- Update descriptions when behavior changes
Security
-
Protect Sensitive Permissions:
- Limit delete permissions
- Restrict settings/configuration management
- Control user and role management
-
Separate Concerns:
- Read separate from write
- Create separate from delete
- Allows principle of least privilege
-
Review Regularly:
- Quarterly audit of permissions
- Remove unused permissions
- Verify descriptions are current
Common Permission Sets
Volunteer Role
read:studentswrite:attendanceread:classes
Coordinator Role
read:studentswrite:studentswrite:attendanceread:reportswrite:schedules
Team Lead Role
manage:studentsmanage:attendanceread:reportsexport:reportswrite:courses
Administrator Role
manage:studentsmanage:coursesmanage:classesmanage:reportsmanage:settings
Common Questions
Q: How many permissions should I create?
A: Start with basic CRUD operations for main resources. Most systems have 20-40 permissions. Add more as needed for granular control.
Q: Can I have custom action names?
A: Yes, but stick to standard terms when possible. Custom actions should be clear and documented.
Q: What's the difference between write and manage?
A: "write" typically means create/update. "manage" includes write plus delete and full control.
Q: Can permissions have multiple actions or resources?
A: No, each permission is one action on one resource. Combine multiple permissions in a role for broader access.
Q: How do I give someone full access to everything?
A: Create a "superadmin" role and assign all permissions to it. Better yet, use the organization-level "superadmin" role.
Related Topics
- RBAC Overview - Understand the access control system
- Roles Management - Create and manage roles
- Role-Permissions - Assign permissions to roles
- User Access - See how permissions affect user access