[Git][noosfero/noosfero][master] 3 commits: Fix method to return the roles for a profile and environment
Leandro Nunes
gitlab at mg.gitlab.com
Mon Jun 19 17:00:05 BRT 2017
Leandro Nunes pushed to branch master at Noosfero / noosfero
Commits:
7b6b0956 by Josafá Souza Jr at 2017-06-19T15:49:49-03:00
Fix method to return the roles for a profile and environment
- - - - -
abc7f320 by Leandro Nunes at 2017-06-19T19:28:16+00:00
removind byebug form profile_test.rb
- - - - -
b5d61912 by Leandro Nunes at 2017-06-19T19:59:51+00:00
Merge branch 'fix_get_roles' into 'master'
Fix method to return the roles for a profile and environment
See merge request !1246
- - - - -
4 changed files:
- app/api/v1/roles.rb
- app/controllers/my_profile/profile_members_controller.rb
- app/models/profile.rb
- test/unit/profile_test.rb
Changes:
=====================================
app/api/v1/roles.rb
=====================================
--- a/app/api/v1/roles.rb
+++ b/app/api/v1/roles.rb
@@ -13,7 +13,7 @@ module Api
get do
profile = environment.profiles.find(params[:profile_id])
return forbidden! unless profile.kind_of?(Organization)
- roles = Profile::Roles.organization_roles(profile.environment.id, profile.id)
+ roles = Profile::Roles.organization_member_and_custom_roles(profile.environment.id, profile.id)
person_roles = []
if params[:person_id].present?
person = environment.people.find(params[:person_id])
=====================================
app/controllers/my_profile/profile_members_controller.rb
=====================================
--- a/app/controllers/my_profile/profile_members_controller.rb
+++ b/app/controllers/my_profile/profile_members_controller.rb
@@ -3,7 +3,7 @@ class ProfileMembersController < MyProfileController
def index
@filters = params[:filters] || {:roles => []}
- all_roles = Profile::Roles.organization_member_roles(environment.id) | Profile::Roles.organization_custom_roles(environment.id, profile.id)
+ all_roles = Profile::Roles.organization_member_and_custom_roles(environment.id, profile.id)
@filters[:roles] = all_roles unless @filters[:roles].present?
@data = {}
field = 'name'
=====================================
app/models/profile.rb
=====================================
--- a/app/models/profile.rb
+++ b/app/models/profile.rb
@@ -64,6 +64,10 @@ class Profile < ApplicationRecord
def self.organization_roles(env_id, profile_id)
all_roles(env_id).where("profile_id = ? or key like 'profile_%'", profile_id)
end
+ def self.organization_member_and_custom_roles(env_id, profile_id)
+ self.organization_member_roles(env_id) | self.organization_custom_roles(env_id, profile_id)
+ end
+
def self.all_roles(env_id)
Role.where(environment_id: env_id)
end
=====================================
test/unit/profile_test.rb
=====================================
--- a/test/unit/profile_test.rb
+++ b/test/unit/profile_test.rb
@@ -1956,6 +1956,15 @@ class ProfileTest < ActiveSupport::TestCase
assert_equal roles[2..3], Profile::Roles.organization_member_roles(env.id)
end
+ should 'get organization member and custom roles' do
+ env = fast_create(Environment)
+ env.roles.delete_all
+ profile = fast_create(Organization)
+ roles = %w(profile_foo profile_bar).map{ |r| create(Role, :name => r, :key => r, :environment_id => env.id, :permissions => ["some"]) }
+ roles << create(Role, name: 'test', key: 'something_else', environment_id: env.id, profile_id: profile.id)
+ assert_equal roles[0..2], Profile::Roles.organization_member_and_custom_roles(env.id, profile.id)
+ end
+
should 'get organization roles' do
env = fast_create(Environment)
env.roles.delete_all
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/8c633fd040cc777cb5b6b3e2a3f139eebbd28c7b...b5d61912b6ceb97c6cee4b7d242f55cba46158a8
---
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/8c633fd040cc777cb5b6b3e2a3f139eebbd28c7b...b5d61912b6ceb97c6cee4b7d242f55cba46158a8
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20170619/a8991c71/attachment-0001.html>
More information about the Noosfero-dev
mailing list