From 604da93c5c250b3ab90b9946e8df831c4bf2f902 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Tue, 29 Dec 2020 17:17:36 +0800 Subject: [PATCH] FIX when add members to project, permission set to readable --- .../admins/apply_signatures_controller.rb | 12 ++++++------ app/interactors/projects/add_member_interactor.rb | 11 ++++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/controllers/admins/apply_signatures_controller.rb b/app/controllers/admins/apply_signatures_controller.rb index c6b0f4c0..65d8a06d 100644 --- a/app/controllers/admins/apply_signatures_controller.rb +++ b/app/controllers/admins/apply_signatures_controller.rb @@ -3,16 +3,16 @@ class Admins::ApplySignaturesController < Admins::BaseController def index sort_by = params[:sort_by] ||= 'created_on' sort_direction = params[:sort_direction] ||= 'desc' - + @apply_signatures = paginate ApplySignature.waiting.includes(:attachments) end - + def update - ActiveRecord::Base.transaction do + ActiveRecord::Base.transaction do begin apply_signature = ApplySignature.find_by!(id: params[:id]) apply_signature.update_attributes!(apply_signatures_params) - Projects::AddMemberInteractor.call(apply_signature.project.owner, apply_signature.project, apply_signature.user, "write", true) + Projects::AddMemberInteractor.call(apply_signature.project.owner, apply_signature.project, apply_signature.user, "read", true) redirect_to admins_apply_signatures_path flash[:success] = "更新成功" rescue => e @@ -23,8 +23,8 @@ class Admins::ApplySignaturesController < Admins::BaseController end end - private + private def apply_signatures_params params.permit(:status) end - end \ No newline at end of file + end diff --git a/app/interactors/projects/add_member_interactor.rb b/app/interactors/projects/add_member_interactor.rb index 1e17dc45..810facfa 100644 --- a/app/interactors/projects/add_member_interactor.rb +++ b/app/interactors/projects/add_member_interactor.rb @@ -24,7 +24,7 @@ module Projects ActiveRecord::Base.transaction do gitea_result = Gitea::Repository::Members::AddService.new(owner, project.identifier, collaborator.login, permission).call if gitea_result.status == 204 - project.add_member!(collaborator.id, 'Developer', is_apply_signature) + project.add_member!(collaborator.id, set_member_role, is_apply_signature) end fail!(nil) end @@ -39,5 +39,14 @@ module Projects @error = error end + def set_member_role + @role ||= + case @permission + when "write" then "Developer" + when "read" then "Reporter" + else "Developer" + end + end + end end