
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview
Add organizational support with two new models: Organization and OrganizationRole. These models enable organizations to own/manage channels and define user roles (with permissions and invitation workflow).
Complexity: Medium
Target branch: feature_organization_model
The Change
-
Add Organization model with metadata (name, description, tagline, website, email, thumbnail, public, deleted), FK to Channel, FK to OrganizationRole, JSON settings, and timestamps.
-
Add OrganizationRole as the through model linking User and Organization, storing role name, permissions (JSON), status (active/pending/etc.), joined_at, invitation_accepted_at, invited_by, and indexes/unique constraint on (user, organization)
Acceptance Criteria
AI usage
Used AI to generate models but they were carefully reviewed
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
Add organizational support with two new models: Organization and OrganizationRole. These models enable organizations to own/manage channels and define user roles (with permissions and invitation workflow).
Complexity: Medium
Target branch: feature_organization_model
The Change
Add Organization model with metadata (name, description, tagline, website, email, thumbnail, public, deleted), FK to Channel, FK to OrganizationRole, JSON settings, and timestamps.
Add OrganizationRole as the through model linking User and Organization, storing role name, permissions (JSON), status (active/pending/etc.), joined_at, invitation_accepted_at, invited_by, and indexes/unique constraint on (user, organization)
Acceptance Criteria
Organization and OrganizationRole implemented in contentcuration/models.py
Unique constraint enforced: one role per (user, organization)
Useful indexes added for organization and status lookups
PR description updated and linked to this issue
AI usage
Used AI to generate models but they were carefully reviewed