openedx / openedx/openedx-authz
Frontend: Implement Granular Permissions in Authoring UI (Course Editor/Auditor)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 9
- Avg merge
- 13d 9h
- Merged PRs (30d)
- 9
Description
Overview
Following the approved design and UX audit for roles (Course Editor/Auditor), this task involves the technical implementation of granular permission checks across the Authoring frontend. The goal is to ensure the UI accurately reflects user capabilities by toggling the visibility and interactivity of components.
Scope of Work
- Integration of Permission Logic: Implement conditional rendering based on granular permission flags.
- UI Controls: Apply "no-access" states (disabled buttons, hidden menus, or read-only views) as defined in the design proposal.
- Course Editor/Auditor Specifics: Ensure specific restrictions for these roles are enforced across all Authoring modules.
- Error Handling: Gracefully handle edge cases where a user might attempt to access a restricted route via URL.
Resources
- Approved Design: [TODO]
Related #283
Success Criteria
- The UI correctly hides or disables features based on the user's granular permissions.
- No "dead ends" are present; users see clear indicators (tooltips/states) when an action is restricted.
Details
| Category | Permission | Course Editor | Course Auditor |
|---|---|---|---|
| Tags & taxonomies | Manage tags | ✔ | ❌ |
| Course updates & handouts | View updates | ✔ | ✔ |
| Manage course updates | ✔ | ❌ | |
| Advanced & certificates | Manage advanced settings | ❌ | ❌ |
| Manage certificates | ❌ | ❌ | |
| Course Access & content | View course | ✔ | ✔ |
| Create course | ❌ | ❌ | |
| Publish content | ❌ | ❌ | |
| Edit content | ✔ | ❌ | |
| Files | View files | ✔ | ✔ |
| Create files | ✔ | ❌ | |
| Edit files | ✔ | ❌ | |
| Delete files | ❌ | ❌ | |
| Schedule & details | View schedule | ✔ | ✔ |
| Edit schedule | ❌ | ❌ | |
| View details | ✔ | ✔ | |
| Edit details | ✔ | ❌ | |
| Library updates | Review library updates | ✔ | ❌ |
| Grading | View grading | ✔ | ✔ |
| Edit grading settings | ✔ | ❌ | |
| Pages & resources | View pages and resources | ✔ | ✔ |
| Manage pages & resources | ✔ | ❌ | |
| Other | View checklists | ✔ | ✔ |
| View global staff & super admins | ✔ | ❌ | |
| Import / export | Import course | ❌ | ❌ |
| Export course | ❌ | ❌ | |
| Export tags | ❌ | ❌ | |
| Course team & groups | View course team | ✔ | ✔ |
| Manage group config | ✔ | ❌ | |
| Manage course team | ❌ | ❌ |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing related #283 and the approved design once the TODO is resolved; the issue names no files or test entry points, so map the Authoring modules covered by the permission table. Done means restricted controls and routes consistently reflect Course Editor and Course Auditor permissions without dead ends.
Written by the indexing model from the issue text.
Assessment
- Domain
- authorization, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100