Commit Graph

2 Commits

Author SHA1 Message Date
Jeff Emmett 80f457f615 feat: add Web3 wallet linking to CryptID accounts
- Add WalletLinkPanel component for connecting and linking wallets
- Add useWallet hooks (useWalletConnection, useWalletLink, useLinkedWallets)
- Add wallet API endpoints in worker (link, list, update, unlink, verify)
- Add proper signature verification with @noble/hashes and @noble/secp256k1
- Add D1 migration for linked_wallets table
- Integrate wallet section into Settings > Integrations tab
- Support for MetaMask, WalletConnect, Coinbase Wallet
- Multi-chain support: Ethereum, Optimism, Arbitrum, Base, Polygon

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 19:29:42 +01:00
Jeff Emmett 52503167c8 feat: flip permissions model - everyone edits by default, protected boards opt-in
NEW PERMISSION MODEL:
- All users (including anonymous) can now EDIT by default
- Boards can be marked as "protected" by admin - only listed editors can edit
- Global admins (jeffemmett@gmail.com) have admin on ALL boards
- Added BoardSettingsDropdown with view-only toggle for admins

Backend changes:
- Added is_protected column to boards table
- Added global_admins table
- New getEffectivePermission logic prioritizes: token > global admin > owner > protection status
- New API endpoints: /auth/global-admin-status, /admin/request, /boards/:id/info, /boards/:id/editors
- Admin request sends email via Resend API

Frontend changes:
- BoardSettingsDropdown component with protection toggle and editor management
- Updated AuthContext and Board.tsx to default to 'edit' permission
- isReadOnly now only true for protected boards where user is not an editor

Task: task-052

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 12:43:14 -05:00