diff options
Diffstat (limited to 'lib/tasks/gitlab/user_management.rake')
-rw-r--r-- | lib/tasks/gitlab/user_management.rake | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/tasks/gitlab/user_management.rake b/lib/tasks/gitlab/user_management.rake new file mode 100644 index 00000000000..f47e549e795 --- /dev/null +++ b/lib/tasks/gitlab/user_management.rake @@ -0,0 +1,13 @@ +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) + + result = User.where(id: group.direct_and_indirect_users_with_inactive.select(:id)).update_all(projects_limit: 0, can_create_group: false) + ids_count = group.direct_and_indirect_users_with_inactive.count + puts "Done".color(:green) if result == ids_count + puts "Something went wrong".color(:red) if result != ids_count + end + end +end |