Skip to main content
Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See coverage and review notes.

Tenant users

Host: admin.<ROOT_DOMAIN> · Route: /[tenant]/settings/admins

Purpose and access

Manage user accounts that have administrative membership in this Mahallu.You need an account session and a resolved membership context in the selected Mahallu (including the API’s current platform elevation path). The API independently checks the requested operation’s permissions and feature availability.

Screen layout

The page contains the administrator list, role selectors, removal controls, and an Add a user form asking for email and role.

Fields and displayed information

Displayed table columns: Name, Email, Role.

Fields and filters: Admins table

Actions

Linked navigation

Interaction sequence

Enter an existing account email and role → Add → refresh. Change a listed user’s role to update membership; Remove requires confirmation before removing access.

States and rules

This manages tenant memberships, not citizen member records. Role-rank and permission checks are enforced by the API. A denied administrators view shows a permission panel.The rendered action controls bind loading indicators to pending state. Failed API saves keep their documented error/notification path; a loading indicator alone does not establish persistence.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/admin/[tenant]/settings/admins/page.tsx
  • apps/web/src/features/tenants/admins-table.tsx
Data and access helpers: apps/web/src/lib/session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/tenants.ts, apps/web/src/lib/admins.ts, apps/web/src/lib/roles.ts, apps/web/src/lib/api-client.ts

Tenant roles

Host: admin.<ROOT_DOMAIN> · Route: /[tenant]/settings/admins/roles

Purpose and access

Define tenant-specific roles and their permission sets.You need an account session and a resolved membership context in the selected Mahallu (including the API’s current platform elevation path). The API independently checks the requested operation’s permissions and feature availability.

Screen layout

The role table provides Create role, Edit, Duplicate, Deactivate, and Reactivate. The dialog exposes role identity and permission selection.

Fields and displayed information

Displayed table columns: Role, Type, Permissions, Members, Status, Actions.

Fields and filters: Role form dialog

Actions

Linked navigation

Interaction sequence

Create or edit a role → choose its permissions → save and refresh. Duplicate creates another role; Deactivate/Reactivate changes availability through distinct API operations.

States and rules

Built-in/system role restrictions and escalation checks belong to the backend. Deactivating a role is distinct from deleting a user or removing a member record.The rendered action controls bind loading indicators to pending state. Failed API saves keep their documented error/notification path; a loading indicator alone does not establish persistence.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/admin/[tenant]/settings/admins/roles/page.tsx
  • apps/web/src/features/tenants/roles-table.tsx
  • apps/web/src/features/tenants/role-form-dialog.tsx
Data and access helpers: apps/web/src/lib/session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/tenants.ts, apps/web/src/lib/roles.ts, apps/web/src/lib/api-client.ts

API behavior references

  • apps/api/src/tenants/admins.controller.ts
  • apps/api/src/tenants/roles.controller.ts
  • apps/api/src/tenants/tenants.controller.ts
  • apps/api/src/structure/structure.controller.ts
  • apps/api/src/notifications/notifications.controller.ts
  • apps/api/src/finance/finance.controller.ts