trackslash
TRACK-90 P2

Replace the public access switches with one project access mode

0
Sub-issue of TRACK-89 P2 Let private projects take issues from anyone signed in, like a help desk

Description

First step of TRACK-89. Replace projects.is_public and projects.public_issue_creation (and the CHECK that ties them together) with a single access_mode enum. Existing projects migrate to the matching value.

Modes:

  • private: members only.

  • public: anyone can read.

  • public_issues: anyone can read, and anyone signed in can file issues.

  • helpdesk: added to the enum now, but not selectable until TRACK-92.

  • Permissions: keep today's behaviour for each of the three existing modes. ProjectPermissionsForUser, the project listings (VisibleToUser, IssueCreatableToUser), Recents and reporter validation all read the mode.

  • REST and MCP: the access settings responses gain access_mode. They keep is_public and public_issue_creation, derived from the mode, for existing clients. Updates accept either access_mode or the legacy booleans.

  • UI: the access card on the members page becomes one choice between the modes, not two checkboxes. The About panel badges read from the mode.

  • Changelog: a change of mode is recorded as one "Access" change.

No behaviour change for existing projects.

Linked issues

0

GitHub

0

No branches or pull requests linked.

Comments

1
Bradley

Fixed in https://github.com/badbundle/track-slash-app/pull/181 (merged as 6ab7c94).

  • projects.access_mode (private, public or public_issues) replaces is_public and public_issue_creation. Migration 0049 maps existing projects onto the matching mode, and also declares helpdesk for TRACK-92.
  • The REST and MCP access settings return access_mode, plus the old pair derived from it. Updates accept either. access_mode wins if both are sent, and an unknown mode is rejected.
  • The members page offers the modes as one radio group, and a change of mode is logged as one "Access" change.