Auth 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].
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:
#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.