Difference between revisions of "Auth Module"

From Code4Lib
Jump to: navigation, search
m (New page: == UmlautAuth Module and Plugin Architecture == ===Umlaut Auth Plugin===)
 
Line 1: Line 1:
 +
== UmlautAuth Module ==
  
== UmlautAuth Module and Plugin Architecture ==
+
== 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].
  
===Umlaut Auth Plugin===
+
=== 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:
 +
*# new - renders the login screen or redirects to external login screen
 +
*# validate - validates the user upon login
 +
*# destroy - processes logout
 +
* app/controllers/users_controller.rb
 +
The users controller manages the routing of user related requests.  Two methods are available:
 +
*# edit (also called from show) - renders the user preferences screen.
 +
*# 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: 
 +
<pre>
 +
#require 'authlogic'
 +
config.gem 'authlogic', :version => "= 2.1.0"</pre>
 +
* config/routes.rb
 +
Added url routes:
 +
<pre>
 +
  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
 +
</pre>
 +
* db/schema.rb
 +
Modified the user table to use with authlogic.  Included column for mobile phone and user attributes.

Revision as of 18:40, 19 October 2009

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.