One of the most important aspects of a site like the Fantasy mod is the organization and administration of it members. Unfortunately, the mod has historically been light in this area and it was done so on purpose.
User Administration, an overview
The fantasy mod, like its predecessor/sister site The Comic Rack, utilizes a CodeIgniter mod called Redux Authentication 2 by Mathew Davies as the backbone of its user authentication and management workflow. It is a trim, clean mod that I reworked for my own purposes and integrated into my own custom MVC CRUD (Create, read, update, delete) workflow.
Davies built his mod off other previous incarnations of the Auth library and while good, it hasn’t received much work in recent years. A new project, called Ion-Auth has sprung up of late to continue building on the library until such as time as CodeIgniter itself includes authentication support (if that ever happens). Upgrading to and incorporating Ion-Auth has been a goal since the 1.0.3 update, but since it requires me to rework much of the current user workflow, I’ve held off making a move in that direction thus far. When such a time comes that I am ready to rebuild the site backbone (upgrading to CodeIgniter Reactor for example), that will be a perfect time to undertake that effort and revamp the entire Auth system.
At its core, Redux Auth supported some nice things that attracted me to it:
- Support for both core user information (such as username, email, signup date, active status, basically non-public, framework based used data) and meta profile information such as real name, address, bio, birthdays and the like.
- Simple e-mail based activation
- Forgotten password workflow
- Logical separation of user admin features into a separate library with supporting model(s)
Despite some of the most glaring weak points (lack of “Remember Login” feature, weak messaging workflow, lack of an admin tool to manage users) the mod worked for what I’ve needed it to do, simple user management.
Bumps in the road
In beginning of beta testing 1.0.5, the beta team quickly started poking holes in what I thought was an otherwise complete user administration system. Thanks to their testing, I was forced to acknowledge and fix the following issues:
- User Messaging – No one could get emails when trying to recover either their passwords or the follow ups with the actual new auto-generated password. There were no emails sent once registration was completed and no activation emails were being sent or received either.
Thanks to considerable work done during development of the trading feature in 1.0.5, upgrading the messaging for the user workflow was actually pretty straight forward process and required only implementing the new global sendEmail() function into the global general functions library and some standard messaging strings in the Global -> en_US language file. Once updated, the e-mails finally started flowing.
- User Activation – Even though I thought this was completed and working as far back as the alpha builds of The Comic Rack (that was 2009), it turns out user activation was actually woefully incomplete, bug ridden and prone to major failures. There was also no way for site admin’s to turn activation on or off via the site dashboard. They would have to dive into the Auth config file in the codebase to turn the feature on. Once turned on, emails were never sent correctly thanks to the before mentioned messaging issues. And what if the admin wanted personal control over activations themselves?
To combat this, several changes have been made:
- The activation plumbing within
models/user_auth_modelwas updated and revamped.
- Activation e-mails were tied into the user messaging upgrades
- New site config options were added to manage the authentication method. A new option group was added to the Dashboard's Global Setting page to allow site admins to select one of the three activation options: email, admin or none.
- A new Users Requiring Activation page was added to let Admin’s view a list of new users who require admin approval
Beta testing on these changes went very well and user activation is now finally ready for prime time in 1.0.5.
- The activation plumbing within
- User Profiles – The user profile page received some small tweaks and updates as well.
- The user team list box was revised and the league list updated to accommodate the addition of rotisserie league.
- A new toolbox was also added to track pending league invitations and team requests and give users control over accepting, decline or even withdrawing requests.
Is user administration complete yet? Well, in the web world, nothing is ever "complete", but it’s vastly improved. Some features that have been long requested, such as persistent logins, groups, friends and personal control panels are on the list of planned enhancements, but likely not expected until a 2.0 release at the earliest.
But that doesn’t mean work has stopped. See the follow up to this post, Road to 1.0: User Management Upgrades, Part 2. Changes in 1.0.6! for a list of further user management changes in the fourth patch release.
Get the mod today and start playing OOTP Fantasy baseball!
Download the latest stable release version from the official Download page. All the documentation you need is right there with the included Administrators Guide. New for 1.0.5 is the Commissioners Guide which includes all the instructions necessary to run your fantasy leagues.
Sound off on the forums. Head over to the OOTP Fantasy Leagues forums to let us know your thoughts on the mod. Interact with other users and let us know if you’re running an OOTP Fantasy League.
Contribute to the development
Hack the source!
OOTP Fantasy Leagues is a 100% free and open source project. The source code is publicly available on GitHub.com. If you want to contribute to the development, simply head over to the official Github page, fork the project, hack the code and send pull request with your updates.
Want to help test?
Testing assures everything works as expected and that everyone gets the best fantasy experience possible. You can request to join the OOTP Fantasy Beta team. You’ll get access to join the beta demo season, access to the private development and beta testing topics on the mod forum and exclusive access to features and changes BEFORE they become public. Use the official contact form to request to join the team today!