From 45931f86bee93d39cb9cea454412b9523d64bd08 Mon Sep 17 00:00:00 2001 From: Jarek Radosz <jradosz@gmail.com> Date: Wed, 3 Feb 2021 18:12:22 +0100 Subject: [PATCH] DEV: Remove bulk group admin endpoints (#11949) Originally added in 47e25648dfa200ac266a6311ba585827638d2bcc. Looks like all related code was removed in c82b2dcc24c06634e64a6c388c18a815f039c608 and b76731d722c099f64446f18fbf92026be7cfd225. --- app/controllers/admin/groups_controller.rb | 35 ----------------- config/locales/client.en.yml | 4 -- config/routes.rb | 3 -- spec/requests/admin/groups_controller_spec.rb | 38 ------------------- 4 files changed, 80 deletions(-) diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb index eba7042ba10..3c84ff92981 100644 --- a/app/controllers/admin/groups_controller.rb +++ b/app/controllers/admin/groups_controller.rb @@ -1,41 +1,6 @@ # frozen_string_literal: true class Admin::GroupsController < Admin::AdminController - def bulk - end - - def bulk_perform - group = Group.find_by(id: params[:group_id].to_i) - raise Discourse::NotFound unless group - users_added = 0 - - users = (params[:users] || []).map { |user| user.downcase!; user } - valid_emails = {} - valid_usernames = {} - - valid_users = User.joins(:user_emails) - .where("username_lower IN (:users) OR lower(user_emails.email) IN (:users)", users: users) - .pluck(:id, :username_lower, :"user_emails.email") - - valid_users.map! do |id, username_lower, email| - valid_emails[email] = valid_usernames[username_lower] = id - id - end - - valid_users.uniq! - invalid_users = users.reject { |u| valid_emails[u] || valid_usernames[u] } - group.bulk_add(valid_users) if valid_users.present? - users_added = valid_users.count - - response = success_json.merge(users_not_added: invalid_users) - - if users_added > 0 - response[:message] = I18n.t('groups.success.bulk_add', count: users_added) - end - - render json: response - end - def create guardian.ensure_can_create_group! diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index d764896ab30..f3f023fb4de 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -3752,10 +3752,6 @@ en: available: "Group name is available" not_available: "Group name is not available" blank: "Group name cannot be blank" - bulk_add: - title: "Bulk Add to Group" - complete_users_not_added: "These users were not added (make sure they have an account):" - paste: "Paste a list of usernames or emails, one per line:" add_members: as_owner: "Set user(s) as owner(s) of this group" manage: diff --git a/config/routes.rb b/config/routes.rb index dd704accb53..222505a31d9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -100,9 +100,6 @@ Discourse::Application.routes.draw do end resources :groups, except: [:create], constraints: AdminConstraint.new do collection do - get 'bulk' - get 'bulk-complete' => 'groups#bulk' - put 'bulk' => 'groups#bulk_perform' put "automatic_membership_count" => "groups#automatic_membership_count" end end diff --git a/spec/requests/admin/groups_controller_spec.rb b/spec/requests/admin/groups_controller_spec.rb index 03a606e2367..c0053113e47 100644 --- a/spec/requests/admin/groups_controller_spec.rb +++ b/spec/requests/admin/groups_controller_spec.rb @@ -237,44 +237,6 @@ RSpec.describe Admin::GroupsController do end end - describe "#bulk_perform" do - fab!(:group) do - Fabricate(:group, - name: "test", - primary_group: true, - title: 'WAT', - grant_trust_level: 3 - ) - end - - fab!(:user) { Fabricate(:user, trust_level: 2) } - fab!(:user2) { Fabricate(:user, trust_level: 4) } - - it "can assign users to a group by email or username" do - Jobs.run_immediately! - - put "/admin/groups/bulk.json", params: { - group_id: group.id, users: [user.username.upcase, user2.email, 'doesnt_exist'] - } - - expect(response.status).to eq(200) - - user.reload - expect(user.primary_group).to eq(group) - expect(user.title).to eq("WAT") - expect(user.trust_level).to eq(3) - - user2.reload - expect(user2.primary_group).to eq(group) - expect(user2.title).to eq("WAT") - expect(user2.trust_level).to eq(4) - - json = response.parsed_body - expect(json['message']).to eq("2 users have been added to the group.") - expect(json['users_not_added'][0]).to eq("doesnt_exist") - end - end - context "#destroy" do it 'should return the right response for an invalid group_id' do max_id = Group.maximum(:id).to_i