The Bottleneck
The site held alliance war plans, member intel, and private strategy notes. If it leaked, it would trigger sabotage, internal drama, and a loss of trust in leadership.
Martin Pan supported a private gaming alliance community built around a Game of Thrones strategy game. The WordPress site was meant to be private, but access relied on manual approvals after a basic sign-up.
That created two problems: the approval queue took time, and impostors could register using fake names that matched real players to reach restricted information.

The Zero-Trust Approach
We treated it as an identity and authorisation failure, not a “web design issue”. Typed names are not identity, and manual approval is not security.
We also worked within a hard constraint: the game does not allow external API access and using it would break the rules. We did not touch the game.
Instead, we used the system the alliance already trusted every day: Discord. Leadership was based in Aberdeen, but the community was spread across the UK and worldwide, so the checks had to run automatically.
The Execution
We rebuilt login so Discord membership became the gate. If the membership check failed, the site blocked access by default.
Members sign in via Discord, then the site verifies they belong to the correct server and meet the required access conditions. Once verified, the account is approved without a human queue.
We also added ongoing enforcement so access does not linger when someone leaves the community.
Security Controls Deployed
- Auth: Discord OAuth2 SSO verified identity at sign-in.
- Authorisation: Discord API checks verified server membership and required access conditions (role/channel rules).
- Deprovisioning: A daily sync re-checked membership and disabled website accounts within 24 hours when access was revoked in Discord.
- Failure Mode: If checks failed, the site denied entry and restricted pages stayed locked.
Mission Accomplished
Legitimate members stopped waiting for approvals. If they were in the right Discord server and met the rules, they gained access immediately.
Impersonation stopped working because typed names no longer mattered. Discord membership became the only accepted proof.
Manual approvals were removed, and access was revoked within 24 hours when someone left the server.
