Commit b0bac8a689e2ee0e81e5f537c1714602b5576b51
1 parent
b9800000
Exists in
master
and in
27 other branches
Fix role kind resolution
Showing
3 changed files
with
13 additions
and
6 deletions
Show diff stats
test/fixtures/roles.yml
| @@ -55,6 +55,10 @@ profile_admin: | @@ -55,6 +55,10 @@ profile_admin: | ||
| 55 | - view_private_content | 55 | - view_private_content |
| 56 | - manage_products | 56 | - manage_products |
| 57 | - send_mail_to_members | 57 | - send_mail_to_members |
| 58 | + - edit_appearance | ||
| 59 | + - manage_friends | ||
| 60 | + - validate_enterprise | ||
| 61 | + - publish_content | ||
| 58 | profile_member: | 62 | profile_member: |
| 59 | id: 6 | 63 | id: 6 |
| 60 | environment_id: 1 | 64 | environment_id: 1 |
test/unit/environment_test.rb
| @@ -363,6 +363,14 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -363,6 +363,14 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
| 363 | assert_kind_of Role, Environment::Roles.admin(Environment.default.id) | 363 | assert_kind_of Role, Environment::Roles.admin(Environment.default.id) |
| 364 | end | 364 | end |
| 365 | 365 | ||
| 366 | + should 'create environment and profile default roles' do | ||
| 367 | + env = Environment.default | ||
| 368 | + assert_equal 'Environment', env.roles.find_by_key('environment_administrator').kind | ||
| 369 | + assert_equal 'Profile', env.roles.find_by_key('profile_admin').kind | ||
| 370 | + assert_equal 'Profile', env.roles.find_by_key('profile_member').kind | ||
| 371 | + assert_equal 'Profile', env.roles.find_by_key('profile_moderator').kind | ||
| 372 | + end | ||
| 373 | + | ||
| 366 | should 'be able to add admins easily' do | 374 | should 'be able to add admins easily' do |
| 367 | env = Environment.default | 375 | env = Environment.default |
| 368 | user = create_user('testuser').person | 376 | user = create_user('testuser').person |
vendor/plugins/access_control/lib/role.rb
| @@ -35,12 +35,7 @@ class Role < ActiveRecord::Base | @@ -35,12 +35,7 @@ class Role < ActiveRecord::Base | ||
| 35 | end | 35 | end |
| 36 | 36 | ||
| 37 | def kind | 37 | def kind |
| 38 | - env_perms = perms['Environment'].keys | ||
| 39 | - if permissions.any?{ |perm| env_perms.include?(perm) } | ||
| 40 | - 'Environment' | ||
| 41 | - else | ||
| 42 | - 'Profile' | ||
| 43 | - end | 38 | + key.present? && key.starts_with?('environment_') ? 'Environment' : 'Profile' |
| 44 | end | 39 | end |
| 45 | 40 | ||
| 46 | def name | 41 | def name |