§ 25 · People & institution

HR & staff

HR holds the record of every employee from appointment to separation. It is the most tightly scoped module in the system — what you see depends on your campus, faculty and department, and the most sensitive fields need a grant made to you personally, not to your role.

What it is for

Maintaining staff records, contracts, leave and the employment lifecycle.

Who can do it

HR ManagerHR OfficerDean and HOD (their own people)DVC-Admin & Finance

Needed first
  • Staff categories, employment types and designations configured
  • Faculties and departments
  • HR settings including the staff-number format
Where it ends

Staff records that the lecturer portal, timetable, payroll and clearance all read.

The HR dashboard

The HR Dashboard: an Awaiting your action panel marked All clear, a filter strip for campus, faculty, department and status, twelve tiles including total staff, active staff, academic staff, administrative staff, staff on leave, pending leave approvals, contracts expiring in 30 days, confirmations awaiting action, pending transfers, pending training requests, qualifications pending and incomplete profiles, and workforce composition and workflow queue graphs.
HR Dashboard. HR has its own sidebar, grouped Overview, People, Employment lifecycle, and Leave & development. The filter strip above the tiles is scoped to what you are allowed to see.
TileWatch it because
Contracts expiring in 30 daysAn expired contract quietly removes someone's access and their place on a timetable
Confirmations awaiting actionProbation confirmations have deadlines with employment-law consequences
Qualifications pendingUnverified qualifications on academic staff are an accreditation risk
Incomplete profilesThe quiet one. An incomplete profile is what stops someone reaching the lecturer portal or appearing on a report
Academic vs administrative staffThe split that decides who can open the lecturer portal
Staff category is load-bearing

Whether someone is academic or administrative staff is not a label — it is what opens the lecturer portal. At CUofSS everyone appointed as academic staff teaches, and Dean, HOD and Registrar are roles laid on top of that. A lecturer recorded in the wrong category will be refused at the teaching portal with a message about their password.

The staff registry

The Staff Registry listing employees with staff number, designation, department, category and status.
Staff Registry. One row per employee. + Add staff member is on the dashboard, not buried in the list.
Never hand-type a staff number

Staff numbers follow a configured format built from year, campus, department, category and a sequence — something like CUOSS/2026/JBA-SS-01/DAGR/ACADEMIC/0003. They are generated. A hand-made number looks fine and then fails to match anywhere it is used.

A faculty-level role still needs a department

Creating a Dean's profile requires a department even though the Dean is faculty-scoped, and the department must belong to the faculty. Set the profile's department, but leave the user's department empty so the Dean stays faculty-scoped rather than narrowing to one department. Get this wrong and the Dean holds the role but sees nothing.

The employment lifecycle

Appointment→ Contract→ Confirmation→ Promotion / transfer→ Separation
The Contracts screen listing staff contracts with type, start and end dates and status.
Contracts. The contract is the source of truth for what someone is employed to do and until when. Contract alerts and renewals have their own screens beside it.
The Leave Management screen listing leave requests with type, dates and approval stage.
Leave Management. Requests come from the staff portal and climb a supervisor chain.
Leave is stricter about supervisors than timesheets are

Leave requires a properly named approver in the supervisor chain; some other processes will accept any supervisor. After any change to reporting lines, re-stamp open drafts — a request created before the change may still name nobody, which looks exactly like a permission fault and is not one.

The HR Reports screen listing available workforce reports.
HR Reports. Workforce composition, contracts, leave and lifecycle reporting, gated by hr.view_reports.

Scoping and sensitive data

HR is scoped more tightly than any other module. Two HR officers with identical roles can see different staff lists, because scope is applied per campus, faculty and department.

Sensitive fields need a personal grant

The most sensitive HR permissions are attached to Super Admin as a role, while everyone else needs a grant made to their individual account. That is deliberate — it makes access to salary and disciplinary information an explicit, auditable decision about a named person rather than a side effect of holding a job title.

It also means you cannot judge HR access by looking at a role. Use Access Summary and HR Governance to see who actually holds what.

The HR Setup screen with staff categories, employment types, designations and module settings.
HR Setup. Staff categories, employment types, designations and the staff-number format. Change these before you create staff, not after.
Worked example

Appointing a new lecturer so that everything downstream works

1. Profile+ Add staff member. Names, faculty, department, designation
2. CategorySet staff category to Academic. This is what opens the lecturer portal — not the designation text
3. Staff numberLet the system generate it
4. ContractRecord the contract with its start and end dates. An expiring contract removes access, so the end date is not decorative
5. AccountLink a user account and grant staff.portal.access. Confirm it is active — an inactive account is refused at every portal
6. RoleAsk ICT to attach the Lecturer role — see Governance
7. CoursesThe HOD assigns courses. Until then the lecturer portal opens but is empty
8. VerifyHave them sign in at /lecturer. If refused, check category and account status before anything else

If HR refuses

SymptomCauseFix
Your staff list is shorter than a colleague'sScope — campus, faculty or departmentExpected. Confirm with Access Summary
You cannot see salary or disciplinary detailSensitive permissions are granted per user, not per roleRequest it explicitly; it is meant to be a decision
A lecturer cannot open the teaching portalStaff category is not academic, or the account is inactiveThe staff profile, then the user account
A Dean sees nothingTheir user record has no faculty, or has a department that narrows themSet faculty; leave the user's department empty
A leave request names no approverIt was drafted before the reporting line changedRe-stamp open drafts after any supervisor change
Someone lost access overnightTheir contract expiredContract Alerts and Contract Renewals