Commit 8bcf8c4fae2f01ed3ea2771aa2d5072be5f0e5b8

Authored by André Guedes
1 parent 148b47c5

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>
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 &lt; ActiveRecord::Base @@ -43,7 +43,7 @@ class Profile &lt; 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 &lt; ActiveRecord::Base @@ -51,7 +51,7 @@ class Profile &lt; 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 &lt; ActiveRecord::Base @@ -81,6 +81,7 @@ class Profile &lt; 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
test/functional/profile_roles_controller_test.rb 0 → 100644
@@ -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