|
|
|
@@ -46,6 +46,12 @@ class Organizations::OrganizationsController < Organizations::BaseController |
|
|
|
@organization.nickname = organization_params[:nickname] if organization_params[:nickname].present? |
|
|
|
@organization.save! |
|
|
|
sync_organization_extension! |
|
|
|
# 更改组织可见性为私有,则需将该组织下的所有仓库同步更改为私有仓库 |
|
|
|
if organization_extension_params[:visibility] == "privacy" |
|
|
|
Project.where(user_id: @organization.id).where(is_public: true).each do |project| |
|
|
|
update_project_private(project) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
Gitea::Organization::UpdateService.call(current_user.gitea_token, login, @organization.reload) |
|
|
|
Util.write_file(@image, avatar_path(@organization)) if params[:image].present? |
|
|
|
@@ -123,5 +129,20 @@ class Organizations::OrganizationsController < Organizations::BaseController |
|
|
|
def sync_organization_extension! |
|
|
|
@organization.organization_extension.update_attributes!(organization_extension_params) |
|
|
|
end |
|
|
|
|
|
|
|
def update_project_private(project) |
|
|
|
project.update_attributes!(is_public: false) |
|
|
|
project.forked_projects.update_all(is_public: project.is_public) |
|
|
|
gitea_params = { |
|
|
|
private: false, |
|
|
|
default_branch: project.default_branch, |
|
|
|
website: project.website, |
|
|
|
name: project.identifier |
|
|
|
} |
|
|
|
gitea_repo = Gitea::Repository::UpdateService.call(@organization, project&.repository&.identifier, gitea_params) |
|
|
|
project.repository.update_attributes({hidden: gitea_repo["private"], identifier: gitea_repo["name"]}) |
|
|
|
# 更新对应所属分类下的项目数量(私有) |
|
|
|
project.project_category.decrement!(:private_projects_count, 1) if project.project_category.present? |
|
|
|
end |
|
|
|
|
|
|
|
end |