diff --git a/app/controllers/organizations/organizations_controller.rb b/app/controllers/organizations/organizations_controller.rb index e03ddf121..73335cf11 100644 --- a/app/controllers/organizations/organizations_controller.rb +++ b/app/controllers/organizations/organizations_controller.rb @@ -36,8 +36,10 @@ class Organizations::OrganizationsController < Organizations::BaseController def update ActiveRecord::Base.transaction do login = @organization.login - @organization.update!(login: organization_params[:name]) if organization_params[:name].present? - @organization.organization_extension.update_attributes!(organization_params.except(:name)) + @organization.login = organization_params[:name] if organization_params[:name].present? + @organization.nickname = organization_params[:nickname] if organization_params[:nickname].present? + @organization.save! + @organization.organization_extension.update_attributes!(organization_params.except(:name, :nickname)) Gitea::Organization::UpdateService.call(@organization.gitea_token, login, @organization.reload) Util.write_file(@image, avatar_path(@organization)) if params[:image].present? end @@ -82,7 +84,7 @@ class Organizations::OrganizationsController < Organizations::BaseController def organization_params params.permit(:name, :description, :website, :location, :repo_admin_change_team_access, :visibility, - :max_repo_creation) + :max_repo_creation, :nickname) end def password diff --git a/app/models/organization.rb b/app/models/organization.rb index a541b203f..48dab55a2 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -78,8 +78,8 @@ class Organization < Owner scope :with_visibility, ->(visibility) { joins(:organization_extension).where(organization_extensions: {visibility: visibility}) if visibility.present? } - def self.build(name, gitea_token=nil) - self.create!(login: name, gitea_token: gitea_token) + def self.build(name, nickname, gitea_token=nil) + self.create!(login: name, nickname: nickname, gitea_token: gitea_token) end def can_create_project?(user_id) @@ -113,7 +113,9 @@ class Organization < Owner end def real_name - login + name = lastname + firstname + name = name.blank? ? (nickname.blank? ? login : nickname) : name + name.gsub(/\s+/, '').strip #6.11 -hs end def show_real_name diff --git a/app/services/organizations/create_service.rb b/app/services/organizations/create_service.rb index 2d2b29e0f..96bb3f46a 100644 --- a/app/services/organizations/create_service.rb +++ b/app/services/organizations/create_service.rb @@ -47,7 +47,7 @@ class Organizations::CreateService < ApplicationService end def create_org_and_extension - @organization = Organization.build(params[:name], user.gitea_token) + @organization = Organization.build(params[:name], params[:nickname], user.gitea_token) org_extension = OrganizationExtension.build(organization.id, description, website, location, repo_admin_change_team_access, visibility, max_repo_creation) diff --git a/app/views/organizations/organizations/_detail.json.jbuilder b/app/views/organizations/organizations/_detail.json.jbuilder index e7aafd4e9..64feadca1 100644 --- a/app/views/organizations/organizations/_detail.json.jbuilder +++ b/app/views/organizations/organizations/_detail.json.jbuilder @@ -1,5 +1,6 @@ json.id organization.id json.name organization.login +json.nickname organization.nickname json.description organization.description json.website organization.website json.location organization.location