diff --git a/app/controllers/admins/projects_controller.rb b/app/controllers/admins/projects_controller.rb index f1f797043..dc3f6030a 100644 --- a/app/controllers/admins/projects_controller.rb +++ b/app/controllers/admins/projects_controller.rb @@ -5,7 +5,7 @@ class Admins::ProjectsController < Admins::BaseController sort_by = Project.column_names.include?(params[:sort_by]) ? params[:sort_by] : 'created_on' sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : 'desc' search = params[:search].to_s.strip - projects = Project.where("name like ?", "%#{search}%").order("#{sort_by} #{sort_direction}") + projects = Project.where("name like ? OR identifier LIKE ?", "%#{search}%", "%#{search}%").order("#{sort_by} #{sort_direction}") @projects = paginate projects.includes(:owner, :members, :issues, :versions, :attachments, :project_score) end diff --git a/app/controllers/organizations/teams_controller.rb b/app/controllers/organizations/teams_controller.rb index 09f5bc3f0..56172a61e 100644 --- a/app/controllers/organizations/teams_controller.rb +++ b/app/controllers/organizations/teams_controller.rb @@ -67,7 +67,18 @@ class Organizations::TeamsController < Organizations::BaseController tip_exception("组织团队不允许被删除") if @team.owner? ActiveRecord::Base.transaction do Gitea::Organization::Team::DeleteService.call(@organization.gitea_token, @team.gtid) + other_user_ids = @organization.team_users.where.not(team_id: @team.id).pluck(:user_id) + team_user_ids = @team.team_users.pluck(:user_id) + # 当前删除团队中成员在其他组织其他团队不存在的成员需清除组织 + remove_user_ids = team_user_ids - other_user_ids + Rails.logger.info "remove_user_ids ===========> #{remove_user_ids}" @team.destroy! + if remove_user_ids.present? + User.where(id: remove_user_ids).each do |user| + @organization.organization_users.find_by(user_id: user.id).destroy! + Gitea::Organization::OrganizationUser::DeleteService.call(@organization.gitea_token, @organization.login, user.login) + end + end end render_ok rescue Exception => e diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a47dc4bfb..d7a0396a1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -60,7 +60,10 @@ class ProjectsController < ApplicationController OpenProjectDevOpsJob.set(wait: 5.seconds).perform_later(@project&.id, current_user.id) UpdateProjectTopicJob.perform_later(@project.id) if @project.id.present? end - rescue Exception => e + rescue Gitea::Api::ServerError => ex + uid_logger_error(ex.message) + tip_exception(ex.http_code, ex.message) + rescue ApplicationService::Error => e uid_logger_error(e.message) tip_exception(e.message) end diff --git a/app/models/project.rb b/app/models/project.rb index c2702fa01..f3ec5f9bf 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -90,6 +90,8 @@ class Project < ApplicationRecord include ProjectOperable include Dcodes + default_scope {where.not(id: 0)} + # common:开源托管项目 # mirror:普通镜像项目,没有定时同步功能 # sync_mirror:同步镜像项目,有系统定时同步功能,且用户可手动同步操作 diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index c4f892f7f..a727cf916 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -26,9 +26,6 @@ class Projects::CreateService < ApplicationService end end @project - rescue => e - puts "create project service error: #{e.message}" - raise Error, e.message end private diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 4583838f1..800d5f420 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -33,18 +33,17 @@ class Repositories::CreateService < ApplicationService end repository end - rescue => e - puts "create repository service error: #{e.message}" - raise Error, e.message end private def create_gitea_repository if project.owner.is_a?(User) - @gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call + # @gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call + @gitea_repository = $gitea_client.post_user_repos({query: {token: user.gitea_token}, body: gitea_repository_params.to_json}) elsif project.owner.is_a?(Organization) - @gitea_repository = Gitea::Organization::Repository::CreateService.call(user.gitea_token, project.owner.login, gitea_repository_params) + # @gitea_repository = Gitea::Organization::Repository::CreateService.call(user.gitea_token, project.owner.login, gitea_repository_params) + @gitea_repository = $gitea_client.post_orgs_repos_by_org(project.owner.login, {query: {token: user.gitea_token}, body: gitea_repository_params.to_json}) end end diff --git a/app/views/admins/projects/index.html.erb b/app/views/admins/projects/index.html.erb index af93598c9..35d931b02 100644 --- a/app/views/admins/projects/index.html.erb +++ b/app/views/admins/projects/index.html.erb @@ -4,7 +4,7 @@