Nirmaan Logo

Roles & Permissions

Understanding role-based access control in NIP.

Overview

NIP uses Role-Based Access Control (RBAC) to determine what each user can see and do. Every user has one or more roles, and each role has a set of permissions.

This page is a reference — use it whenever another doc says "only admins can do X" and you want to confirm exactly which role is required. Roles are assigned in User Management.

Roles and permissions are stored in the database (roles, permissions, role_permissions, user_roles) and can be customised by a Super Admin. The roles below are the default seeded roles — your deployment may have additional custom roles.

Roles

Super Admin

The highest-privilege role with full access to every module.

  • Manage all users, roles, and teams
  • View and edit all project requests regardless of team
  • Access all settings
  • View audit logs
  • Assign teams to requests

Organization Admin

Manages the organization and its users.

  • Create and manage users
  • Assign roles and teams
  • View all project requests
  • Manage department and focus area settings
  • Cannot modify Super Admin accounts

Department Head

Leads a specific department team.

  • View requests assigned to their team(s)
  • Make team decisions on workflow steps
  • Manage team-level tasks
  • View department dashboard
  • Cannot access user management or system settings

Member

Standard team member.

  • View requests assigned to their team
  • Complete assigned workflow tasks
  • Update own profile
  • Cannot manage other users or system settings

Permission Categories

Permissions are grouped by module:

Request Permissions

PermissionDescription
request:createCreate new project requests
request:readView project requests
request:updateEdit project requests
request:deleteDelete (soft-delete) project requests
request:assignAssign requests to teams
request:bulk_uploadUpload requests in bulk

User Permissions

PermissionDescription
user:createCreate new user accounts
user:readView user profiles
user:updateEdit user accounts
user:deleteDeactivate/delete users
user:assign_roleAssign roles to users

Team Permissions

PermissionDescription
team:createCreate new teams
team:readView team information
team:updateEdit team details
team:deleteRemove teams
team:manage_membersAdd/remove team members

Settings Permissions

PermissionDescription
settings:readView settings
settings:updateModify settings

Workflow Permissions

PermissionDescription
workflow:readView workflow steps
workflow:updateUpdate workflow progress
workflow:manageManage workflow configuration

Role–Permission Matrix

PermissionSuper AdminOrg AdminDept HeadMember
request:create
request:read
request:update
request:delete
request:assign
user:create
user:read
user:update
team:manage_members
settings:update
workflow:manage

How Permissions Are Enforced

  1. API routes check the user's session and role before processing requests.
  2. UI components conditionally render buttons and actions based on the user's permissions.
  3. Middleware verifies authentication on every protected route.

If you attempt to access a feature you don't have permission for, you'll see a 403 Forbidden error.