Users & Roles

User management, role-based access control, and permission sets

Overview

OptiCRM has a comprehensive access control system with 11 built-in roles, permission sets, field-level security, and record sharing rules.

Creating Users

Navigate to Admin > All Users and click Create User:

  1. Enter name, email, role, and temporary password
  2. Click Create — user is created and receives a welcome email with credentials
  3. User logs in and should change their password

Built-In Roles

RoleDescriptionTypical Permissions
Super AdminPlatform operatorEverything
Institution AdminSchool administratorFull institution access
PrincipalSchool principalRead all, manage academic
HODHead of departmentDepartment-scoped access
TeacherSubject teacherAttendance, marks, assignments
Admissions CounsellorAdmissions teamEnquiries, admissions
Finance OfficerAccounts teamFee structure, invoices, payments
LibrarianLibrary staffCatalogue, circulation
ParentParent/guardianPortal read + pay fees
StudentStudentPortal read-only
StaffGeneral staffSelf-service only

Permission Sets

Permission sets are bundles of additional permissions that can be assigned to users beyond their role's base permissions.

Settings > Permission Sets:

  1. Create a permission set (e.g., "Report Manager")
  2. Add permission grants (which objects, which actions)
  3. Assign to specific users
  4. Optional expiry date

Advanced Access Control

FeatureLocationDescription
Object PermissionsSettings > Object PermissionsPer-object CRUD permissions per role
Field-Level SecuritySettings > Field SecurityControl which fields are visible per profile
Record SharingAdmin > SharingCriteria-based record sharing rules
Data ScopingSettings > Data Access RulesRow-level visibility rules
Role HierarchyAdmin > Role HierarchyHierarchical role inheritance
Org-Wide DefaultsAdmin settingsDefault access level per object

Password Reset

Users who forget their password can:

  1. Click "Forgot your password?" on the login page
  2. Enter their email address
  3. Receive a reset link (valid for 1 hour)
  4. Set a new password

Admins can also reset passwords via the CLI script: npx tsx scripts/reset-password.ts