Auth Module

Revision as of 18:40, 19 October 2009 by Scotdalton (Talk | contribs)

Revision as of 18:40, 19 October 2009 by Scotdalton (Talk | contribs)

UmlautAuth Module

Creating UmlautAuth Plugins

The UmlautAuth module extends functionality available from the [Authlogic|http://github.com/binarylogic/authlogic] (version 2.1.0) gem and configured as a plugin based on the [Authlogic OpenID add-on|http://github.com/binarylogic/authlogic_openid].

Core Umlaut Files Added or Updated

Several core Umlaut files were updated in order to develop the UmlautAuth module.

  • app/controller/application.rb

The application controller was updated to filter passwords and provide two methods for accessing the current user session and the current user. The method current_user_session (aliased as has_logged_in_user) returns nil if no user session has been established. The method current_user (aliased as logged_in_user) return either nil or the current logged in user.

  • app/controllers/user_sessions_controller.rb

The user sessions controller manages the routing of user session requests. Three methods are available:

    1. new - renders the login screen or redirects to external login screen
    2. validate - validates the user upon login
    3. destroy - processes logout
  • app/controllers/users_controller.rb

The users controller manages the routing of user related requests. Two methods are available:

    1. edit (also called from show) - renders the user preferences screen.
    2. update - processes updates to user preferences.
  • app/models/user_sessions

Extends Authlogic::Session::Base

  • app/models/user

Serializes user_attributes and adds acts_as_authentic functionality to leverage the Authlogic gem. Also sets to_param to username rather than id for prettier urls.

  • app/views/user_sessions/new

The default login screen

  • app/views/users/edit

The default user preferences screen. Users can update mobile phone numbers and the like.

  • config/environment.rb

Added authlogic gem:

#require 'authlogic'
config.gem 'authlogic', :version => "= 2.1.0"
  • config/routes.rb

Added url routes:

  map.login "login", :controller => "user_sessions", :action => "new"
  map.logout "logout", :controller => "user_sessions", :action => "destroy"
  map.validate "validate", :controller => "user_sessions", :action => "validate"
  map.resources :user_sessions
  map.resources :users
  • db/schema.rb

Modified the user table to use with authlogic. Included column for mobile phone and user attributes.