Studio Admin role & instructor management #9

Closed
opened 2026-06-05 12:57:39 +00:00 by thatguygriff · 0 comments
Owner

New us_studio_admin role that runs the studio, including creating instructor accounts and setting their permissions.

Spec: docs/features/user-roles.md

Scope

  • Register role us_studio_admin with caps: manage_instructors, manage_offerings, manage_questions, manage_policies, manage_billing, view_all_payments, export_payments
  • Extend us_instructor caps: manage_offerings, manage_questions, view_own_payments, export_payments
  • New caps wired into RoleManager (created on init + activation via Installer)
  • Instructors admin page (manage_instructors): create WP user with us_instructor role, toggle per-capability access; cannot grant a cap the admin lacks
  • src/Auth/InstructorController

Acceptance

  • Capability matrix in user-roles.md reflected in code; instructor create + cap toggles enforced; tests under tests/Unit/Auth/ passing
New `us_studio_admin` role that runs the studio, including creating instructor accounts and setting their permissions. **Spec:** `docs/features/user-roles.md` ## Scope - Register role `us_studio_admin` with caps: `manage_instructors`, `manage_offerings`, `manage_questions`, `manage_policies`, `manage_billing`, `view_all_payments`, `export_payments` - Extend `us_instructor` caps: `manage_offerings`, `manage_questions`, `view_own_payments`, `export_payments` - New caps wired into `RoleManager` (created on init + activation via `Installer`) - **Instructors** admin page (`manage_instructors`): create WP user with `us_instructor` role, toggle per-capability access; cannot grant a cap the admin lacks - `src/Auth/InstructorController` ## Acceptance - Capability matrix in `user-roles.md` reflected in code; instructor create + cap toggles enforced; tests under `tests/Unit/Auth/` passing
thatguygriff added the feature label 2026-06-05 12:57:39 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Unsupervised/unsupervised-scheduler#9