diff --git a/lib/access.rb b/lib/access.rb index c25321ad5bf..291cee3c320 100644 --- a/lib/access.rb +++ b/lib/access.rb @@ -1,7 +1,8 @@ module Access + NONE = 0 MAINTAINER = 50 - ADMIN = 90 - OWNER = 100 + ADMIN = 60 + OWNER = 70 DEFAULT_ROLE = "owner".freeze @@ -16,7 +17,7 @@ def self.flag_for_role(role) end def self.with_minimum_role(role) - Range.new(flag_for_role(role), nil) + Range.new(flag_for_role(role), NONE) end def self.role_for_flag(flag) diff --git a/test/lib/access_test.rb b/test/lib/access_test.rb index 1173c5f54f6..b6e08299c3e 100644 --- a/test/lib/access_test.rb +++ b/test/lib/access_test.rb @@ -1,6 +1,13 @@ require "test_helper" class AccessTest < ActiveSupport::TestCase + context "roles are correctly sequenced" do + should "be in the correct order" do + assert_operator Access::OWNER, :>, Access::ADMIN + assert_operator Access::ADMIN, :>, Access::MAINTAINER + end + end + context ".role_for_flag" do should "return the role for a given permission flag" do assert_equal "owner", Access.role_for_flag(Access::OWNER) @@ -31,10 +38,9 @@ class AccessTest < ActiveSupport::TestCase context ".with_minimum_role" do should "return the range of roles for a given permission flag" do - assert_equal Range.new(Access::OWNER, nil), Access.with_minimum_role("owner") - refute_includes Access.with_minimum_role("owner"), Access::MAINTAINER - assert_includes Access.with_minimum_role("owner"), Access::OWNER - assert_includes Access.with_minimum_role("owner"), Access::ADMIN + assert_equal (Access::OWNER..Access::NONE), Access.with_minimum_role("owner") + assert_equal (Access::ADMIN..Access::NONE), Access.with_minimum_role("admin") + assert_equal (Access::MAINTAINER..Access::NONE), Access.with_minimum_role("maintainer") end end end