2.4 KiB
2.4 KiB
Phase 4: Per-Board Access Control UI
Status: ⬜ Not Started Parent plan: PLAN.md Domain: fullstack
Objective
Add a user-friendly access control interface for boards, allowing admins to manage per-board permissions with user/group pickers and visual indicators.
Tasks
- Task 1: Create
src/lib/components/board/BoardAccessControl.svelte— inline permission editor for boards - Task 2: Add access control tab/section to board editor page
- Task 3: Create
src/routes/api/boards/[id]/permissions/+server.ts— GET/POST/DELETE permissions for a board - Task 4: Update
src/lib/components/admin/PermissionEditor.svelte— enhance with user/group search/autocomplete - Task 5: Update
src/lib/components/board/BoardCard.svelte— show access level indicator (icon/badge) - Task 6: Update
src/routes/boards/+page.svelte— show access indicators on board list - Task 7: Add guest access toggle with preview description to board editor
- Task 8: Create
src/lib/components/board/BoardShareDialog.svelte— quick share dialog for boards
Files to Modify/Create
src/lib/components/board/BoardAccessControl.svelte— NEWsrc/lib/components/board/BoardShareDialog.svelte— NEWsrc/routes/api/boards/[id]/permissions/+server.ts— NEWsrc/routes/boards/[boardId]/edit/+page.svelte— MODIFYsrc/routes/boards/[boardId]/edit/+page.server.ts— MODIFYsrc/lib/components/admin/PermissionEditor.svelte— MODIFYsrc/lib/components/board/BoardCard.svelte— MODIFYsrc/routes/boards/+page.svelte— MODIFY
Acceptance Criteria
- Board editor has a permissions section for managing access
- Admins can grant/revoke view/edit/admin permissions per user or group
- Board list shows access indicators (shared icon, guest badge, etc.)
- Quick share dialog allows easy permission granting
- Guest access toggle works with visual feedback
Notes
- The permission system already exists from MVP (permissionService)
- This phase adds the UI layer on top of existing backend
- ⚠️ Big Bang: may need integration fixes in Phase 5
Review Checklist
- All tasks completed
- Code follows project conventions
- No unintended side effects
- Build passes
- Tests pass (new + existing)