osem-fcy/app/controllers/application_controller.rb

76 lines
1.8 KiB
Ruby
Raw Normal View History

2013-01-07 09:04:09 +01:00
class ApplicationController < ActionController::Base
include ApplicationHelper
protect_from_forgery
before_filter :get_conferences
2013-08-25 13:40:44 +03:00
before_filter :store_location
def store_location
session[:return_to] = request.fullpath if request.get? and controller_name != "user_sessions" and controller_name != "sessions"
end
def after_sign_in_path_for(resource)
if organizer_or_admin? &&
(!session[:return_to] ||
session[:return_to] &&
session[:return_to] == root_path)
admin_conference_index_path
else
if session[:return_to] &&
!session[:return_to].start_with?(user_registration_path)
logger.debug "Returning to #{session[:return_to]}"
session[:return_to]
else
logger.debug "Not returning to #{session[:return_to]} because it would loop"
super
end
end
2013-08-25 13:40:44 +03:00
end
def get_conferences
@conferences =Conference.all
end
2013-01-07 09:04:09 +01:00
def verify_user
:authenticate_user!
if (current_user.nil?)
redirect_to new_user_session_path
return false
2013-01-07 09:04:09 +01:00
end
@conference = Conference.find_by(short_title: params[:conference_id])
2013-01-15 14:08:22 +01:00
true
2013-01-07 09:04:09 +01:00
end
def organizer_or_admin?
has_role?(current_user, 'admin') || has_role?(current_user, 'organizer')
end
def verify_organizer
if !verify_user
return
end
2013-01-07 09:04:09 +01:00
## Todo simplify this
redirect_to root_path unless has_role?(current_user, 'admin') || has_role?(current_user, 'organizer')
2013-01-07 09:04:09 +01:00
end
def verify_admin
if !verify_user
return
end
2013-01-07 09:04:09 +01:00
redirect_to root_path unless has_role?(current_user, 'admin')
2013-01-07 09:04:09 +01:00
end
def current_ability
@current_ability ||= AdminAbility.new(current_user)
end
rescue_from CanCan::AccessDenied do |exception|
Rails.logger.debug("Access denied!")
redirect_to root_path, :alert => exception.message
2013-01-07 09:04:09 +01:00
end
helper_method :organizer_or_admin?
2013-01-07 09:04:09 +01:00
end