PaulRentACar Docs
Administration

Tenants & Branches

Manage tenants, business units, and branches, understand tenant isolation, and assign multi-level user access across your organization.

Tenants & Branches

The Rent a Car CRM is a multi-tenant platform. This means a single installation can serve multiple independent rental companies (tenants), each with their own business units, branches, users, vehicles, customers, and financial data — completely isolated from each other.

Tenants


Multi-Tenant Architecture

What Is a Tenant?

A tenant represents a separate rental company or legal entity. Each tenant's data is fully isolated — no tenant can ever see another tenant's data unless explicitly configured for cross-tenant reporting (which requires special permissions).

Tenant Hierarchy

Tenant (Company)
  ├── Business Unit (Region / Division)
  │     ├── Branch (Physical Location)
  │     │     ├── Users
  │     │     ├── Vehicles
  │     │     ├── Customers
  │     │     ├── Contracts
  │     │     └── ...
  │     └── Branch
  │           └── ...
  └── Business Unit
        └── Branch
              └── ...

Tenant Isolation Rule

Tenant isolation is enforced at the database level. Every query automatically filters by the authenticated user's tenant_id. There is no way to accidentally access another tenant's data. This is a hard security boundary, not a soft filter.

Isolation LevelDescription
TenantComplete data separation between companies
Business UnitData filtered within a tenant by division/region
BranchData filtered within a business unit by physical location

Tenant Management

Tenant List

The tenant list shows all registered tenants in the system.

ColumnDescription
Tenant NameCompany name
CodeShort code (e.g., "RAC001")
StatusActive, Suspended, Inactive
Business UnitsCount of business units
BranchesCount of branches
UsersCount of active users
CreatedRegistration date

Creating a New Tenant

Navigate to Admin → Tenants → New Tenant — The tenant creation form opens.

Enter company details — Company name, legal name, code, registration number, tax ID.

Configure settings — Default currency, timezone, language, fiscal year start.

Set password policy — Minimum length, complexity requirements, session timeout.

Configure approval thresholds — Discount limits, refund limits, escalation rules.

Save — The tenant is created. A default business unit and branch are automatically created.

Tenant Configuration Fields

FieldDescriptionExample
Tenant NameDisplay name"Premium Rent a Car"
Legal NameRegistered legal entity name"Premium Rent a Car LLC"
CodeUnique short code"PRAC"
Registration NumberTrade license number"CN-12345"
Tax ID / TRNTax registration number"100123456789001"
Default CurrencyTransaction currencyAED
TimezoneDefault timezoneAsia/Dubai
LanguageDefault languageEnglish
Fiscal Year StartMonth and dayJanuary 1
LogoCompany logo for documentsUpload file
StatusActive, Suspended, InactiveActive

Business Units

A business unit represents a major operational division within a tenant — typically a region, city, or business line.

Business Unit Fields

FieldDescriptionExample
NameBusiness unit name"Dubai Operations"
CodeShort code"DXB"
ManagerAssigned managerUser reference
StatusActive, InactiveActive

When to Use Business Units

ScenarioUse Business Unit?
Single-city operation with 5 branchesYes — one BU for the city
Multi-city operation (Dubai + Abu Dhabi)Yes — one BU per city
Separate passenger and commercial fleetsYes — one BU per fleet type
Single branch officeYes (required by data model)

Branch Management

A branch represents a physical location — an office, showroom, or service center.

Branches

Branch List

ColumnDescription
Branch NameLocation name
CodeShort code (e.g., "DXB-MAR")
Business UnitParent business unit
AddressFull address
ManagerBranch manager
PhoneBranch phone number
StatusActive, Inactive

Creating a New Branch

Navigate to Admin → Branches → New Branch — The branch creation form opens.

Select business unit — Choose the parent business unit.

Enter branch details — Name, code, address, phone, email.

Assign branch manager — Select an existing user with Branch Manager role.

Configure branch settings — Operating hours, vehicle pickup/return location, document templates.

Save — The branch is created and available for user and vehicle assignment.


User Access Assignment

Users are granted access at three levels: tenant, business unit, and branch. All three levels work together to define what data a user can see and operate on.

Access Assignment Matrix

Access LevelGranted ViaWhat It Controls
Tenant AccessAdmin → Users → Tenant AccessWhich company's data the user can access
Business Unit AccessAdmin → Users → BU AccessWhich divisions within the tenant
Branch AccessAdmin → Users → Branch AccessWhich physical locations

How Access Levels Combine

Tenant AccessBU AccessBranch AccessResult
Tenant AAll BUsAll BranchesFull access to Tenant A
Tenant ABU: DubaiAll Branches in Dubai BUAccess to Dubai branches only
Tenant ABU: DubaiBranch: DXB-MarinaAccess to Marina branch only
Tenant AAll BUsBranch: DXB-MarinaAccess to Marina across all BUs
Tenant A + BAll BUsAll BranchesAccess to both tenants

A user must have tenant access before business unit or branch access is meaningful. Granting branch access without tenant access has no effect.

Step-by-Step: Assign User Access

Open the user — Navigate to Admin → Users and open the user record.

Open the Tenant Access tab — Click "Grant Access" and select the tenant.

Open the Business Unit Access tab — Click "Grant Access" and select the business units.

Open the Branch Access tab — Click "Grant Access" and select the branches.

Verify — The user's effective access is shown in the summary panel.


Required Permissions

ActionPermission
View tenant listadmin:manage_tenants
Create tenantadmin:manage_tenants
Edit tenant settingsadmin:manage_tenants
View branchesadmin:manage_branches
Create branchadmin:manage_branches
Edit branchadmin:manage_branches
Assign user tenant accessadmin:manage_users
Assign user branch accessadmin:manage_users

On this page