From 7b1b1fa2d3780d47b323981daa7005eb5e5d15cc Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 17 Oct 2013 14:20:49 +0800 Subject: [PATCH] Fix bug in open_for, it now takes all the open_for into account Add open_for_user --- lib/orbit_core_lib.rb | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/orbit_core_lib.rb b/lib/orbit_core_lib.rb index 615db4c2..74bc0778 100644 --- a/lib/orbit_core_lib.rb +++ b/lib/orbit_core_lib.rb @@ -188,6 +188,15 @@ module OrbitCoreLib end end + def open_for_user(arg = nil) + if arg + key = arg.shift + prepend_before_filter key[0] => key[1] {|f| f.open_for :user} + else + prepend_before_filter {|f| f.open_for :user} + end + end + def open_for_visitor(arg = nil) if arg key = arg.shift @@ -214,27 +223,29 @@ module OrbitCoreLib setup_vars unless @no_authorization if @user_type + @open = false + @visitor = false @user_type.each do |user_type| - open = false - visitor = false case user_type when :admin - open ||= check_admin + @open ||= check_admin when :manager - open ||= check_manager + @open ||= check_manager when :sub_manager - open ||= check_sub_manager + @open ||= check_sub_manager when :approver - open ||= check_sub_manager + @open ||= check_sub_manager + when :user + @open ||= true when :visitor set_current_user - open ||= true - visitor ||= true + @open ||= true + @visitor ||= true end - check_backend_openness if visitor - authenticate_user! unless visitor - redirect_to root_url unless open end + check_backend_openness if @visitor + authenticate_user! unless @visitor + redirect_to root_url unless @open else authenticate_user! check_user_can_use