Tab permissions
NyayX has two layers of permissions:
- Tab permissions (this page) - which sidebar tabs a member can see and whether they can edit them.
- Action permissions - fine-grained operations within a tab (e.g. delete a case, change another member’s role). Managed inline from Members → click a member → Permissions panel. These are grouped as Cases, Documents, Notes, Members, Workspace, Hearings and Tasks, with individual toggles like Delete cases, Assign cases, Transfer cases, View all cases (not just assigned), Change member roles and Edit member permissions.
This page covers the tab layer.
How it works
Every workspace ships with default tab permissions for each non-owner role (Admin, Senior Lawyer, Team Leader, Junior). These defaults are a template - when you invite someone, the template’s values are copied to their membership and become their starting point. Editing the template later does not change existing members; their permissions stay where they are unless you also edit them individually.
Owner is always full-access on every tab and cannot be restricted.
A tab can be set to one of three levels:
| Level | What the member sees |
|---|---|
| Hidden | Tab does not appear in their sidebar. The API also rejects requests to that tab’s endpoints. |
| View | Tab is visible. They can read everything. Any create/update/delete action returns 403. |
| Edit (also shown as “Full access”) | Tab is fully usable. |
There are 19 tabs/features covered by this system: Dashboard, Cases, Hearings, Cause Lists, Applications, Notices, Documents, Diary, Clients, Calendar, Deadlines, Court Fees, Tasks, Finances, Invoices, GST-TDS, Analytics, Billing and Settings.
The four roles and their defaults
| Role | Case work (Cases, Hearings, Documents, etc.) | Finances / Invoices / GST-TDS / Analytics | Billing | Settings |
|---|---|---|---|---|
| Admin | Full edit | Full edit | Hidden | View |
| Senior Lawyer | Full edit | View only | Hidden | Hidden |
| Team Leader | Full edit | View only | Hidden | Hidden |
| Junior | View only | Hidden | Hidden | Hidden |
Editing role templates
This affects future invites only, and any existing member who hasn’t been given a per-member override on that tab.
Settings → Permission Templates tab (visible to the owner only).
Tabs at the top: Admin, Senior Lawyer, Team Leader, Junior. Each shows all 19 features with a select box for each.
Set every feature to Hidden, View only, or Full access.
Click Save {Role} template. New invitees of that role will inherit these defaults from now on.
Editing one member’s permissions
This overrides the role template for that single person, via the Tab access drawer on their row in Members.
Settings → Members.
A side drawer opens showing every feature with the member’s current effective permission (Hidden / View / Edit).
Use one of the preset buttons at the top to load a common bundle in one click:
- View only - read-only across every tab. Useful for accountants or auditors.
- Case handler - full access to cases/hearings/tasks/documents. No money tabs, no settings.
- Junior lawyer - daily case work with no money/billing visibility. Same as the default Junior role.
- Senior lawyer - full case work plus read-only finances/invoices. Cannot edit billing or settings.
- Office admin - manages money, invoices, GST/TDS. Read-only on case work. No billing portal.
- Finance only - sees only the money tabs (Finances, Invoices, Court Fees, GST-TDS). Nothing else.
- No access - every tab hidden. A starting point to build up from.
Override any cell after applying the preset. A small dot next to a feature means it’s overridden - i.e. it differs from the role template.
Click Save permissions. The member’s sidebar updates the next time they reload.
Click the reset icon next to an overridden feature and save to reset that single tab back to the role template’s value.
Practical examples
Hide Finances and Billing from every Junior: Settings → Permission Templates → Junior tab → confirm Finances is set to Hidden. Click Save Junior template. Future Junior invitees won’t see those tabs.
Give one specific Junior read-only access to invoices: Settings → Members → click Tab access on that member’s row → set Invoices to View → Save. Their sidebar gets the tab on next reload; clicking Create invoice returns 403.
Set up a part-time accountant who only handles money: Apply the Billing & Accounts Invite Template when you send the invite (see Workspace & members), or invite them normally and then open Tab access on their row and apply the Finance only quick preset before saving.
Why backend enforcement matters
The sidebar hiding is convenience - the source of truth is the API. Even
if a member typed /finances directly into their browser, the backend
requireFeature middleware on every finance endpoint returns 403. So
changing a tab to Hidden genuinely takes the data away, it doesn’t just
hide a link.