diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f738e181..b7147592 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -68,4 +68,26 @@ def current_user return @current_user if defined?(@current_user) @current_user = current_user_session && current_user_session.user end + + def require_user + unless current_user + store_location + flash[:notice] = _("Please log in to view this page.") + redirect_to new_user_session_url + return false + end + end + + def require_no_user + if current_user + store_location + flash[:notice] = _("Please log out to view this page.") + redirect_to account_url + return false + end + end + + def store_location + session[:return_to] = request.request_uri + end end diff --git a/app/controllers/permissions_controller.rb b/app/controllers/permissions_controller.rb index 1223f59e..a05f3eba 100644 --- a/app/controllers/permissions_controller.rb +++ b/app/controllers/permissions_controller.rb @@ -1,7 +1,7 @@ class PermissionsController < ApplicationController @@nonadmin = :index, :subscribe, :destroy before_filter :check_admin, :except => @@nonadmin - before_filter :login_required, :only => @@nonadmin + before_filter :require_user, :only => @@nonadmin layout 'standard' class NotDeletableError < RuntimeError diff --git a/config/routes.rb b/config/routes.rb index f6efc351..db604216 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,11 +26,11 @@ # For restful_authentication: map.resources :users - map.resource :session + map.resource :user_session # And some prettification... - map.login 'login', :controller => 'sessions', :action => 'new' - map.logout 'logout', :controller => 'sessions', :action => 'destroy' + map.login 'login', :controller => 'user_sessions', :action => 'new' + map.logout 'logout', :controller => 'user_sessions', :action => 'destroy' map.register 'register', :controller => 'users', :action => 'new' map.reset_password 'reset', :controller => 'users', :action => 'reset' map.regenerate_key 'regenerate_key', :controller => 'users', :action => 'regenerate_key'