| @@ -106,19 +106,29 @@ class ProjectsController < ApplicationController | |||||
| def update | def update | ||||
| ActiveRecord::Base.transaction do | ActiveRecord::Base.transaction do | ||||
| Projects::UpdateForm.new(project_params).validate! | |||||
| private = params[:private] || false | |||||
| new_project_params = project_params.except(:private).merge(is_public: !private) | |||||
| @project.update_attributes!(new_project_params) | |||||
| gitea_params = { | |||||
| private: private, | |||||
| default_branch: @project.default_branch, | |||||
| website: @project.website | |||||
| } | |||||
| if [true, false].include? private | |||||
| Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) | |||||
| @project.repository.update_column(:hidden, private) | |||||
| # TODO: | |||||
| # 临时特殊处理修改website、lesson_url操作方法 | |||||
| if project_params.has_key?("website") | |||||
| @project.update(project_params) | |||||
| else | |||||
| validate_params = project_params.slice(:name, :description, | |||||
| :project_category_id, :project_language_id, :private) | |||||
| Projects::UpdateForm.new(validate_params).validate! | |||||
| private = params[:private] || false | |||||
| new_project_params = project_params.except(:private).merge(is_public: !private) | |||||
| @project.update_attributes!(new_project_params) | |||||
| gitea_params = { | |||||
| private: private, | |||||
| default_branch: @project.default_branch, | |||||
| website: @project.website | |||||
| } | |||||
| if [true, false].include? private | |||||
| Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) | |||||
| @project.repository.update_column(:hidden, private) | |||||
| end | |||||
| end | end | ||||
| end | end | ||||
| rescue Exception => e | rescue Exception => e | ||||