From 0427b991ec58068539bd3207fb6a3dcbccf19a74 Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 10:44:00 +0100 Subject: [PATCH 1/7] Avoid deleting a user if it has shared entities --- .../carto/api/organization_users_controller.rb | 4 ++-- app/controllers/carto/api/users_controller.rb | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/carto/api/organization_users_controller.rb b/app/controllers/carto/api/organization_users_controller.rb index 1681988744..10c59b460d 100644 --- a/app/controllers/carto/api/organization_users_controller.rb +++ b/app/controllers/carto/api/organization_users_controller.rb @@ -121,8 +121,8 @@ module Carto force_destroy = params[:force].present? if !force_destroy && @user.has_shared_entities? - error_message = "Can't delete @user. 'Has shared entities" - render_jsonp(error_message, 410 ) and return + error_message = "Can't delete user. Has shared entities" + render_jsonp(error_message, 401) and return end @user.set_force_destroy if force_destroy diff --git a/app/controllers/carto/api/users_controller.rb b/app/controllers/carto/api/users_controller.rb index bb2d7225ae..9ad389ce71 100644 --- a/app/controllers/carto/api/users_controller.rb +++ b/app/controllers/carto/api/users_controller.rb @@ -111,7 +111,13 @@ module Carto deletion_password_confirmation = params[:deletion_password_confirmation] if user.needs_password_confirmation? && !user.validate_old_password(deletion_password_confirmation) - render_jsonp({ message: "Error deleting user: #{PASSWORD_DOES_NOT_MATCH_MESSAGE}" }, 400) and return + render_jsonp({ message: "Error deleting user: #{PASSWORD_DOES_NOT_MATCH_MESSAGE}" }, 400) + return + end + + if user.has_shared_entities? + render_jsonp({ message: "User can't be deleted because there are shared entities. Please, unshare or delete them and try again." }, 401) + return end user.destroy_account From 4c73412a38ed55e316d31be929a681ee1106907e Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:22:16 +0100 Subject: [PATCH 2/7] Update NEWS.md and try to fix Rubocop --- Gemfile | 1 + Gemfile.lock | 1 + NEWS.md | 1 + 3 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index d47620a288..89cd388324 100644 --- a/Gemfile +++ b/Gemfile @@ -122,6 +122,7 @@ group :development, :test do gem 'rack' gem 'rb-readline' gem 'rubocop', '~> 1.12.0', require: false + gem 'rubocop-ast', '<= 1.17.0', require: false gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false gem 'rubocop-rspec', require: false diff --git a/Gemfile.lock b/Gemfile.lock index bdd12d1cb9..72b58fd8e9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -591,6 +591,7 @@ DEPENDENCIES rqrcode (~> 0.10.1) rspec-rails (= 2.12.0) rubocop (~> 1.12.0) + rubocop-ast (<= 1.17.0) rubocop-performance rubocop-rails rubocop-rspec diff --git a/NEWS.md b/NEWS.md index 73f56c11f4..db8a57670f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -36,6 +36,7 @@ Development - Update browser version checker to allow Firefox/100.0 [#16415](https://github.com/CartoDB/cartodb/pull/16415) - Update analysis schemas after giving required permissions on user promotion [#16390](https://github.com/CartoDB/cartodb/pull/16390) - Add timeout for SQL API exports [#16377](https://github.com/CartoDB/cartodb/pull/16377) +- Avoid deleting a user if it has shared entities [#16424](https://github.com/CartoDB/cartodb/pull/16424) - Remove all references to Spatial Data Catalog and Kepler GL maps in on-premises [#16293](https://github.com/CartoDB/cartodb/pull/16293) - Increase hard-limit of MAX_TABLES_PER_IMPORT [#16374](https://github.com/CartoDB/cartodb/pull/16374) - Guard code for vizjson users [#16267](https://github.com/CartoDB/cartodb/pull/16267) From aa105d2e66a05c27b600588897ea3935199bb5c7 Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:24:28 +0100 Subject: [PATCH 3/7] Install rubocop-ast in advance --- .github/workflows/rubocop.yml | 1 + Gemfile | 1 - Gemfile.lock | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index 88bf2116fe..a1a417a5c7 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -12,6 +12,7 @@ jobs: with: ruby-version: 2.5.8 - run: 'gem install activesupport -v 6.1.4.4' + - run: 'gem install rubocop-ast -v 1.17.0' - name: Rubocop linter uses: reviewdog/action-rubocop@v1 with: diff --git a/Gemfile b/Gemfile index 89cd388324..d47620a288 100644 --- a/Gemfile +++ b/Gemfile @@ -122,7 +122,6 @@ group :development, :test do gem 'rack' gem 'rb-readline' gem 'rubocop', '~> 1.12.0', require: false - gem 'rubocop-ast', '<= 1.17.0', require: false gem 'rubocop-performance', require: false gem 'rubocop-rails', require: false gem 'rubocop-rspec', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 72b58fd8e9..bdd12d1cb9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -591,7 +591,6 @@ DEPENDENCIES rqrcode (~> 0.10.1) rspec-rails (= 2.12.0) rubocop (~> 1.12.0) - rubocop-ast (<= 1.17.0) rubocop-performance rubocop-rails rubocop-rspec From 5aacecda09191b16a02a4dd5c61677b296c61985 Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:26:43 +0100 Subject: [PATCH 4/7] Install rubocop-rails in advance --- .github/workflows/rubocop.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index a1a417a5c7..571d69f8d5 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -13,6 +13,7 @@ jobs: ruby-version: 2.5.8 - run: 'gem install activesupport -v 6.1.4.4' - run: 'gem install rubocop-ast -v 1.17.0' + - run: 'gem install rubocop-rails -v 2.14.2' - name: Rubocop linter uses: reviewdog/action-rubocop@v1 with: From a418114def8350e119f56b0efea8522b50b0652d Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:30:14 +0100 Subject: [PATCH 5/7] Try another version --- .github/workflows/rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index 571d69f8d5..f93406e72c 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -13,7 +13,7 @@ jobs: ruby-version: 2.5.8 - run: 'gem install activesupport -v 6.1.4.4' - run: 'gem install rubocop-ast -v 1.17.0' - - run: 'gem install rubocop-rails -v 2.14.2' + - run: 'gem install rubocop-rails -v 2.9.1' - name: Rubocop linter uses: reviewdog/action-rubocop@v1 with: From c20e0ece0099b62d0dfe3eca3fce6ad1bed1ac3a Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:33:17 +0100 Subject: [PATCH 6/7] Try again --- .github/workflows/rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index f93406e72c..2a294e3e68 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -12,7 +12,7 @@ jobs: with: ruby-version: 2.5.8 - run: 'gem install activesupport -v 6.1.4.4' - - run: 'gem install rubocop-ast -v 1.17.0' + - run: 'gem install rubocop-ast -v 1.7.0' - run: 'gem install rubocop-rails -v 2.9.1' - name: Rubocop linter uses: reviewdog/action-rubocop@v1 From 30b4f939b1911842cdd8df020f4c2214486bc7c2 Mon Sep 17 00:00:00 2001 From: cgonzalez Date: Mon, 4 Jul 2022 11:42:33 +0100 Subject: [PATCH 7/7] Reset config --- .github/workflows/rubocop.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index 2a294e3e68..88bf2116fe 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -12,8 +12,6 @@ jobs: with: ruby-version: 2.5.8 - run: 'gem install activesupport -v 6.1.4.4' - - run: 'gem install rubocop-ast -v 1.7.0' - - run: 'gem install rubocop-rails -v 2.9.1' - name: Rubocop linter uses: reviewdog/action-rubocop@v1 with: