to select ↑↓ to navigate
Industrial Relations Documentation

Industrial Relations Documentation

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

IR Role Restrictions - Designation Limits & Branch Limits

IR Role Restrictions - Designation Limits & Branch Limits

Open IR Role Restrictions (Setup workspace) - a single, global settings record that controls exactly what every IR Manager/Officer/User can see, both in the app itself and in the notification emails they receive.

IR Role Restrictions - the Designation Limits tab, showing a per-role denylist of restricted designations

Two independent limits

Designation Limits (denylist)

A denylist of Designations, set separately for each of the three IR roles (ir_manager_restrictions, ir_officer_restrictions, ir_user_restrictions). If a case's accused employee (or contract holder, or induction record subject) holds one of the designations listed for a user's role, that user can't see the record at all - not in a list, not by direct link, not in an email. Leave a role's list empty and that role has no designation restriction.

Because a user's highest IR role determines which list applies (see Roles & Access Model), assigning someone an extra, more senior role than intended can silently widen what they see - there's no way to combine or intersect the three lists.

Branch Limits (allowlist)

The opposite shape: an allowlist. hr_per_branch and trainer_per_branch are tables of (User, Branch) pairs - a user only added for specific branches is limited to employees in those branches; a user with no rows at all is treated as having no branch restriction (not "restricted from everything"). trainer_per_branch feeds Employee Induction notifications specifically; hr_per_branch covers everything else branch-limited.

Which doctypes are covered

Not every doctype in the app carries a Designation Limit or Branch Limit - only the ones where it makes sense:

Doctype Designation Limit Branch Limit
Contract of Employment
Disciplinary Action, Incapacity Proceedings, Poor Performance
NTA Enquiry -
Written Outcome -
Warning / Suspension / Dismissal / Demotion / Pay Deduction / Pay Reduction / No Further Action Form
Appeal Against Outcome
Status Change Form, Site Transfer Form, Termination Form, External Dispute Resolution, Anonymous Report - -

The last row is deliberate, not an oversight - those five doctypes' notifications are intentionally unfiltered, since they don't represent the same kind of sensitive, designation-specific case data.

Notification recipients

The same document also holds six separate recipient tables, each a list of (User, Email) rows: Report Recipients (the weekly digests), Disciplinary/Incapacity/Poor Performance/External Dispute Recipients (case-creation alerts), and Global Trainer/Trainer per Branch (induction notifications). A row's email is always resolved from its linked User at send time rather than trusted as a static value - so if someone's account email changes later, their notifications follow automatically instead of quietly going to a stale address.

Recipients in these tables aren't automatically exempt from Designation/Branch Limits - a restricted recipient's copy of a weekly digest, or their case-creation alert, is narrowed exactly the same way a restricted user's list view would be. See Weekly Notifications & Reports for the full breakdown of which notification honours which limit.

Next: Weekly Notifications & Reports.

Last updated 19 hours ago
Was this helpful?
Thanks!