diff options
Diffstat (limited to 'users')
-rw-r--r-- | users/app/controllers/application_controller.rb | 32 | ||||
-rw-r--r-- | users/app/controllers/controller_extension/authentication.rb | 17 | ||||
-rw-r--r-- | users/app/models/user.rb | 5 | ||||
-rw-r--r-- | users/config/initializers/add_controller_methods.rb | 3 |
4 files changed, 24 insertions, 33 deletions
diff --git a/users/app/controllers/application_controller.rb b/users/app/controllers/application_controller.rb deleted file mode 100644 index 0d6e5d1..0000000 --- a/users/app/controllers/application_controller.rb +++ /dev/null @@ -1,32 +0,0 @@ -class ApplicationController < ActionController::Base - protect_from_forgery - - protected - - def current_user - @current_user ||= User.find(session[:user_id]) if session[:user_id] - end - helper_method :current_user - - def logged_in? - !!current_user - end - helper_method :logged_in? - - def authorize - access_denied unless logged_in? - end - - def admin? - current_user && current_user.is_admin? - end - helper_method :admin? - - def authorize_admin - access_denied unless admin? - end - - def access_denied - redirect_to login_url, :alert => "Not authorized" - end -end diff --git a/users/app/controllers/controller_extension/authentication.rb b/users/app/controllers/controller_extension/authentication.rb new file mode 100644 index 0000000..507b62f --- /dev/null +++ b/users/app/controllers/controller_extension/authentication.rb @@ -0,0 +1,17 @@ +module ControllerExtension::Authentication + extend ActiveSupport::Concern + + private + + included do + helper_method :current_user + end + + def current_user + @current_user ||= User.find(session[:user_id]) if session[:user_id] + end + + def authorize + redirect_to login_url, :alert => "Not authorized" if current_user.nil? + end +end diff --git a/users/app/models/user.rb b/users/app/models/user.rb index 9bbf169..2b8ead7 100644 --- a/users/app/models/user.rb +++ b/users/app/models/user.rb @@ -44,7 +44,10 @@ class User < CouchRest::Model::Base end def to_json(options={}) - super(options.merge(:only => ['login', 'password_salt'])) + { + :login => login, + :ok => valid? + }.to_json(options) end def initialize_auth(aa) diff --git a/users/config/initializers/add_controller_methods.rb b/users/config/initializers/add_controller_methods.rb new file mode 100644 index 0000000..2579176 --- /dev/null +++ b/users/config/initializers/add_controller_methods.rb @@ -0,0 +1,3 @@ +ActiveSupport.on_load(:application_controller) do + include ControllerExtension::Authentication +end |