mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-08-03 16:04:30 +00:00
23 lines
827 B
Ruby
23 lines
827 B
Ruby
# frozen_string_literal: true
|
|
|
|
namespace :gitlab do
|
|
namespace :user_management do
|
|
desc "GitLab | User management | Update all users of a group with personal project limit to 0 and can_create_group to false"
|
|
task :disable_project_and_group_creation, [:group_id] => :environment do |t, args|
|
|
group = Group.find(args.group_id)
|
|
user_ids = Member.from_union([
|
|
group.hierarchy_members_with_inactive.select(:user_id),
|
|
group.descendant_project_members_with_inactive.select(:user_id)
|
|
], remove_duplicates: false).distinct.pluck(:user_id)
|
|
|
|
result = User.where(id: user_ids).update_all(projects_limit: 0, can_create_group: false)
|
|
|
|
if result == user_ids.count
|
|
puts Rainbow("Done").green
|
|
else
|
|
puts Rainbow("Something went wrong").red
|
|
end
|
|
end
|
|
end
|
|
end
|