learningequality / learningequality/studio

Organization - Channel Migrations

Open
#6,124 1 comment 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.