]> source.dussan.org Git - redmine.git/commitdiff
Make 2nd parameter optional in User#allowed_to_globally? for consistency (#6498).
authorJean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Sat, 6 Sep 2014 03:39:52 +0000 (03:39 +0000)
committerJean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Sat, 6 Sep 2014 03:39:52 +0000 (03:39 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@13364 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/user.rb
test/unit/user_test.rb

index 2993cc15213fe3e5c6d7409e529c88e69e54eec6..5f9674d2de1c31040b11c7d6fe101eb4b28d195c 100644 (file)
@@ -567,7 +567,11 @@ class User < Principal
 
   # Is the user allowed to do the specified action on any project?
   # See allowed_to? for the actions and valid options.
-  def allowed_to_globally?(action, options, &block)
+  #
+  # NB: this method is not used anywhere in the core codebase as of
+  # 2.5.2, but it's used by many plugins so if we ever want to remove
+  # it it has to be carefully deprecated for a version or two.
+  def allowed_to_globally?(action, options={}, &block)
     allowed_to?(action, nil, options.reverse_merge(:global => true), &block)
   end
 
index aa930a7a9c8e0729c90cfe8d0806176066ac267c..847c25c3b1d3e59578095bc7481c5e1919986cb5 100644 (file)
@@ -1019,6 +1019,19 @@ class UserTest < ActiveSupport::TestCase
     end
   end
 
+  # this is just a proxy method, the test only calls it to ensure it doesn't break trivially
+  context "#allowed_to_globally?" do
+    should "proxy to #allowed_to? and reflect global permissions" do
+      @dlopper2 = User.find(5) #only Developper on a project, not Manager anywhere
+      @anonymous = User.find(6)
+      assert_equal true, @jsmith.allowed_to_globally?(:delete_issue_watchers)
+      assert_equal false, @dlopper2.allowed_to_globally?(:delete_issue_watchers)
+      assert_equal true, @dlopper2.allowed_to_globally?(:add_issues)
+      assert_equal false, @anonymous.allowed_to_globally?(:add_issues)
+      assert_equal true, @anonymous.allowed_to_globally?(:view_issues)
+    end
+  end
+
   context "User#notify_about?" do
     context "Issues" do
       setup do