2

OOTP Fantasy Leagues – Road to 1.0: User Management Upgrades, Part 1. Changes in 1.0.5

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:

  • 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.
    • 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.
    • 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.

jfox015

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *