Road to 1.0: User Management Upgrades, Part 1
The Road to 1.0 is a series of articles chronicling the journey of this mod from conception to full 1.0 release.
One of the most important aspects of a site like the Fantasy mod is the organization and administration of its 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 development project, 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 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, inefficient 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
At the beginning of beta testing 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:
In the beginning of beta testing 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 e-mails when trying to recover either their passwords or the follow-ups with the actual new auto-generated password. There were no e-mails sent once registration finished, and no activation e-mails were being sent or received either. Thanks to considerable work done during the development of the trading feature in 0.5, upgrading the messaging for the user workflow was 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 working as far back as the alpha builds of The Comic Rack (that was 2009), it turns out user activation was incomplete, bug-ridden, and prone to significant 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 it on or off. Once turned on, e-mails weren’t sent thanks to the before-mentioned messaging issues. And what if the Admin wanted personal control over activations themselves? So for 0.5 beta, several changes have been made:
- The activation plumbing within libraries/Auth and models/user_auth_model was updated and revamped.
- Activation e-mails connected to the user messaging upgrades
- New site config options 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: e-mail, Admin, or none.
- A new Users Requiring Activation page to let Admin’s view a list of users who require admin approval
Beta testing on these changes went very well and user activation is now finally ready for prime time in 0.5.
- 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 the 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 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 home page. All the documentation you need is right there with the included Administrators Guide. New for 0.5 is the Commissioners Guide which includes all the instructions necessary to run your fantasy leagues.
Give Feedback
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.
Want to contribute?
OOTP Fantasy Leagues is 100% free and open-source, and the source is publicly available on GitHub. Head over to the official Github page, fork it and send a 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.