Skip to content

feat(web): add admin-only server channel directory - #859

Closed
gusye1234 wants to merge 1 commit into
mainfrom
feat/server-channel-admin-directory
Closed

gusye1234 wants to merge 1 commit into
mainfrom
feat/server-channel-admin-directory

Conversation

@gusye1234

Copy link
Copy Markdown
Contributor

Server administrators currently cannot discover private channels they have not joined. Adds GET /api/community/servers/{id}/channels/admin so Server Settings can show every top-level text/forum with its group, name, creator handle/name, and creation time.

The human-only route checks current server admin/owner membership on a primary D1 session. The query independently scopes by server and admin membership, excludes threads/DMs, and selects only display metadata. Responses use Cache-Control: private, no-store; existing sidebar visibility and private-message access remain unchanged. No migration or dependencies.

Validation: 29 focused directory/access tests, repository typecheck/lint/tests and bind-contract/typegrep/knip checks passed. Local browser/API QA passed on exact commit f0e639c2f307b369bb4d0297f36b23b3d5229adb: both owner/admin responses matched 7 local D1 metadata rows; member/outsider/cross-server/bot were denied, anonymous was 401, same-session role downgrade was immediately denied, existing private sidebar/messages remained inaccessible, and complete membership/read-state snapshots were unchanged. Null/deleted creators, thread/DM exclusion, and no-store headers were verified.

Frontend integration and the combined lazy-loading/settings-page QA remain in Alook task #152; this PR is the backend portion and should merge only after that combined verification.

Added lines: 238 total; 59 application code, 171 tests and 8 bind-strategy manifest entries. One existing import line replaced.

@gusye1234 gusye1234 closed this Oct 1, 2026
@gusye1234
gusye1234 deleted the feat/server-channel-admin-directory branch October 1, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant