RahalCorporate
Roles & PermissionsConcepts

Permissions

Understanding the permission system and how permissions work

Permissions

Permissions are the building blocks of access control in Rahal. They define exactly what actions a user can perform within the platform.

What is a Permission?

A permission grants access to a specific action or resource. When a user attempts an action, the system checks whether they have the required permission.

Permission Naming Convention

Permissions follow a consistent naming pattern combining an action with a resource:

ActionMeaningExamples
ReadView dataRead Users, Read Policies
WriteCreate/edit dataWrite Users, Write Budgets
DeleteRemove dataDelete Users, Delete Policies
ProcessWorkflow actionsProcess Booking Requests
AccessFeature accessAccess Company Dashboard

Examples

PermissionWhat It Allows
Read UsersView user list and details
Write UsersCreate and edit users
Delete UsersRemove users
Process Booking RequestsApprove or reject requests
Access Company DashboardLog into admin dashboard

Permission Types

Read Permissions

Allow viewing data without modification:

PermissionDescription
Read UsersView user list and profiles
Read TravelersView traveler information
Read PoliciesView policy configurations
Read BudgetsView budget settings and consumption
Read Booking RequestsView all booking requests
Read DelegationsView delegation relationships
Read Company RolesView role definitions
Read CompaniesView company information

Write Permissions

Allow creating and modifying data:

PermissionDescription
Write UsersCreate and update user accounts
Write TravelersCreate and edit traveler profiles
Write PoliciesCreate and modify policies
Write BudgetsCreate and configure budgets
Write DelegationsCreate and modify delegations
Write Company RolesCreate and edit roles
Write CompaniesModify company settings
Write User PassportsUpload and edit passport documents

Delete Permissions

Allow removing data:

PermissionDescription
Delete UsersRemove user accounts
Delete PoliciesRemove policies
Delete BudgetsRemove budgets
Delete DelegationsRemove delegations
Delete Company RolesRemove custom roles
Delete CompaniesRemove companies

Process Permissions

Allow workflow-related actions:

PermissionDescription
Process Booking RequestsApprove or reject booking requests
Update Booking RequestsModify booking request details

Access Permissions

Control feature access:

PermissionDescription
Access Company DashboardAccess the admin dashboard

Permission Scoping

User-Specific vs All-Access

Some permissions come in two variants:

All-AccessUser-SpecificDifference
Read Booking RequestsRead User Booking RequestsView all vs own only
Write User Booking RequestsSubmit own booking requests
Read User PassportsView own passport documents
Write User PassportsManage own passports

User-specific permissions grant access only to the user's own data, while all-access permissions grant access to all users' data.

Base User Permissions

Every company user automatically has these base permissions regardless of their assigned role:

PermissionWhat It Allows
Read Hotel OffersSearch hotels
Book Hotel OffersBook hotels
Read Flight OffersSearch flights
Book Flight OffersBook flights
Read TravelersView own travelers
Write TravelersCreate travelers
Read User PassportsView own passports
Write User PassportsManage own passports
Read User Booking RequestsView own requests
Write User Booking RequestsSubmit requests
Read User PoliciesView assigned policies

These base permissions enable every user to:

  • Search and book travel (subject to policies)
  • Manage their travelers and passports
  • Submit and track booking requests
  • View their policy constraints

Permission Inheritance

When a user attempts an action:

  1. System retrieves base permissions
  2. System retrieves permissions from assigned company role
  3. Permissions are merged (union of both sets)
  4. System checks if required permission exists in merged set
  5. Action is allowed or denied

Permission Groups

Permissions are organized into logical groups for easier management:

GroupPermissions
Dashboard AccessAccess Company Dashboard
Company ManagementRead, Write, Delete Companies
Users ManagementRead, Write, Delete Users
Roles ManagementRead, Write, Delete Company Roles
TravelersRead, Write Travelers
PassportsRead, Write User Passports
PoliciesRead, Write, Delete Policies
BudgetsRead, Write, Delete Budgets
Booking RequestsRead, Process, Update Booking Requests + User variants
DelegationsRead, Write, Delete Delegations

Permission Check Examples

Viewing the Roles Page

Required permission: Read Company Roles

If the user has the permission, they see the roles list. Otherwise, they receive a 403 Forbidden error.

Creating a New Role

Required permissions: Read Company Roles + Write Company Roles

Both permissions are checked:

  • Read Company Roles — To view the roles page
  • Write Company Roles — To create a new role

Deleting a Role

Required permissions: Read Company Roles + Delete Company Roles

Delete permissions are sensitive. Assign them carefully to prevent accidental data loss.

Best Practices

Least Privilege Principle

Grant only the permissions necessary for the user's job function:

❌ Avoid✅ Better
Give everyone all permissions "just in case"Start minimal and add permissions as needed

Read Before Write

If a user needs to write, they typically also need to read:

CombinationResult
Read Users + Write UsersCan view and edit users ✅
Write Users onlyCan edit but can't see the user list ❌

Audit Permission Assignments

Regularly review:

  • Which roles have which permissions
  • Who is assigned to each role
  • Whether permissions still match job requirements

On this page