From b0bac8a689e2ee0e81e5f537c1714602b5576b51 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Wed, 12 Nov 2014 10:20:05 -0300 Subject: [PATCH] Fix role kind resolution --- test/fixtures/roles.yml | 4 ++++ test/unit/environment_test.rb | 8 ++++++++ vendor/plugins/access_control/lib/role.rb | 7 +------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml index 8795023..f3caedd 100644 --- a/test/fixtures/roles.yml +++ b/test/fixtures/roles.yml @@ -55,6 +55,10 @@ profile_admin: - view_private_content - manage_products - send_mail_to_members + - edit_appearance + - manage_friends + - validate_enterprise + - publish_content profile_member: id: 6 environment_id: 1 diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index 23eae6f..b6af27b 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -363,6 +363,14 @@ class EnvironmentTest < ActiveSupport::TestCase assert_kind_of Role, Environment::Roles.admin(Environment.default.id) end + should 'create environment and profile default roles' do + env = Environment.default + assert_equal 'Environment', env.roles.find_by_key('environment_administrator').kind + assert_equal 'Profile', env.roles.find_by_key('profile_admin').kind + assert_equal 'Profile', env.roles.find_by_key('profile_member').kind + assert_equal 'Profile', env.roles.find_by_key('profile_moderator').kind + end + should 'be able to add admins easily' do env = Environment.default user = create_user('testuser').person diff --git a/vendor/plugins/access_control/lib/role.rb b/vendor/plugins/access_control/lib/role.rb index 5edc66b..4535dac 100644 --- a/vendor/plugins/access_control/lib/role.rb +++ b/vendor/plugins/access_control/lib/role.rb @@ -35,12 +35,7 @@ class Role < ActiveRecord::Base end def kind - env_perms = perms['Environment'].keys - if permissions.any?{ |perm| env_perms.include?(perm) } - 'Environment' - else - 'Profile' - end + key.present? && key.starts_with?('environment_') ? 'Environment' : 'Profile' end def name -- libgit2 0.21.2