From 5637001b1675dc21c47bf11d3a147c620dfda50c Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 26 Aug 2021 17:51:46 +0800 Subject: [PATCH] add: fix some data task --- .../organizations/teams/update_service.rb | 2 +- lib/tasks/fix_some_error_data.rake | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 lib/tasks/fix_some_error_data.rake diff --git a/app/services/organizations/teams/update_service.rb b/app/services/organizations/teams/update_service.rb index b5b273d8a..275dad886 100644 --- a/app/services/organizations/teams/update_service.rb +++ b/app/services/organizations/teams/update_service.rb @@ -33,7 +33,7 @@ class Organizations::Teams::UpdateService < ApplicationService end def units_params - %w(admin owner).include?(team.authorize) ? %w(code issues pulls releases) : params[:unit_types] + %w(code issues pulls wiki releases) end def update_team(update_params) diff --git a/lib/tasks/fix_some_error_data.rake b/lib/tasks/fix_some_error_data.rake new file mode 100644 index 000000000..ad403a5b8 --- /dev/null +++ b/lib/tasks/fix_some_error_data.rake @@ -0,0 +1,45 @@ +desc "Fix Some Unstep Data" + +namespace :fix_some_error_data do + task org_member_and_project_member: :environment do + puts "======Begin: fix organization memberr======" + fix_org_count = 0 + OrganizationUser.find_each do |org_user| + org = org_user.organization + if org.team_users.where(user_id: org_user.user_id).blank? + Gitea::Organization::OrganizationUser::DeleteService.call(org_user.organization.gitea_token, org_user.organization.login, org_user&.user&.login) + org_user.destroy + fix_org_count += 1 + end + end + puts "======Count: #{fix_org_count}======" + puts "======End: fix organization member and project member======" + puts "======Begin: fix project member======" + fix_pro_count = 0 + Member.joins(project: :owner).where(users: {type: 'Organization'}).find_each do |member| + if member.project.owner.team_users.where(user_id: member.user_id).blank? + next + else + member.destroy + fix_pro_count += 1 + end + end + puts "======Count: #{fix_pro_count}======" + puts "======End: fix project member======" + end + + task open_full_gitea_team_authorize: :environment do + puts "======Begin: fix open full team authorize======" + team_count = 0 + Team.find_each do |team| + team.team_units.destroy_all + %w(code issues pulls wiki releases).each do |unit| + TeamUnit.build(team.organization_id, team.id, unit) + end + Gitea::Organization::Team::UpdateService.call(team&.organization&.gitea_token, team) + team_count += 1 + end + puts "======Count: #{team_count}======" + puts "======End: fix open full team authorize======" + end +end \ No newline at end of file