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/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/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,