CursivaDocs
Teams & community

Teams

Teams decide who, within the organization, can operate each piece of content. A team is about the staff who produce and maintain courses — not about the learners who take them.

Members versus learners

Before anything else, keep two populations apart:

  • Members are the organization's staff — the people who create, price, and moderate. Teams are made up of members, and only members.
  • Learners are the students who take the courses. They reach the organization through the content, never through the internal roster, and they never join teams.

If someone belongs to a team, they are staff. The people who learn together inside a course are organized separately, as communities.

What a team is

A team is a subgroup of the organization's staff — people who are already members of the organization. Each team has:

AttributeRule
Name2 to 60 characters; unique within the organization (case-insensitive)
LogoAn already-uploaded image (the team avatar)
BioFree text, up to 500 characters

Creating, renaming, and deleting teams, managing members, and defining roles are actions restricted to the organization owner or admin. A regular member can see the teams they belong to but does not administer the structure.

The owning team is the authority

Each piece of content can belong to one team, through the content.teamId field. That team is the single authority over the content, and who within it does what is defined by the per-member roles below.

When a piece of content has no team, the owner (ownerId) is the fallback and holds all the functions.

Per-member roles (team_member_role)

Being on a team, by itself, grants no power over its courses. What grants it are the per-member roles (team_member_role), assigned individually on the team's members screen through a per-person role popover.

Each role corresponds to a function (domain) of the content. The role's name matches the function's name:

RoleFunction (domain)What it allows
editorcontentEdit the course content
financefinancePrice, coupons, refunds, and listing (commercialization)
communitycommunityManage and moderate the communities and make up the tutor pool

The roles are cumulative and granular: the same person can have editor and community, or only finance. A member with only finance handles the commercial side but is read-only in the content editor — when they open the editor they get a restricted-access screen, not an editing session. Likewise, someone with only editor does not touch price or communities.

The operation to set roles replaces the entire set of a member's roles at once (it does not increment). Unknown roles are rejected.

How access to a piece of content is resolved

Every action on a piece of content is checked against a specific function (content, finance, or community). Resolution follows this order:

StepWho passes
ReadAny member of the organization can view
Organization owner/adminAlways have access to all functions (bypass)
Owner (ownerId)Holds all functions of the content
Member of the owning teamPasses only on the function whose role they carry
Content with no owner or teamOnly the organization owner/admin can change it

In other words: editor, finance, and community take effect only when the person is a member of the owning team of that content. Holding the role on another team is not enough.

Owner-level actions — transferring ownership and the danger zone — sit at an even higher tier: only the owner or an organization owner/admin. No team role (editor/finance/community) reaches this level; the team can operate the course but cannot delete or reassign it merely by being on the team.

Managing a team

From the team profile, an organization owner/admin can:

  • Create the team (unique name) and adjust its name, logo, and bio.
  • Add members from the organization's staff roster — only organization members can join; adding twice is harmless (idempotent).
  • Remove members (the person stays in the organization) or let someone leave on their own — leaving removes only that person's own association and requires no administrative rights.
  • Set the per-member roles in the popover on the members screen.
  • Consult the ‘Responsible for’ section, which lists all the courses the team owns (content.teamId).

Next steps