Commit 8bcf8c4fae2f01ed3ea2771aa2d5072be5f0e5b8
1 parent
148b47c5
Exists in
master
and in
29 other branches
Added permission to manage_custom_roles and started test for the controller
Signed-off-by: Hebert Douglas <hebertdougl@gmail.com> Signed-off-by: Filipe Ribeiro <firibeiro77@live.com> Signed-off-by: André Bernardes <andrebsguedes@gmail.com>
Showing
5 changed files
with
56 additions
and
6 deletions
Show diff stats
app/controllers/my_profile/profile_roles_controller.rb
1 | class ProfileRolesController < MyProfileController | 1 | class ProfileRolesController < MyProfileController |
2 | 2 | ||
3 | - include RoleHelper | ||
4 | - | 3 | + protect 'manage_custom_roles', :profile |
4 | + | ||
5 | def index | 5 | def index |
6 | @roles = Profile::Roles.organization_custom_roles(environment.id, profile.id) | 6 | @roles = Profile::Roles.organization_custom_roles(environment.id, profile.id) |
7 | end | 7 | end |
app/models/profile.rb
@@ -43,7 +43,7 @@ class Profile < ActiveRecord::Base | @@ -43,7 +43,7 @@ class Profile < ActiveRecord::Base | ||
43 | find_role('editor', env_id) | 43 | find_role('editor', env_id) |
44 | end | 44 | end |
45 | def self.organization_member_roles(env_id) | 45 | def self.organization_member_roles(env_id) |
46 | - all_roles(env_id, nil).select{ |r| r.key.match(/^profile_/) unless r.key.blank? } | 46 | + all_roles(env_id).select{ |r| r.key.match(/^profile_/) unless r.key.blank? } |
47 | end | 47 | end |
48 | def self.organization_custom_roles(env_id, profile_id) | 48 | def self.organization_custom_roles(env_id, profile_id) |
49 | all_roles(env_id, profile_id).select{ |r| r.key.match(/^profile_/) unless r.key.blank? } | 49 | all_roles(env_id, profile_id).select{ |r| r.key.match(/^profile_/) unless r.key.blank? } |
@@ -51,7 +51,7 @@ class Profile < ActiveRecord::Base | @@ -51,7 +51,7 @@ class Profile < ActiveRecord::Base | ||
51 | def self.organization_all_roles(env_id, profile_id) | 51 | def self.organization_all_roles(env_id, profile_id) |
52 | self.organization_member_roles(env_id) + self.organization_custom_roles(env_id, profile_id) | 52 | self.organization_member_roles(env_id) + self.organization_custom_roles(env_id, profile_id) |
53 | end | 53 | end |
54 | - def self.all_roles(env_id, profile_id) | 54 | + def self.all_roles(env_id, profile_id=nil) |
55 | Role.all :conditions => { :profile_id => profile_id, :environment_id => env_id } | 55 | Role.all :conditions => { :profile_id => profile_id, :environment_id => env_id } |
56 | end | 56 | end |
57 | def self.method_missing(m, *args, &block) | 57 | def self.method_missing(m, *args, &block) |
@@ -81,6 +81,7 @@ class Profile < ActiveRecord::Base | @@ -81,6 +81,7 @@ class Profile < ActiveRecord::Base | ||
81 | 'publish_content' => N_('Publish content'), | 81 | 'publish_content' => N_('Publish content'), |
82 | 'invite_members' => N_('Invite members'), | 82 | 'invite_members' => N_('Invite members'), |
83 | 'send_mail_to_members' => N_('Send e-Mail to members'), | 83 | 'send_mail_to_members' => N_('Send e-Mail to members'), |
84 | + 'manage_custom_roles' => N_('Manage custom roles'), | ||
84 | } | 85 | } |
85 | 86 | ||
86 | acts_as_accessible | 87 | acts_as_accessible |
app/views/tasks/_add_member_accept_details.html.erb
1 | <%= content = _("Roles:")+"<br />" | 1 | <%= content = _("Roles:")+"<br />" |
2 | -roles = Profile::Roles.organization_member_roles(task.target.environment.id) | 2 | +roles = Profile::Roles.organization_all_roles(task.target.environment.id) |
3 | roles.each do |role| | 3 | roles.each do |role| |
4 | content += labelled_check_box(role.name, "tasks[#{task.id}][task][roles][]", role.id, false)+"<br />" | 4 | content += labelled_check_box(role.name, "tasks[#{task.id}][task][roles][]", role.id, false)+"<br />" |
5 | end | 5 | end |
6 | content_tag('p', content, :class => 'member-classify-suggestion') | 6 | content_tag('p', content, :class => 'member-classify-suggestion') |
7 | %> | 7 | %> |
8 | - |
db/migrate/20150210143723_add_custom_roles_permission_to_admin_roles.rb
0 → 100644
@@ -0,0 +1,18 @@ | @@ -0,0 +1,18 @@ | ||
1 | +class AddCustomRolesPermissionToAdminRoles < ActiveRecord::Migration | ||
2 | + def self.up | ||
3 | + environment_admin = Role.find_by_key("environment_administrator") | ||
4 | + profile_admin = Role.find_by_key("profile_admin") | ||
5 | + environment_admin.permissions.append("manage_custom_roles") | ||
6 | + profile_admin.permissions.append("manage_custom_roles") | ||
7 | + environment_admin.save! | ||
8 | + profile_admin.save! | ||
9 | + end | ||
10 | + def self.down | ||
11 | + environment_admin = Role.find_by_key("environment_administrator") | ||
12 | + profile_admin = Role.find_by_key("profile_admin") | ||
13 | + environment_admin.permissions.delete("manage_custom_roles") | ||
14 | + profile_admin.permissions.delete("manage_custom_roles") | ||
15 | + environment_admin.save! | ||
16 | + profile_admin.save! | ||
17 | + end | ||
18 | +end |
@@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||
1 | +class ProfileRolesController < ActionController::TestCase | ||
2 | + | ||
3 | + def setup | ||
4 | + @controller = RoleController.new | ||
5 | + @request = ActionController::TestRequest.new | ||
6 | + @response = ActionController::TestResponse.new | ||
7 | + @role = Role.find(:first) | ||
8 | + login_as(:ze) | ||
9 | + end | ||
10 | + | ||
11 | + should 'create a custom role' do | ||
12 | + | ||
13 | + | ||
14 | + end | ||
15 | + | ||
16 | + should 'delete a custom role not used' do | ||
17 | + | ||
18 | + end | ||
19 | + | ||
20 | + should 'delete a custom role being used' do | ||
21 | + | ||
22 | + end | ||
23 | + | ||
24 | + should 'assign a custom role to single user' do | ||
25 | + | ||
26 | + end | ||
27 | + | ||
28 | + should 'replace a role with a custom role' do | ||
29 | + | ||
30 | + end | ||
31 | + role = Role.create!(:name => 'environment_role', :key => 'environment_role', :environment => Environment.default) | ||
32 | +end |