I've observed and repeated the factory design detailed at artima - Modular Architectures with Ruby but I would like something a little cleaner.
The details are such that I have 3 types of users: managers, employees and customers.
I've abstracted the user security API such that Manager < User Employee < User Customer < User and the User class has all of the authentication methods such as "set_password", "check_password", etc.
Now, for the authentication controller.
I have my route mapping such that /authenticate/:user_type/:action
I'd like to have something similar to the following as my authentication code:
class Authenticate < ActionController::Base
def authenticate @user = User.find(@params[:user_type], @params[:user][:email_address]) if @user and @user.check_password(@params[:user][:password]) render(:text => "Success") else render(:text => "Failure") end end
end
Make sense? Any thoughts/ideas appreciated.
Thank you! Dave Hawkins