From b6448d127db75c2292dff4bc220e9f3c8b800aab Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 14:05:11 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fixed=20=E4=BF=AE=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=8F=82=E6=95=B0=E6=A0=A1=E9=AA=8C=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 6 ++---- app/services/admins/import_user_from_excel_service.rb | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 1cb703e9c..8e395b833 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -4,12 +4,11 @@ class AccountsController < ApplicationController #skip_before_action :check_account, :only => [:logout] - def simple_update + def simple_update simple_update_params.merge!(username: params[:username]&.gsub(/\s+/, "")) simple_update_params.merge!(email: params[:email]&.gsub(/\s+/, "")) simple_update_params.merge!(platform: (params[:platform] || 'forge')&.gsub(/\s+/, "")) - simple_update_params.merge!(user_id: current_user.id) - Register::RemoteForm.new(simple_update_params).validate! + Register::RemoteForm.new(simple_update_params.merge(user_id: current_user.id)).validate! ActiveRecord::Base.transaction do result = auto_update(current_user, simple_update_params) @@ -28,7 +27,6 @@ class AccountsController < ApplicationController # 其他平台同步注册的用户 def remote_register - remote_register_params.merge!(user_id: nil) Register::RemoteForm.new(remote_register_params).validate! username = params[:username]&.gsub(/\s+/, "") tip_exception("无法使用以下关键词:#{username},请重新命名") if ReversedKeyword.check_exists?(username) diff --git a/app/services/admins/import_user_from_excel_service.rb b/app/services/admins/import_user_from_excel_service.rb index b1ade1de2..709551c23 100644 --- a/app/services/admins/import_user_from_excel_service.rb +++ b/app/services/admins/import_user_from_excel_service.rb @@ -45,7 +45,7 @@ class Admins::ImportUserFromExcelService < ApplicationService password = data.password nickname = data.nickname&.gsub(/\s+/, "") raise Error, "无法使用以下关键词:#{username},请重新命名" if ReversedKeyword.check_exists?(data.login) - Register::RemoteForm.new({username: username, email: email, password: password, platform: 'forge', user_id: nil}).validate! + Register::RemoteForm.new({username: username, email: email, password: password, platform: 'forge'}).validate! user = User.new(admin: false, login: username, mail: email, nickname: nickname, platform: 'forge' , type: "User") user.password = password user.activate From 712fe34c1263fc46fb6df6b3faf714b5ba04a537 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 14:46:15 +0800 Subject: [PATCH 2/5] =?UTF-8?q?PR=E6=95=B0=E6=8D=AE=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 2 +- app/controllers/pull_requests_controller.rb | 32 ++++++++++++------- .../20230530353459_add_project_pr_admin.rb | 5 +++ 3 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 db/migrate/20230530353459_add_project_pr_admin.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 192288019..fc56f1ca9 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -289,7 +289,7 @@ class ProjectsController < ApplicationController def project_params params.permit(:user_id, :name, :description, :repository_name, :website, :lesson_url, :default_branch, :identifier, :project_category_id, :project_language_id, :license_id, :ignore_id, :private, - :blockchain, :blockchain_token_all, :blockchain_init_token) + :blockchain, :blockchain_token_all, :blockchain_init_token, :pr_view_admin) end def mirror_params diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index f1039362d..39735687c 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -12,21 +12,28 @@ class PullRequestsController < ApplicationController def index - # @issues = Gitea::PullRequest::ListService.new(@user,@repository.try(:identifier)).call #通过gitea获取 - issues = @project.issues.issue_pull_request.issue_index_includes.includes(pull_request: :user) - issues = issues.where(is_private: false) unless current_user.present? && (current_user.admin? || @project.member?(current_user)) - @all_issues = issues.distinct - @filter_issues = @all_issues - @filter_issues = @filter_issues.where("issues.subject LIKE ? OR issues.description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present? - @open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::OPEN}) - @close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::CLOSED}) - @merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::MERGED}) @user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user)) @user_admin_or_developer = current_user.present? && (current_user.admin || @project.all_developers.include?(current_user)) + if @project.pr_view_admin? && !@project.manager?(current_user) + @open_issues = [] + @close_issues = [] + @merged_issues = [] + @issues_size = 0 + @issues = [] + else + issues = @project.issues.issue_pull_request.issue_index_includes.includes(pull_request: :user) + issues = issues.where(is_private: false) unless current_user.present? && (current_user.admin? || @project.member?(current_user)) + @all_issues = issues.distinct + @filter_issues = @all_issues + @filter_issues = @filter_issues.where("issues.subject LIKE ? OR issues.description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present? + @open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::OPEN}) + @close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::CLOSED}) + @merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::MERGED}) - scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest") - @issues_size = scopes.size - @issues = paginate(scopes) + scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest") + @issues_size = scopes.size + @issues = paginate(scopes) + end end def new @@ -192,6 +199,7 @@ class PullRequestsController < ApplicationController end def show + tip_exception(403, "你没有权限访问") if @project.pr_view_admin? && !@project.manager?(current_user) @issue_user = @issue.user @issue_assign_to = @issue.get_assign_user @gitea_pull = Gitea::PullRequest::GetService.call(@owner.login, diff --git a/db/migrate/20230530353459_add_project_pr_admin.rb b/db/migrate/20230530353459_add_project_pr_admin.rb new file mode 100644 index 000000000..fd1f5cf41 --- /dev/null +++ b/db/migrate/20230530353459_add_project_pr_admin.rb @@ -0,0 +1,5 @@ +class AddUserActionIndex < ActiveRecord::Migration[5.2] + def change + add_column :projects, :pr_view_admin, :boolean, default: false + end +end From f5c3fe2b8dcfc24fb4cf4c68fc35bb8544a52dc7 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 14:47:46 +0800 Subject: [PATCH 3/5] =?UTF-8?q?PR=E6=95=B0=E6=8D=AE=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20230530353459_add_project_pr_admin.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrate/20230530353459_add_project_pr_admin.rb b/db/migrate/20230530353459_add_project_pr_admin.rb index fd1f5cf41..85655ae60 100644 --- a/db/migrate/20230530353459_add_project_pr_admin.rb +++ b/db/migrate/20230530353459_add_project_pr_admin.rb @@ -1,4 +1,4 @@ -class AddUserActionIndex < ActiveRecord::Migration[5.2] +class AddProjectPrAdmin < ActiveRecord::Migration[5.2] def change add_column :projects, :pr_view_admin, :boolean, default: false end From 3456ddf526a22190602189814e5e73fe3be45444 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 15:10:02 +0800 Subject: [PATCH 4/5] =?UTF-8?q?PR=E6=95=B0=E6=8D=AE=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/pull_requests_controller.rb | 31 ++++++++------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index 39735687c..0cf022f7c 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -12,28 +12,21 @@ class PullRequestsController < ApplicationController def index + # @issues = Gitea::PullRequest::ListService.new(@user,@repository.try(:identifier)).call #通过gitea获取 + issues = @project.issues.issue_pull_request.issue_index_includes.includes(pull_request: :user) + issues = issues.where(is_private: false) unless current_user.present? && (current_user.admin? || @project.member?(current_user)) + @all_issues = issues.distinct + @filter_issues = @all_issues + @filter_issues = @filter_issues.where("issues.subject LIKE ? OR issues.description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present? + @open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::OPEN}) + @close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::CLOSED}) + @merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::MERGED}) @user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user)) @user_admin_or_developer = current_user.present? && (current_user.admin || @project.all_developers.include?(current_user)) - if @project.pr_view_admin? && !@project.manager?(current_user) - @open_issues = [] - @close_issues = [] - @merged_issues = [] - @issues_size = 0 - @issues = [] - else - issues = @project.issues.issue_pull_request.issue_index_includes.includes(pull_request: :user) - issues = issues.where(is_private: false) unless current_user.present? && (current_user.admin? || @project.member?(current_user)) - @all_issues = issues.distinct - @filter_issues = @all_issues - @filter_issues = @filter_issues.where("issues.subject LIKE ? OR issues.description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present? - @open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::OPEN}) - @close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::CLOSED}) - @merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::MERGED}) - scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest") - @issues_size = scopes.size - @issues = paginate(scopes) - end + scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest") + @issues_size = scopes.size + @issues = paginate(scopes) end def new From f19dfc9d0897b301d7281f4ee146c71484a1f5c1 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 17:59:40 +0800 Subject: [PATCH 5/5] =?UTF-8?q?PR=E6=95=B0=E6=8D=AE=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/edit.json.jbuilder | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/repositories/edit.json.jbuilder b/app/views/repositories/edit.json.jbuilder index e0b601f6d..7ef3c9081 100644 --- a/app/views/repositories/edit.json.jbuilder +++ b/app/views/repositories/edit.json.jbuilder @@ -10,7 +10,8 @@ json.project_units @project.project_units.pluck(:unit_type) json.lesson_url @project.lesson_url json.permission render_permission(current_user, @project) json.is_transfering @project.is_transfering -json.transfer do +json.pr_view_admin @project.pr_view_admin? +json.transfer do json.partial! "/users/user_simple", locals: {user: @project&.applied_transfer_project&.owner} end json.is_pinned @project.has_pinned_users.include?(current_user) \ No newline at end of file