Roles and permissions
Define roles as bundles of permissions, give them to staff, and decide how far each one reaches.
Roles and permissions is where administrators decide what moderators can do. A role bundles permissions. A moderator holds one or more roles. Where a role reaches is decided by the programs, cohorts, classes and courses the person is assigned to.
Administrators do not need roles: they hold every permission.
Areas and actions
Permissions are grouped into areas, one per responsibility: programs, cohorts, classes, courses, course templates, lectures, attendance, exams, assignments, events, announcements, forum, students, staff, student financials and fees.
A role holds individual actions. On a role's page each area is one line, with the actions it already grants read back beside its name and a table under it where you tick them one by one: View, Create, Update, Delete, Manage, and two that stand on their own, Change status on lectures, exams and events and Manage cards on students.
Areas do not all offer the same actions. Attendance and the forum have View and Manage, because taking a register and moderating a discussion are things you do to rows somebody else created.
Every action includes seeing. A role that can create, edit, delete or manage something can also view it, at the same reach, so you never have to tick View beside them.
Change status is a job of its own. It sets a session's status, which covers marking it completed, cancelling it and putting it back to scheduled. It never allows the session itself to be edited: a teacher who runs sessions someone else planned gets Lectures at View and Change status.
Where and whose
A role applies in one place. The Applies to control at the top of the page names it, once for the whole role: the whole organisation, or the person's assigned programs, cohorts, classes or courses. Every area applies there, and changing it moves all of them.
Within that reach, each action can be narrowed by whose rows it covers. The table has one row per answer:
- The role's reach: any row in the programs, cohorts, classes or courses the person is assigned to.
- Own: only what this person created.
- Sessions they are on: only the lectures, exams and events somebody put them on.
Own and Sessions they are on narrow, they never widen. They are filters on the reach the role already has, not a reach of their own. Someone put on a session in a course their role does not cover reaches nothing, because there is nothing there to narrow.
An area the role's kind cannot reach carries a greyed note beside its name, saying what it can be granted at instead: fees are organisation-wide only, and announcements are never addressed to a cohort. A grant written there still applies only through Own or Sessions they are on, and only where the role is assigned. Single actions work the same way. Creating a student or a staff member is done into the organisation, not into a class, so a role on assigned programs is not offered those boxes at all.
Assignments are made in the program form (moderators step), the cohort form (moderators step) and the class form (class staff and per-course staff). The roles page never assigns anyone to a program or a class; it only says what the person may do wherever they are assigned.
Presets
A role can start from one of the shipped ones instead of from nothing:
- Teacher
- Teacher (delivery only)
- Teacher (assigned sessions)
- Program manager
- Cohort coordinator
- Finance officer
- Communications manager
Pick one in the New role dialog, or use Start from a preset on a role's page, which replaces everything set below it. What you get is an ordinary role: rename it, tick and untick, and nothing ties it to the preset afterwards.
Teacher (assigned sessions) is the one to reach for when a scheduler plans the timetable. The teacher sees every lecture of their courses, and edits, takes the register for and marks delivered only the sessions they were put on. Lectures has no Create: planning a session is the scheduler's job, and the role says so by leaving it out.
The roles list
The roles list shows every role on the same columns, one per area. A filled mark means the role holds something in that area. Hover a cell to read the actions in words. The line under a role's name says where it applies. On the role's own page that line also names the areas it works in; both are generated from its permissions, so neither can drift from what the role grants.
Members
A role's Members tab lists the moderators who hold it. You can also give roles to one person from their page under Staff.
A change to a role applies to the server at once. A moderator who is signed in sees their menu update the next time they reload the page.