mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-20 19:55:56 +08:00
fix: mirror project permission error
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
class Projects::MigrateService < ApplicationService
|
||||
attr_reader :user, :params
|
||||
attr_accessor :project
|
||||
|
||||
def initialize(user, params)
|
||||
@user = user
|
||||
@@ -11,6 +12,7 @@ class Projects::MigrateService < ApplicationService
|
||||
if @project.save!
|
||||
ProjectUnit.init_types(@project.id)
|
||||
Project.update_mirror_projects_count!
|
||||
@project.set_owner_permission(user)
|
||||
Repositories::MigrateService.new(user, @project, repository_params).call
|
||||
else
|
||||
#
|
||||
|
||||
@@ -33,9 +33,8 @@ class Projects::TransferService < ApplicationService
|
||||
|
||||
def update_visit_teams
|
||||
if new_owner.is_a?(Organization)
|
||||
new_owner.teams.where(includes_all_project: true).each do |team|
|
||||
TeamProject.build(new_owner.id, team.id, project.id)
|
||||
end
|
||||
# 为包含组织所有项目的团队创建项目访问权限
|
||||
new_owner.build_permit_team_projects(project.id)
|
||||
else
|
||||
project.team_projects.each(&:destroy!)
|
||||
end
|
||||
|
||||
@@ -15,6 +15,7 @@ class Repositories::CreateService < ApplicationService
|
||||
create_gitea_repository
|
||||
sync_project
|
||||
sync_repository
|
||||
set_owner_permission(user)
|
||||
# if project.project_type == "common"
|
||||
# chain_params = {
|
||||
# type: "create",
|
||||
@@ -44,19 +45,9 @@ class Repositories::CreateService < ApplicationService
|
||||
@gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call
|
||||
elsif project.owner.is_a?(Organization)
|
||||
@gitea_repository = Gitea::Organization::Repository::CreateService.call(user.gitea_token, project.owner.login, gitea_repository_params)
|
||||
project.owner.teams.each do |team|
|
||||
next unless team.includes_all_project
|
||||
TeamProject.build(project.user_id, team.id, project.id)
|
||||
end
|
||||
create_manager_member
|
||||
end
|
||||
end
|
||||
|
||||
def create_manager_member
|
||||
return if project.owner.is_owner?(user.id)
|
||||
project.add_member!(user.id, "Manager")
|
||||
end
|
||||
|
||||
def sync_project
|
||||
if gitea_repository
|
||||
project.update_columns(
|
||||
|
||||
Reference in New Issue
Block a user