About authentication:
The current system we use will not scale to authentication for players. That is, currently someone (kyle) takes all the team captain names a day or so before the Ladle and creates a ladle<n>_authorities.cfg file. It's filled with USER_LEVEL commands:
Code: Select all
USER_LEVEL dlh@generalconsumption.org 7
...
Extending this to include players is too much manual work, and teams add players the day of the Ladle and even right before they play. Having an admin around to /op everyone too lazy to sign-up is one solution, but then we're basically back to where we started. Fortunately, the authentication system is well designed, and there is a better way.
The solution is to create a @tournaments authority. There is an AUTHORITY_LEVEL command to automatically give users that authenticated from specific authorities a different user level. This allows us to do something like this:
Code: Select all
AUTHORITY_LEVEL tournaments/ladle/captain 7
AUTHORITY_LEVEL tournaments/ladle/player 8
When a player authenticates as <someone>@tournaments/ladle, they will be redirected to a subgroup and given the correct access level. Why a generic name like @tournaments and not @ladle? Well, I think other tournaments will want to use this.
We will need to create a way for players to register at the @tournaments authority. Personally, I don't want to deal with passwords and connecting registered @tournaments players with other accounts on other forums. Let's make @tournaments a mirror authority. I'm not sure this is technically possible, or if it is a good idea from a security point of view.
A player will create an account for @tournaments/ladle, but instead of providing a password and email for contact information they will provide another authenticated name they use (a @forums, or @ct account for example). The username could be auto-generated from the provided real username. When the player authenticates in game as <someone>@tournaments/ladle the @tournaments authority will communicate back with the user's real authority, and act as a proxy for authenticating.
A way to register teams and their players is needed. The current way we do this is on the wiki. We could create a full blown tournament registration website, and that would be the cleanest solution. However, it would also be the most work—and it's not even a fun problem to solve. It's just a CRUD website.
Another solution is to just continue using the wiki. Players continue to add themselves to teams on the wiki, but now they will use their real authenticated names—the real authenticated names are connected with @tournaments name. A script run on the @tournaments server would keep current what group a player belongs in, /captain or /player. The wiki also provides a way to diff changes, and revert them.
What pros would this new system actually provide? The first and most obvious is that user levels will not be manually maintained anymore. We also will have the ability to ban specific players from participating in the Ladle, by username and by IP. Note that players can get around both those obstacles, but at least we will have some control. Another benefit is that this system requires no source code changes to the game (servers will not need to update).
The cons: Time and effort. This actually needs to be created. And does this even provide a good solution? What level of control is needed for the Ladle?