diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index bf011e5fe..3c2a92aa4 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -28,7 +28,7 @@ class Organizations::OrganizationsController < Organizations::BaseController def create ActiveRecord::Base.transaction do tip_exception("无法使用以下关键词:#{organization_params[:name]},请重新命名") if ReversedKeyword.check_exists?(organization_params[:name]) - Organizations::CreateForm.new(organization_params).validate! + Organizations::CreateForm.new(organization_params.merge(original_name: @organization.login)).validate! @organization = Organizations::CreateService.call(current_user, organization_params) Util.write_file(@image, avatar_path(@organization)) if params[:image].present? end @@ -39,7 +39,7 @@ class Organizations::OrganizationsController < Organizations::BaseController def update ActiveRecord::Base.transaction do - Organizations::CreateForm.new(organization_params).validate! + Organizations::CreateForm.new(organization_params.merge(original_name: @organization.login)).validate! login = @organization.login @organization.login = organization_params[:name] if organization_params[:name].present? @organization.nickname = organization_params[:nickname] if organization_params[:nickname].present? diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index 9cb6e5e23..284c894ba 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -89,6 +89,7 @@ class PullRequestsController < ApplicationController else ActiveRecord::Base.transaction do begin + return normal_status(-1, "title不能超过255个字符") if params[:title].length > 255 merge_params @issue&.issue_tags_relates&.destroy_all if params[:issue_tag_ids].blank? diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 07c209730..4f838aa51 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -238,7 +238,7 @@ class RepositoriesController < ApplicationController def archive domain = Gitea.gitea_config[:domain] api_url = Gitea.gitea_config[:base_url] - archive_url = "/repos/#{@owner.login}/#{@repository.identifier}/archive/#{params[:archive]}" + archive_url = "/repos/#{@owner.login}/#{@repository.identifier}/archive/#{URI.escape(params[:archive])}" file_path = [domain, api_url, archive_url].join file_path = [file_path, "access_token=#{current_user&.gitea_token}"].join("?") if @repository.hidden? diff --git a/app/forms/organizations/create_form.rb b/app/forms/organizations/create_form.rb index 48c8e23d0..2163f477e 100644 --- a/app/forms/organizations/create_form.rb +++ b/app/forms/organizations/create_form.rb @@ -1,6 +1,6 @@ class Organizations::CreateForm < BaseForm NAME_REGEX = /^(?!_)(?!.*?_$)[a-zA-Z0-9_-]+$/ #只含有数字、字母、下划线不能以下划线开头和结尾 - attr_accessor :name, :description, :website, :location, :repo_admin_change_team_access, :visibility, :max_repo_creation, :nickname + attr_accessor :name, :description, :website, :location, :repo_admin_change_team_access, :visibility, :max_repo_creation, :nickname, :original_name validates :name, :nickname, :visibility, presence: true validates :name, :nickname, length: { maximum: 100 } @@ -9,7 +9,7 @@ class Organizations::CreateForm < BaseForm validates :name, format: { with: NAME_REGEX, multiline: true, message: "只能含有数字、字母、下划线且不能以下划线开头和结尾" } validate do - check_name(name) unless name.blank? + check_name(name) unless name.blank? || name == original_name end def check_name(name) diff --git a/app/forms/users/login_form.rb b/app/forms/users/login_form.rb index 2634a36cc..fe74ea148 100644 --- a/app/forms/users/login_form.rb +++ b/app/forms/users/login_form.rb @@ -4,5 +4,5 @@ class Users::LoginForm attr_accessor :password, :login validates :login, presence: true - validates :password, presence: true, length: { minimum: 8, maximum: 16 }, format: { with: CustomRegexp::PASSWORD, message: "8~16位,支持字母数字和符号" } + validates :password, presence: true, length: { minimum: 6, maximum: 16 }, format: { with: CustomRegexp::PASSWORD, message: "6~16位,支持字母数字和符号" } end \ No newline at end of file diff --git a/app/services/gitea/organization/update_service.rb b/app/services/gitea/organization/update_service.rb index c04dcbc86..963099ad9 100644 --- a/app/services/gitea/organization/update_service.rb +++ b/app/services/gitea/organization/update_service.rb @@ -16,6 +16,7 @@ class Gitea::Organization::UpdateService < Gitea::ClientService def request_params update_params = { name: org.login, + full_name: org.nickname, description: org.description, location: org.location, repo_admin_change_team_access: org.repo_admin_change_team_access, diff --git a/app/services/pull_requests/create_service.rb b/app/services/pull_requests/create_service.rb index cc7493ea8..eaf931f38 100644 --- a/app/services/pull_requests/create_service.rb +++ b/app/services/pull_requests/create_service.rb @@ -148,6 +148,7 @@ class PullRequests::CreateService < ApplicationService def validate! raise "title参数不能为空" if @params[:title].blank? + raise "title不能超过255个字符" if @params[:title].length > 255 raise "head参数不能为空" if @params[:head].blank? raise "base参数不能为空" if @params[:base].blank? raise "fork_project_id参数错误" if is_original && !@project.forked_projects.pluck(:id).include?(@params[:fork_project_id].to_i)