| @@ -46,6 +46,12 @@ class Organizations::OrganizationsController < Organizations::BaseController | |||||
| @organization.nickname = organization_params[:nickname] if organization_params[:nickname].present? | @organization.nickname = organization_params[:nickname] if organization_params[:nickname].present? | ||||
| @organization.save! | @organization.save! | ||||
| sync_organization_extension! | 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) | Gitea::Organization::UpdateService.call(current_user.gitea_token, login, @organization.reload) | ||||
| Util.write_file(@image, avatar_path(@organization)) if params[:image].present? | Util.write_file(@image, avatar_path(@organization)) if params[:image].present? | ||||
| @@ -123,5 +129,20 @@ class Organizations::OrganizationsController < Organizations::BaseController | |||||
| def sync_organization_extension! | def sync_organization_extension! | ||||
| @organization.organization_extension.update_attributes!(organization_extension_params) | @organization.organization_extension.update_attributes!(organization_extension_params) | ||||
| end | 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 | end | ||||