From ef5d603065c1c6bd1fb5699a8a059a9299c41115 Mon Sep 17 00:00:00 2001 From: Du Peng Date: Fri, 3 Jun 2022 12:05:23 +0200 Subject: [PATCH] Fix a bug: admins are shown in select member for reservation by admin --- CHANGELOG.md | 2 ++ app/controllers/api/members_controller.rb | 2 +- app/frontend/src/javascript/controllers/projects.js | 2 +- app/services/members/list_service.rb | 6 +++++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d263c9af9..999a75be2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## next deploy +- Fix a bug: admins are shown in select member for reservation by admin + ## v5.4.2 2022 June 1 - Updated react-select to 5.3.2 diff --git a/app/controllers/api/members_controller.rb b/app/controllers/api/members_controller.rb index 5240b41b5..ab62e69b5 100644 --- a/app/controllers/api/members_controller.rb +++ b/app/controllers/api/members_controller.rb @@ -180,7 +180,7 @@ class API::MembersController < API::ApiController end def search - @members = Members::ListService.search(current_user, params[:query], params[:subscription]) + @members = Members::ListService.search(current_user, params[:query], params[:subscription], params[:project]) end def mapping diff --git a/app/frontend/src/javascript/controllers/projects.js b/app/frontend/src/javascript/controllers/projects.js index 0cd5dc523..dc0ae9f51 100644 --- a/app/frontend/src/javascript/controllers/projects.js +++ b/app/frontend/src/javascript/controllers/projects.js @@ -231,7 +231,7 @@ class ProjectsController { const asciiName = Diacritics.remove(nameLookup); Member.search( - { query: asciiName }, + { query: asciiName, project: 'true' }, function (users) { $scope.matchingMembers = users; }, function (error) { console.error(error); } ); diff --git a/app/services/members/list_service.rb b/app/services/members/list_service.rb index 0f9c4c80f..961ac11ef 100644 --- a/app/services/members/list_service.rb +++ b/app/services/members/list_service.rb @@ -40,7 +40,7 @@ class Members::ListService @query end - def search(current_user, query, subscription) + def search(current_user, query, subscription, project) members = User.includes(:profile) .joins(:profile, :statistic_profile, @@ -69,6 +69,10 @@ class Members::ListService members = members.where('subscriptions.id IS NULL OR subscriptions.expiration_date < :now', now: Date.today.to_s) end + if project == 'false' || project.blank? + members = members.where("roles.name = 'member' OR roles.name = 'manager'") + end + members.to_a end