Replies: 1 comment 1 reply
-
|
Related Issues |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Proposal: User Management Improvements
Motivation
Managing course instructors and editors currently requires direct access to the Keycloak admin console. This creates an unnecessary dependency on Keycloak expertise and limits who can perform routine course team management. PROMPT should provide a first-class UI for managing course-level roles directly within the application, while Keycloak remains the source of truth.
1. Course Instructor & Editor Management UI
Each course settings page should include a dedicated section for managing the course team:
This UI should be accessible to course lecturers and PROMPT_Admins.
2. Custom Group Management (Future Extension)
In addition to lecturer and editor roles, courses may have custom Keycloak groups (under
{SemesterTag}-{CourseName}/CustomGroups/). The UI should also display and allow management of these custom groups. This is not part of the core implementation but should be considered in the API and UI design so it can be added later without rework.3. User Search & Lookup
To add someone as a lecturer or editor, PROMPT needs to be able to search for users in Keycloak:
4. Security & Access Control
Security is the top priority for this feature. Exposing Keycloak group management through PROMPT's API creates a significant attack surface if not properly constrained.
/PROMPT/{semesterTag}-{courseName}/Lecturer) so that a caller cannot manipulate the request to target a different course's groups or system-level groups.CheckAccessControlByID()middleware must be used to enforce this.LecturerandEditorsubgroups of the current course. No other Keycloak operations (group creation, deletion, role mapping, realm-level changes) should be exposed.5. Permission Model
6. Keycloak Integration
The existing Keycloak integration already supports group management operations. This proposal extends that pattern:
KeycloakRealmManagerfor listing/adding/removing group membersrealm_manager.goshould be addressed as part of this work to avoid performance issues with frequent Keycloak API callsBeta Was this translation helpful? Give feedback.
All reactions