Question
Once Discord is not the login, who is allowed to create and edit content, and who is an admin?
Today: canWrite = "is a member of the IC Discord server" (guild 84687138729259008), checked live on every write. isAdmin = "has one of the Admin / Staff / CA / Bureau roles", copied to the database at sign-in and never removed. welcome.jsx tells non-members to join the Discord.
Options
- Stored in the database (recommended). A membership flag / role on
person, granted by admins from /admin/users. Simple, no platform dependency, works on Workers/D1.
- A curated Bluesky list. IC maintains an
app.bsky.graph.list; the app checks it through the public API. Decentralised, but public, and writes depend on Bluesky being up.
- Hybrid. Database is the source of truth; an admin action imports from the Bluesky list.
Also decide:
- Default for new sign-ups: can they write immediately, or do they wait for approval?
- Should
adhérent (role 694986277556060271, noted in code as "special status?") become its own status?
- Does an admin losing their Discord role still need to remove rights? (Today it does not.)
Answer with: the chosen model and the answers above. Unblocks #156.
Part of #162.
Question
Once Discord is not the login, who is allowed to create and edit content, and who is an admin?
Today:
canWrite= "is a member of the IC Discord server" (guild84687138729259008), checked live on every write.isAdmin= "has one of the Admin / Staff / CA / Bureau roles", copied to the database at sign-in and never removed.welcome.jsxtells non-members to join the Discord.Options
person, granted by admins from/admin/users. Simple, no platform dependency, works on Workers/D1.app.bsky.graph.list; the app checks it through the public API. Decentralised, but public, and writes depend on Bluesky being up.Also decide:
adhérent(role694986277556060271, noted in code as "special status?") become its own status?Answer with: the chosen model and the answers above. Unblocks #156.
Part of #162.