diff --git a/init.rb b/init.rb index f303fa7..0999017 100644 --- a/init.rb +++ b/init.rb @@ -15,4 +15,7 @@ Redmine::Plugin.register :redmine_rate do version '0.1.0' requires_redmine :version_or_higher => '0.8.0' + + permission :view_rate, { } + permission :edit_rate, { } end diff --git a/lib/rate_project_hook.rb b/lib/rate_project_hook.rb index b82701b..c869e4b 100644 --- a/lib/rate_project_hook.rb +++ b/lib/rate_project_hook.rb @@ -11,6 +11,7 @@ class RateProjectHook < Redmine::Hook::ViewListener # * :project => Current project # def view_projects_settings_members_table_header(context ={ }) + return '' unless (User.current.allowed_to?(:view_rate, context[:project]) || User.current.admin?) return "#{l(:rate_label_rate)} #{l(:rate_label_currency)}" end @@ -24,6 +25,9 @@ class RateProjectHook < Redmine::Hook::ViewListener def view_projects_settings_members_table_row(context = { }) member = context[:member] project = context[:project] + + return '' unless (User.current.allowed_to?(:view_rate, project) || User.current.admin?) + rate = Rate.for(member.user, project) content = '' diff --git a/spec/controllers/rates_controller_spec.rb b/spec/controllers/rates_controller_spec.rb index 6d008f1..798af1c 100644 --- a/spec/controllers/rates_controller_spec.rb +++ b/spec/controllers/rates_controller_spec.rb @@ -35,7 +35,7 @@ describe RatesController, "as regular user" do end before(:each) do - @user = mock_model(User, :logged? => true, :admin? => false, :anonymous? => false, :name => "Normal User", :memberships => []) + @user = mock_model(User, :logged? => true, :admin? => false, :anonymous? => false, :name => "Normal User", :memberships => [], :allowed_to? => true) User.stub!(:current).and_return(@user) end @@ -130,7 +130,7 @@ describe RatesController, "as an administrator" do end before(:each) do - @user = mock_model(User, :logged? => true, :admin? => true, :anonymous? => false, :name => "Admin User", :memberships => []) + @user = mock_model(User, :logged? => true, :admin? => true, :anonymous? => false, :name => "Admin User", :memberships => [], :allowed_to? => true) User.stub!(:current).and_return(@user) end