learningequality / learningequality/studio
Organization - Channel Migrations
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 191
- Forks
- 307
- Avg merge
- 5d 6h
- Merged PRs (30d)
- 10
Description
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
Channels need a pathway into organizations. While this may be a simple process whenever a channel is cleanly mapped onto an organization (e.g. all channel editors are editors/admins of the organization), this becomes problematic when channel editors are not part of the same org.
Complexity: Low
Target branch: unstable
The Change
Whenever a channel is saved, and an organization is tagged to the channel, the channel editors need to be checked for organization permissions:
- If the channel editors ALL have edit rights in the desired organization, the channel may be tagged with the organization.
- Otherwise, the channel migration becomes contested, and an invitation object is created.
This invitation object represents the contested migration, and is only solvable by website administrators (UI Pending).
How to Get There
Whenever a channel is edited, the organization field must be checked for changes.
Out of Scope
This is purely a backend API change - administrative UI with contested invitations will follow soon.
Acceptance Criteria
General
- Channel edits now check for organization property edits, and implement the required logic if previously empty.
- If a Channel already belongs to an organization, make sure that only organization admins can remove channels from organizations.
- Organization-to-Organization channel migration must be handled by website administrators by creating a contested invitation
AI usage
No AI was used in the making of this issue.
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 tracing the backend channel save/edit path and how the organization field is handled. Follow the existing organization permission checks and invitation object behavior, then verify the acceptance criteria: authorized channel tagging, restricted removal, and contested organization migrations represented for website administrators.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, authorization, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100