Skip to main content

Core Concepts

1. Hierarchical Permission Model (N-Level)

The system uses a hierarchical N-level model for default permissions based on the manager-employee reporting structure:

LevelDescriptionVisibility
N-1Direct reportsDefault scope for most permissions
N-2Direct reports + their direct reportsExtended visibility
N-3Three levels of hierarchyFurther extended

Example Hierarchy

CEO (N)
├── VP of Sales (N-1 of CEO)
│ ├── Sales Manager A (N-2 of CEO, N-1 of VP)
│ │ ├── Sales Rep 1 (N-3 of CEO, N-2 of VP, N-1 of Manager)
│ │ └── Sales Rep 2
│ └── Sales Manager B
└── VP of Engineering (N-1 of CEO)
└── Tech Lead (N-2 of CEO)
├── Developer 1 (N-3 of CEO)
└── Developer 2

How N-1 Works in Practice

When a manager has a permission with N-1 scope (the default):

  • They can only see/act on their direct reports
  • They cannot see other teams or departments
  • This enforces need-to-know access control
Manager: Sarah (Engineering Manager)
├── Direct Reports: 5 engineers
├── Can see: Only her 5 engineers
└── Cannot see: Marketing team, Sales team, other engineering teams

2. Permission Extension via Scopes

Permission Scopes allow extending visibility beyond the default N-1 scope when business needs require it.

Without Scope (Default N-1)

┌─────────────────────────────────────┐
│ HR Business Partner sees: │
│ ├── Direct Report 1 │
│ ├── Direct Report 2 │
│ └── Direct Report 3 │
│ │
│ Cannot see: Engineering (50 people) │
│ But HR BP supports Engineering! │
└─────────────────────────────────────┘

With "Engineering Department" Scope

┌─────────────────────────────────────┐
│ HR Business Partner sees: │
│ ├── Direct Report 1 │
│ ├── Direct Report 2 │
│ ├── Direct Report 3 │
│ └── All 50 Engineering employees │
│ │
│ Extended visibility granted via │
│ Permission Scope │
└─────────────────────────────────────┘

Scope Assignment

Permission: "Read user information"
├── No scope assigned → See only N-1 (direct reports)
├── Scope: "Engineering Dept" → See all engineering team members
└── Scope: "Paris Office" → See all Paris employees

3. Dynamic Rules for Automatic Membership

User Groups can use dynamic rules to automatically add or remove members based on user profile attributes.

Available Profile Fields for Rules

FieldTypeExample Values
GenderSelectionMale, Female, Other
NameTextAny text pattern
Job TitleTextManager, VP, Director, Engineer
DepartmentTextEngineering, HR, Finance
StatusSelectionActive, Inactive
LocationText/SelectionParis, France; New York, USA
ManagerReferenceManager name or ID

Supported Operators

OperatorDescriptionExample
=Equals (exact match)Status = Active
!=Not equalsDepartment != Executive
LIKEContains (partial match)Job LIKE Manager
>, >=Greater thanStart Date > 2024-01-01
<, <=Less thanStart Date < 2023-01-01
INValue in listLocation IN (Paris, London)
NOT INValue not in listDepartment NOT IN (Executive)

Rule Structure

Rules are organized in sections with logical operators:

Section 1 (AND between conditions):
├── Location = "Paris, France"
└── Status = "Active"

Section 2 (OR between conditions):
├── Job LIKE "Manager"
├── Job LIKE "VP"
└── Job LIKE "Director"

Combined: (Section 1) OR (Section 2)
Result: Paris active employees OR any manager/VP/director

Automatic Membership Updates

When a user's profile changes, dynamic group membership updates automatically:

EventTriggerResult
EntryUser attributes START matching rulesUser ADDED to group
ExitUser attributes STOP matching rulesUser REMOVED from group

Example:

Group: "Paris Office - Active Employees"
Rule: Location = "Paris, France" AND Status = "Active"

Employee transfers from Paris to London:
1. Profile updated: Location = "London, UK"
2. Dynamic rule no longer matches
3. Employee automatically removed from Paris group
4. Roles associated with Paris group are revoked
5. (If dynamic "London Office" group exists, employee is added there)

4. Membership Types

Users can be added to groups and scopes via different methods:

TypeIconDescriptionAuto-UpdateBest For
ManualHandAdmin individually selects usersNoSpecific individuals, project teams
DynamicSync arrowsRule-based automatic assignmentYesDepartment/location-based groups
GroupUsersInherited from another groupYesNested grouping, group composition

Viewing Member Type

In the Population section of any group or scope detail view, each member shows their Creation Type indicator:

Population (25 members)
├── Sophie Martin (Manual) - Added Jan 15, 2024
├── Thomas Bernard (Dynamic) - Added Feb 3, 2024
├── Marie Dubois (Group) - Added Dec 1, 2023
└── 22 more...

Filter by: [All Types ▼] [Manual] [Dynamic] [Group]

5. Localization Support

All entity names support multiple languages for international organizations:

// User Group name example
name: {
en: "Development Team", // English (required)
fr: "Équipe de Développement" // French (optional)
}

// Role name example
name: {
en: "HR Manager",
fr: "Responsable RH"
}

Supported Languages

CodeLanguage
enEnglish (default, always required)
frFrench
deGerman
esSpanish
itItalian
ptPortuguese
nlDutch
plPolish

Language Priority Display

The system displays names in this order:

  1. User's preferred language (if translation available)
  2. English (default fallback)
  3. First available translation

6. Permission Categories

Permissions are organized into 20+ categories for easier management:

CategoryPermission CountExamples
Access Control6Create role, Delete roles, Add role to user
Campaign4Create campaign, Read campaign, Update campaign
Company2Read company config, Update company config
Field8Create custom field, Read standard field
Group17Create user group, Update visibility group
Job8Create job listings, View job offers
Objective5Create objective, Change objective status
Review2Read reviews
Skill4Create skill, Update skill
Training4Create training, Read trainings
User10Create user, Read user information
User Skill4Create user skill, Read user skills

Permission States

Each permission can be in one of two states:

StateVisualEffect
ActivatedToggle ON (blue)Permission is granted
DeactivatedToggle OFF (gray)Permission is denied

Category-Level Activation

  • Toggling a category activates/deactivates ALL permissions in that category
  • Individual permissions can be toggled independently within a category
  • Category header shows "Activated" if ANY permission within it is active

7. Bulk Operations

The system supports bulk operations for efficiency across all modules:

EntityAvailable Bulk Actions
User GroupsExport, Delete selected
RolesExport, Delete selected
Permission ScopesExport, Delete selected
Permissions (in Role)Activate, Deactivate, Manage Scopes
Members (in any module)Remove selected

Bulk Scope Assignment Warning

When managing permission scopes in bulk:

  1. Select multiple permissions using checkboxes
  2. Click "Manage Permission Scopes" in bulk action bar
  3. Select groups to apply
  4. Warning: Assigned scopes will overwrite existing scopes for all selected permissions

8. Search, Filter, and Sort

All list views support consistent data management features:

  • Real-time filtering as you type
  • Searches across name and relevant fields
  • Case-insensitive matching

Filter Options

FilterDescription
StatusFilter by active/inactive entities
Creation TypeFilter members by Manual/Dynamic/Group
More FiltersAdditional advanced filtering options

Sort Options

  • Click any column header to sort
  • Click again to reverse sort direction
  • Third click clears sorting
  • Sort icon indicates current direction (▲/▼)

Pagination

  • Default: 8 items per page
  • Navigate between pages
  • Total count displayed