Files
egg 1d5d4d447d feat: Add mobile responsive layout, open room access, and admin room management
Mobile Responsive Layout:
- Add useMediaQuery, useIsMobile, useIsTablet, useIsDesktop hooks for device detection
- Create MobileHeader component with hamburger menu and action drawer
- Create BottomToolbar for mobile navigation (Files, Members)
- Create SlidePanel component for full-screen mobile sidebars
- Update RoomDetail.tsx with mobile/desktop conditional rendering
- Update RoomList.tsx with single-column grid and touch-friendly buttons
- Add CSS custom properties for safe areas and touch targets (min 44px)
- Add mobile viewport meta tags for notched devices

Open Room Access:
- All authenticated users can view all rooms (not just their own)
- Users can join active rooms they're not members of
- Add is_member field to room responses
- Update room list API to return all rooms by default

Admin Room Management:
- Add permanent delete functionality for system admins
- Add delete confirmation dialog with room title verification
- Broadcast room deletion via WebSocket to connected users
- Add users search API for adding members

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 09:12:10 +08:00

32 lines
1.4 KiB
Markdown

# Proposal: Add Open Room Access
## Summary
Modify the room access model to allow all authenticated users to view and self-join rooms, while maintaining role-based permissions for room operations.
## Motivation
The current room model requires explicit invitation for users to see and join rooms. This creates friction in incident response scenarios where speed is critical. Users should be able to:
1. Discover all active incidents without needing an invitation
2. Self-join rooms to contribute or observe
3. Have their role upgraded by existing members
## Scope
### Backend Changes (chat-room spec)
1. **Public Room Listing**: All authenticated users can view all rooms (not just their own)
2. **Self-Join Mechanism**: New endpoint `POST /api/rooms/{room_id}/join` for self-joining as VIEWER
3. **Role Upgrade Permission**: EDITOR role gains permission to upgrade VIEWER → EDITOR
### Frontend Changes (frontend-core spec)
1. **Member Search**: Add user search functionality when inviting/managing members
2. **Password Visibility Toggle**: Add show/hide password button on login form
3. **Join Room Button**: Display "Join" button for rooms where user is not a member
## Out of Scope
- Creating private/invite-only room types (future enhancement)
- Role downgrade by EDITOR (only OWNER can downgrade)
- Member removal by EDITOR (only OWNER can remove)
## Related Specs
- `chat-room`: Room membership and access control
- `frontend-core`: Login and member management UI