Difference between revisions of "Auth Module"

From Code4Lib
Jump to: navigation, search
m
Line 1: Line 1:
 
== UmlautAuth Module ==
 
== 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].
 
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].
  
Line 41: Line 39:
 
* db/schema.rb
 
* db/schema.rb
 
Modified the user table to use with authlogic.  Included column for mobile phone and user attributes.
 
Modified the user table to use with authlogic.  Included column for mobile phone and user attributes.
 +
 +
== Creating UmlautAuth Plugins ==

Revision as of 18:40, 19 October 2009

UmlautAuth Module

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.

Creating UmlautAuth Plugins