From 2d63fe5fadb50709d41f912792ae6803f3464c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Wed, 6 Nov 2024 17:37:08 +0100 Subject: [PATCH] Allow admins to manually verify users (#341) * add system forms * add commands specs * fix command * deface participants page * add modal * render authorization modal * authorize/unauthorize * handle conflicts and overrides * add authorization & helper specs * add permissions and action log entries * add controller specs * add adminlog specs * fix ffi * add system specs * add reason to forcer verification * readme * readme * fix specs * fix locales * fix config form * optimize styles spec * add locales to allowed controllers * fix spec --- Gemfile.lock | 194 +++++++++--------- README.md | 15 ++ .../content_blocks/map_cell.rb | 4 - .../system/register_organization_override.rb | 29 +++ .../system/update_organization_override.rb | 35 ++++ .../check_login_authorizations.rb | 2 +- .../admin/admin_authorizations_controller.rb | 122 +++++++++++ .../system/organization_form_override.rb | 34 +++ .../decidim_awesome/admin/config_form.rb | 15 +- .../decidim/decidim_awesome/map_helper.rb | 54 ++--- .../index/add_modal.html.erb.deface | 3 + .../index/add_td.html.erb.deface | 5 + .../index/add_th.html.erb.deface | 5 + .../add_awesome_config.html.erb.deface | 9 + .../decidim_awesome/admin/verifications.js | 47 +++++ .../decidim_awesome/awesome_admin_global.js | 1 + .../decidim_awesome/admin/verifications.scss | 97 +++++++++ .../decidim_awesome/awesome_admin_global.scss | 1 + .../decidim_awesome/admin/permissions.rb | 53 ++++- .../admin_log/component_presenter_override.rb | 8 +- .../admin_log/user_presenter_override.rb | 46 +++++ .../admin_authorizations/_callout.html.erb | 3 + .../authorization.html.erb | 20 ++ .../admin_authorizations/conflict.html.erb | 5 + .../admin/admin_authorizations/edit.html.erb | 41 ++++ .../_participants_td.html.erb | 25 +++ .../_participants_th.html.erb | 1 + .../_verification_modal.html.erb | 15 ++ .../_admin_allowed_authorizations.html.erb | 5 + config/i18n-tasks.yml | 1 + config/locales/en.yml | 49 +++++ examples/manual_verifications_1.png | Bin 0 -> 78635 bytes examples/manual_verifications_2.png | Bin 0 -> 84439 bytes examples/manual_verifications_3.png | Bin 0 -> 86699 bytes examples/manual_verifications_system.png | Bin 0 -> 40335 bytes lib/decidim/decidim_awesome/admin_engine.rb | 1 + lib/decidim/decidim_awesome/authorizator.rb | 34 +++ lib/decidim/decidim_awesome/awesome.rb | 8 + .../decidim_awesome/awesome_helpers.rb | 9 +- lib/decidim/decidim_awesome/engine.rb | 9 + lib/decidim/decidim_awesome/test/factories.rb | 4 - .../decidim_awesome/test/initializer.rb | 1 + .../shared_examples/custom_styles_examples.rb | 20 ++ .../test/shared_examples/summary_examples.rb | 17 +- spec/awesome_summary_spec.rb | 1 + .../system/register_organization_spec.rb | 63 ++++++ .../system/update_organization_spec.rb | 71 +++++++ .../admin_authorizations_controller_spec.rb | 172 ++++++++++++++++ spec/controllers/forced_authorization_spec.rb | 98 +++++++++ spec/factories.rb | 4 + spec/helpers/awesome_helpers_spec.rb | 58 +++++- spec/lib/authorizator_spec.rb | 72 +++++++ spec/permissions/admin/permissions_spec.rb | 67 +++++- .../admin_log/user_presenter_spec.rb | 71 +++++++ .../system/admin/admin_accountability_spec.rb | 2 +- .../admin/admin_manages_verifications_spec.rb | 4 +- .../admin/admins_authorizations_admin_spec.rb | 163 +++++++++++++++ .../admins_authorizations_system_spec.rb | 84 ++++++++ spec/system/admin/custom_styles_spec.rb | 22 +- spec/system/public/custom_styles_spec.rb | 22 +- 60 files changed, 1816 insertions(+), 205 deletions(-) create mode 100644 app/commands/concerns/decidim/decidim_awesome/system/register_organization_override.rb create mode 100644 app/commands/concerns/decidim/decidim_awesome/system/update_organization_override.rb create mode 100644 app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb create mode 100644 app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb create mode 100644 app/overrides/decidim/admin/officializations/index/add_modal.html.erb.deface create mode 100644 app/overrides/decidim/admin/officializations/index/add_td.html.erb.deface create mode 100644 app/overrides/decidim/admin/officializations/index/add_th.html.erb.deface create mode 100644 app/overrides/decidim/system/organizations/_advanced_settings/add_awesome_config.html.erb.deface create mode 100644 app/packs/src/decidim/decidim_awesome/admin/verifications.js create mode 100644 app/packs/stylesheets/decidim/decidim_awesome/admin/verifications.scss create mode 100644 app/presenters/decidim/decidim_awesome/admin_log/user_presenter_override.rb create mode 100644 app/views/decidim/decidim_awesome/admin/admin_authorizations/_callout.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/admin_authorizations/authorization.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/officializations/_participants_td.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/officializations/_participants_th.html.erb create mode 100644 app/views/decidim/decidim_awesome/admin/officializations/_verification_modal.html.erb create mode 100644 app/views/decidim/decidim_awesome/system/organizations/_admin_allowed_authorizations.html.erb create mode 100644 examples/manual_verifications_1.png create mode 100644 examples/manual_verifications_2.png create mode 100644 examples/manual_verifications_3.png create mode 100644 examples/manual_verifications_system.png create mode 100644 lib/decidim/decidim_awesome/authorizator.rb create mode 100644 spec/commands/system/register_organization_spec.rb create mode 100644 spec/commands/system/update_organization_spec.rb create mode 100644 spec/controllers/admin/admin_authorizations_controller_spec.rb create mode 100644 spec/controllers/forced_authorization_spec.rb create mode 100644 spec/lib/authorizator_spec.rb create mode 100644 spec/presenters/admin_log/user_presenter_spec.rb create mode 100644 spec/system/admin/admins_authorizations_admin_spec.rb create mode 100644 spec/system/admin/admins_authorizations_system_spec.rb diff --git a/Gemfile.lock b/Gemfile.lock index 29ab2f1e0..2fbf84c6d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,40 +10,40 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) + actioncable (6.1.7.10) + actionpack (= 6.1.7.10) + activesupport (= 6.1.7.10) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) + actionmailbox (6.1.7.10) + actionpack (= 6.1.7.10) + activejob (= 6.1.7.10) + activerecord (= 6.1.7.10) + activestorage (= 6.1.7.10) + activesupport (= 6.1.7.10) mail (>= 2.7.1) - actionmailer (6.1.7.8) - actionpack (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activesupport (= 6.1.7.8) + actionmailer (6.1.7.10) + actionpack (= 6.1.7.10) + actionview (= 6.1.7.10) + activejob (= 6.1.7.10) + activesupport (= 6.1.7.10) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.8) - actionview (= 6.1.7.8) - activesupport (= 6.1.7.8) + actionpack (6.1.7.10) + actionview (= 6.1.7.10) + activesupport (= 6.1.7.10) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.8) - actionpack (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) + actiontext (6.1.7.10) + actionpack (= 6.1.7.10) + activerecord (= 6.1.7.10) + activestorage (= 6.1.7.10) + activesupport (= 6.1.7.10) nokogiri (>= 1.8.5) - actionview (6.1.7.8) - activesupport (= 6.1.7.8) + actionview (6.1.7.10) + activesupport (= 6.1.7.10) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -51,28 +51,28 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (6.1.7.8) - activesupport (= 6.1.7.8) + activejob (6.1.7.10) + activesupport (= 6.1.7.10) globalid (>= 0.3.6) - activemodel (6.1.7.8) - activesupport (= 6.1.7.8) - activerecord (6.1.7.8) - activemodel (= 6.1.7.8) - activesupport (= 6.1.7.8) - activestorage (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activesupport (= 6.1.7.8) + activemodel (6.1.7.10) + activesupport (= 6.1.7.10) + activerecord (6.1.7.10) + activemodel (= 6.1.7.10) + activesupport (= 6.1.7.10) + activestorage (6.1.7.10) + actionpack (= 6.1.7.10) + activejob (= 6.1.7.10) + activerecord (= 6.1.7.10) + activesupport (= 6.1.7.10) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.8) + activesupport (6.1.7.10) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - acts_as_list (1.2.2) + acts_as_list (1.2.3) activerecord (>= 6.1) activesupport (>= 6.1) addressable (2.8.7) @@ -90,7 +90,7 @@ GEM smart_properties bigdecimal (3.1.8) bindex (0.8.1) - bootsnap (1.18.3) + bootsnap (1.18.4) msgpack (~> 1.2) brakeman (5.4.1) browser (2.7.1) @@ -128,14 +128,15 @@ GEM actionpack (>= 5.0) cells (>= 4.1.6, < 5.0.0) charlock_holmes (0.7.9) - childprocess (5.0.0) + childprocess (5.1.0) + logger (~> 1.5) commonmarker (0.23.10) concurrent-ruby (1.3.4) crack (1.0.0) bigdecimal rexml crass (1.0.6) - css_parser (1.17.1) + css_parser (1.19.1) addressable csv (3.3.0) date_validator (0.12.0) @@ -330,13 +331,13 @@ GEM actionmailer (>= 5.0) devise (>= 4.6) diff-lcs (1.5.1) - diffy (3.4.2) + diffy (3.4.3) digest (3.1.1) doc2text (0.4.7) nokogiri (>= 1.13.2, < 1.17.0) rubyzip (~> 2.3.0) docile (1.4.1) - doorkeeper (5.7.1) + doorkeeper (5.8.0) railties (>= 5) doorkeeper-i18n (4.0.1) erb_lint (0.4.0) @@ -350,28 +351,29 @@ GEM temple erubi (1.13.0) escape_utils (1.2.2) - excon (0.111.0) + excon (1.1.1) extended-markdown-filter (0.7.0) html-pipeline (~> 2.9) factory_bot (6.5.0) activesupport (>= 5.0.0) - factory_bot_rails (6.4.3) - factory_bot (~> 6.4) + factory_bot_rails (6.4.4) + factory_bot (~> 6.5) railties (>= 5.0.0) - faker (3.4.2) + faker (3.5.1) i18n (>= 1.8.11, < 2) - faraday (2.10.1) - faraday-net_http (>= 2.0, < 3.2) + faraday (2.12.0) + faraday-net_http (>= 2.0, < 3.4) + json logger - faraday-net_http (3.1.1) + faraday-net_http (3.3.0) net-http ffi (1.17.0) file_validators (3.0.0) activemodel (>= 3.2) mime-types (>= 1.0) - fog-core (2.5.0) + fog-core (2.6.0) builder - excon (~> 0.71) + excon (~> 1.0) formatador (>= 0.2, < 2.0) mime-types fog-local (0.8.0) @@ -406,7 +408,7 @@ GEM activesupport (>= 2) nokogiri (>= 1.4) htmlentities (4.3.4) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) i18n-tasks (1.0.14) activesupport (>= 4.0.2) @@ -428,8 +430,8 @@ GEM invisible_captcha (0.13.0) rails (>= 3.2.0) io-console (0.7.2) - json (2.7.2) - jwt (2.8.2) + json (2.7.5) + jwt (2.9.3) base64 kaminari (1.2.2) activesupport (>= 4.1.0) @@ -456,8 +458,8 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.0) - loofah (2.22.0) + logger (1.6.1) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -468,13 +470,14 @@ GEM marcel (1.0.4) matrix (0.4.2) method_source (1.1.0) - mime-types (3.5.2) + mime-types (3.6.0) + logger mime-types-data (~> 3.2015) - mime-types-data (3.2024.0806) + mime-types-data (3.2024.1001) mini_magick (4.13.2) mini_mime (1.1.5) - minitest (5.24.1) - msgpack (1.7.2) + minitest (5.25.1) + msgpack (1.7.3) multi_xml (0.6.0) net-http (0.4.1) uri @@ -488,7 +491,7 @@ GEM timeout net-smtp (0.3.4) net-protocol - nio4r (2.7.3) + nio4r (2.7.4) nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) oauth (1.1.0) @@ -510,14 +513,15 @@ GEM rack-protection omniauth-facebook (5.0.0) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (1.1.2) - jwt (>= 2.0) + omniauth-google-oauth2 (1.2.0) + jwt (>= 2.9) oauth2 (~> 2.0) omniauth (~> 2.0) omniauth-oauth2 (~> 1.8) - omniauth-oauth (1.2.0) + omniauth-oauth (1.2.1) oauth omniauth (>= 1.0, < 3) + rack (>= 1.6.2, < 4) omniauth-oauth2 (1.8.0) oauth2 (>= 1.4, < 3) omniauth (~> 2.0) @@ -533,8 +537,8 @@ GEM paper_trail (12.3.0) activerecord (>= 5.2) request_store (~> 1.1) - parallel (1.25.1) - parallel_tests (4.7.1) + parallel (1.26.3) + parallel_tests (4.7.2) parallel parser (3.3.5.0) ast (~> 2.4.1) @@ -544,9 +548,9 @@ GEM activerecord (>= 6.1) activesupport (>= 6.1) polyglot (0.3.5) - premailer (1.23.0) + premailer (1.27.0) addressable - css_parser (>= 1.12.0) + css_parser (>= 1.19.0) htmlentities (>= 4.0.0) premailer-rails (1.12.0) actionmailer (>= 3) @@ -555,10 +559,10 @@ GEM psych (4.0.6) stringio public_suffix (6.0.1) - puma (6.4.2) + puma (6.4.3) nio4r (~> 2.0) racc (1.8.1) - rack (2.2.9) + rack (2.2.10) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (1.1.1) @@ -570,20 +574,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (6.1.7.8) - actioncable (= 6.1.7.8) - actionmailbox (= 6.1.7.8) - actionmailer (= 6.1.7.8) - actionpack (= 6.1.7.8) - actiontext (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activemodel (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) + rails (6.1.7.10) + actioncable (= 6.1.7.10) + actionmailbox (= 6.1.7.10) + actionmailer (= 6.1.7.10) + actionpack (= 6.1.7.10) + actiontext (= 6.1.7.10) + actionview (= 6.1.7.10) + activejob (= 6.1.7.10) + activemodel (= 6.1.7.10) + activerecord (= 6.1.7.10) + activestorage (= 6.1.7.10) + activesupport (= 6.1.7.10) bundler (>= 1.15.0) - railties (= 6.1.7.8) + railties (= 6.1.7.10) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -599,9 +603,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) + railties (6.1.7.10) + actionpack (= 6.1.7.10) + activesupport (= 6.1.7.10) method_source rake (>= 12.2) thor (~> 1.0) @@ -624,8 +628,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.1) - strscan + rexml (3.3.9) rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -633,7 +636,7 @@ GEM rspec-cells (0.3.9) cells (>= 4.0.0, < 6.0.0) rspec-rails (>= 3.0.0, < 6.2.0) - rspec-core (3.13.1) + rspec-core (3.13.2) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) @@ -696,7 +699,7 @@ GEM rb-inotify (~> 0.9, >= 0.9.7) sassc (2.4.0) ffi (~> 1.9) - selenium-webdriver (4.25.0) + selenium-webdriver (4.26.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -738,7 +741,7 @@ GEM temple (0.10.3) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.3.1) + thor (1.3.2) tilt (2.4.0) timeout (0.4.1) tzinfo (2.0.6) @@ -746,7 +749,7 @@ GEM uber (0.1.0) unicode-display_width (2.6.0) uniform_notifier (1.16.0) - uri (0.13.0) + uri (0.13.1) valid_email2 (4.0.6) activemodel (>= 3.2) mail (~> 2.5) @@ -777,14 +780,15 @@ GEM websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - wicked_pdf (2.8.1) + wicked_pdf (2.8.2) activesupport + ostruct wisper (2.0.1) wisper-rspec (1.1.0) wkhtmltopdf-binary (0.12.6.8) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.17) + zeitwerk (2.6.18) PLATFORMS x86_64-linux diff --git a/README.md b/README.md index e0dc6d097..e5cd83280 100644 --- a/README.md +++ b/README.md @@ -410,6 +410,21 @@ Decidim::DecidimAwesome.configure do |config| config.force_authorization_allowed_controller_names = %w(account pages homepage) ``` +#### 21. Manual verifications + +The admin will be allowed to manually authorize users using the methods specified in the `/system` admin section. +Currently, only form based handlers are supported (Direct methods). +Admins can manually override or verify users in the participants list but they still have to fulfill the requirements of the verifier (although they will be allowed to force the authorization even if some of them fails). + +Admin logs are also created in each action for accountability. + +System configuration: + +![System manual authorization config](examples/manual_verifications_system.png) +![List of authorizations](examples/manual_verifications_1.png) +![Removing an authorization](examples/manual_verifications_2.png) +![Creating an authorization](examples/manual_verifications_3.png) + #### To be continued... We're not done! Please check the [issues](/decidim-ice/decidim-module-decidim_awesome/issues) (and participate) to see what's on our mind diff --git a/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb b/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb index 49cf34c65..7414ab57b 100644 --- a/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +++ b/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb @@ -46,11 +46,7 @@ def global_map_components true when :proposals component.settings.geocoding_enabled - else - false end - else - false end end end diff --git a/app/commands/concerns/decidim/decidim_awesome/system/register_organization_override.rb b/app/commands/concerns/decidim/decidim_awesome/system/register_organization_override.rb new file mode 100644 index 000000000..8036951ff --- /dev/null +++ b/app/commands/concerns/decidim/decidim_awesome/system/register_organization_override.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Decidim + module DecidimAwesome + module System + module RegisterOrganizationOverride + extend ActiveSupport::Concern + + included do + private + + alias_method :decidim_create_organization, :create_organization + + def create_organization + @organization = decidim_create_organization + if form.clean_awesome_admins_available_authorizations.present? + AwesomeConfig.create!( + var: :admins_available_authorizations, + organization: @organization, + value: form.clean_awesome_admins_available_authorizations + ) + end + @organization + end + end + end + end + end +end diff --git a/app/commands/concerns/decidim/decidim_awesome/system/update_organization_override.rb b/app/commands/concerns/decidim/decidim_awesome/system/update_organization_override.rb new file mode 100644 index 000000000..ce5d2b337 --- /dev/null +++ b/app/commands/concerns/decidim/decidim_awesome/system/update_organization_override.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Decidim + module DecidimAwesome + module System + module UpdateOrganizationOverride + extend ActiveSupport::Concern + + included do + private + + alias_method :decidim_original_save_organization, :save_organization + + def save_organization + decidim_original_save_organization + if form.clean_awesome_admins_available_authorizations.present? + add_awesome_configs! + elsif awesome_config&.persisted? + awesome_config.destroy! + end + end + + def add_awesome_configs! + awesome_config.value = form.clean_awesome_admins_available_authorizations + awesome_config.save! + end + + def awesome_config + @awesome_config ||= AwesomeConfig.find_or_initialize_by(var: :admins_available_authorizations, organization: @organization) + end + end + end + end + end +end diff --git a/app/controllers/concerns/decidim/decidim_awesome/check_login_authorizations.rb b/app/controllers/concerns/decidim/decidim_awesome/check_login_authorizations.rb index a375e0123..c3ef6d065 100644 --- a/app/controllers/concerns/decidim/decidim_awesome/check_login_authorizations.rb +++ b/app/controllers/concerns/decidim/decidim_awesome/check_login_authorizations.rb @@ -53,7 +53,7 @@ def current_authorizations end def allowed_controllers - %w(required_authorizations authorizations upload_validations timeouts editor_images) + awesome_config[:force_authorization_allowed_controller_names].to_a + %w(required_authorizations authorizations upload_validations timeouts editor_images locales) + awesome_config[:force_authorization_allowed_controller_names].to_a end end end diff --git a/app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb b/app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb new file mode 100644 index 000000000..a9ad66ace --- /dev/null +++ b/app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb @@ -0,0 +1,122 @@ +# frozen_string_literal: true + +module Decidim + module DecidimAwesome + module Admin + class AdminAuthorizationsController < DecidimAwesome::Admin::ApplicationController + include NeedsAwesomeConfig + + layout false + helper_method :user, :authorization, :workflow, :handler, :conflict + # overwrite original rescue_from to ensure we print messages from ajax methods + rescue_from Decidim::ActionForbidden, with: :json_error + + before_action do + enforce_permission_to :edit_config, :admins_available_authorizations, handler: workflow.name + end + + def edit + render "authorization" if authorization + end + + def update + if conflict + message = render_to_string("conflict") + else + message = render_to_string(partial: "callout", locals: { i18n_key: "user_authorized", klass: "success" }) + Decidim::Verifications::AuthorizeUser.call(handler, current_organization) do + on(:transferred) do |transfer| + message += render_to_string(partial: "callout", locals: { i18n_key: "authorization_transferred", klass: "success" }) if transfer.records.any? + end + on(:invalid) do + if force_verification.present? + create_forced_authorization + else + message = render_to_string(partial: "callout", locals: { i18n_key: "user_not_authorized", klass: "alert" }) + message += render_to_string("edit", locals: { with_override: true }) + end + end + on(:ok) do + Decidim::ActionLogger.log("admin_creates_authorization", current_user, user, nil, user_id: user.id, handler: workflow.name, handler_name: workflow.fullname) + end + end + end + + render json: { + message:, + granted: granted?, + userId: user.id, + handler: workflow.name + } + end + + def destroy + message = if destroy_authorization + render_to_string(partial: "callout", locals: { i18n_key: "authorization_destroyed", klass: "success" }) + else + render_to_string(partial: "callout", locals: { i18n_key: "authorization_not_destroyed", klass: "alert" }) + end + + render json: { + message:, + granted: granted?, + userId: user.id, + handler: workflow.name + } + end + + private + + def create_forced_authorization + Decidim::Authorization.create_or_update_from(handler) + Decidim::ActionLogger.log("admin_forces_authorization", current_user, user, nil, handler: workflow.name, user_id: user.id, handler_name: workflow.fullname, + reason: force_verification) + end + + def destroy_authorization + if authorization&.destroy + Decidim::ActionLogger.log("admin_destroys_authorization", current_user, user, nil, user_id: user.id, handler: workflow.name, handler_name: workflow.fullname) + end + end + + def json_error(exception) + render json: render_to_string(partial: "callout", locals: { message: exception.message, klass: "alert" }), status: :unprocessable_entity + end + + def user + @user ||= Decidim::User.find(params[:id]) + end + + def authorization + @authorization ||= Decidim::Authorization.where.not(granted_at: nil).find_by(user:, name: workflow.name) + end + + def granted? + authorization&.reload.present? + rescue ActiveRecord::RecordNotFound + false + end + + def workflow + @workflow ||= Decidim::Verifications.find_workflow_manifest(params[:handler]) + end + + def handler + @handler ||= Decidim::AuthorizationHandler.handler_for(params[:handler], handler_params) + end + + def conflict + @conflict ||= Decidim::Authorization.find_by(unique_id: handler.unique_id) + end + + def handler_params + (params[:authorization_handler] || {}).merge(user:) + end + + def force_verification + @force_verification ||= params[:force_verification].to_s.strip.presence + end + end + end + end +end diff --git a/app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb b/app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb new file mode 100644 index 000000000..85e4e795c --- /dev/null +++ b/app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Decidim + module DecidimAwesome + module System + module OrganizationFormOverride + extend ActiveSupport::Concern + + included do + alias_method :decidim_original_map_model, :map_model + + attribute :awesome_admins_available_authorizations, Array[String] + + def map_model(model) + decidim_original_map_model(model) + map_awesome_configs(model) + end + + def clean_awesome_admins_available_authorizations + return unless awesome_admins_available_authorizations + + awesome_admins_available_authorizations.select(&:present?) + end + + private + + def map_awesome_configs(organization) + self.awesome_admins_available_authorizations = Decidim::DecidimAwesome::AwesomeConfig.find_by(var: :admins_available_authorizations, organization:)&.value + end + end + end + end + end +end diff --git a/app/forms/decidim/decidim_awesome/admin/config_form.rb b/app/forms/decidim/decidim_awesome/admin/config_form.rb index 14301abce..7e79f0cc2 100644 --- a/app/forms/decidim/decidim_awesome/admin/config_form.rb +++ b/app/forms/decidim/decidim_awesome/admin/config_form.rb @@ -49,9 +49,7 @@ class ConfigForm < Decidim::Form validates :validate_body_min_length, presence: true, numericality: { greater_than_or_equal_to: 0 } validates :validate_body_max_caps_percent, presence: true, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 100 } validates :validate_body_max_marks_together, presence: true, numericality: { greater_than_or_equal_to: 1 } - validates :force_authorization_after_login, inclusion: { in: lambda { |form| - form.current_organization.available_authorizations & Decidim.authorization_workflows.map(&:name) - } } + validate :force_authorization_after_login_is_valid # TODO: validate non general admins are here def self.from_params(params, additional_params = {}) @@ -136,6 +134,17 @@ def sanitize_labels! code end end + + private + + def force_authorization_after_login_is_valid + return if force_authorization_after_login.blank? + + invalid = force_authorization_after_login - (current_organization.available_authorizations & Decidim.authorization_workflows.map(&:name)) + return if invalid.empty? + + errors.add(:force_authorization_after_login, :invalid) + end end end end diff --git a/app/helpers/decidim/decidim_awesome/map_helper.rb b/app/helpers/decidim/decidim_awesome/map_helper.rb index 15367ebe7..8159a36b2 100644 --- a/app/helpers/decidim/decidim_awesome/map_helper.rb +++ b/app/helpers/decidim/decidim_awesome/map_helper.rb @@ -20,32 +20,34 @@ def awesome_map_for(components, &) end html_options = { - "class" => "awesome-map", - "id" => "awesome-map", - "data-components" => components.map do |component| - { - id: component.id, - type: component.manifest.name, - name: translated_attribute(component.name), - url: Decidim::EngineRouter.main_proxy(component).root_path, - amendments: component.manifest.name == :proposals ? Decidim::Proposals::Proposal.where(component:).only_emendations.count : 0 - } - end.to_json, - "data-hide-controls" => settings_source.try(:hide_controls), - "data-collapsed" => global_settings.collapse, - "data-truncate" => global_settings.truncate || 255, - "data-map-center" => global_settings.map_center, - "data-map-zoom" => global_settings.map_zoom || 8, - "data-menu-merge-components" => global_settings.menu_merge_components, - "data-menu-amendments" => global_settings.menu_amendments, - "data-menu-meetings" => global_settings.menu_meetings, - "data-menu-categories" => global_settings.menu_categories, - "data-menu-hashtags" => global_settings.menu_hashtags, - "data-show-not-answered" => step_settings&.show_not_answered, - "data-show-accepted" => step_settings&.show_accepted, - "data-show-withdrawn" => step_settings&.show_withdrawn, - "data-show-evaluating" => step_settings&.show_evaluating, - "data-show-rejected" => step_settings&.show_rejected + class: "awesome-map", + id: "awesome-map", + data: { + "components" => components.map do |component| + { + id: component.id, + type: component.manifest.name, + name: translated_attribute(component.name), + url: Decidim::EngineRouter.main_proxy(component).root_path, + amendments: component.manifest.name == :proposals ? Decidim::Proposals::Proposal.where(component:).only_emendations.count : 0 + } + end.to_json, + "hide-controls" => settings_source.try(:hide_controls), + "collapsed" => global_settings.collapse, + "truncate" => global_settings.truncate || 255, + "map-center" => global_settings.map_center, + "map-zoom" => global_settings.map_zoom || 8, + "menu-merge-components" => global_settings.menu_merge_components, + "menu-amendments" => global_settings.menu_amendments, + "menu-meetings" => global_settings.menu_meetings, + "menu-categories" => global_settings.menu_categories, + "menu-hashtags" => global_settings.menu_hashtags, + "show-not-answered" => step_settings&.show_not_answered, + "show-accepted" => step_settings&.show_accepted, + "show-withdrawn" => step_settings&.show_withdrawn, + "show-evaluating" => step_settings&.show_evaluating, + "show-rejected" => step_settings&.show_rejected + } } content_tag(:div, html_options) do diff --git a/app/overrides/decidim/admin/officializations/index/add_modal.html.erb.deface b/app/overrides/decidim/admin/officializations/index/add_modal.html.erb.deface new file mode 100644 index 000000000..8ed337947 --- /dev/null +++ b/app/overrides/decidim/admin/officializations/index/add_modal.html.erb.deface @@ -0,0 +1,3 @@ + + +<%= render "decidim/decidim_awesome/admin/officializations/verification_modal" %> diff --git a/app/overrides/decidim/admin/officializations/index/add_td.html.erb.deface b/app/overrides/decidim/admin/officializations/index/add_td.html.erb.deface new file mode 100644 index 000000000..6ba2d2d3e --- /dev/null +++ b/app/overrides/decidim/admin/officializations/index/add_td.html.erb.deface @@ -0,0 +1,5 @@ + + +<% if awesome_config[:admins_available_authorizations] %> + <%= render "decidim/decidim_awesome/admin/officializations/participants_td", user: %> +<% end %> diff --git a/app/overrides/decidim/admin/officializations/index/add_th.html.erb.deface b/app/overrides/decidim/admin/officializations/index/add_th.html.erb.deface new file mode 100644 index 000000000..11c23bf6c --- /dev/null +++ b/app/overrides/decidim/admin/officializations/index/add_th.html.erb.deface @@ -0,0 +1,5 @@ + + +<% if awesome_config[:admins_available_authorizations] %> + <%= render "decidim/decidim_awesome/admin/officializations/participants_th" %> +<% end %> diff --git a/app/overrides/decidim/system/organizations/_advanced_settings/add_awesome_config.html.erb.deface b/app/overrides/decidim/system/organizations/_advanced_settings/add_awesome_config.html.erb.deface new file mode 100644 index 000000000..8ede85dec --- /dev/null +++ b/app/overrides/decidim/system/organizations/_advanced_settings/add_awesome_config.html.erb.deface @@ -0,0 +1,9 @@ + + +<% if Decidim::DecidimAwesome.enabled?(:admins_available_authorizations) %> +
+

<%= t "decidim.decidim_awesome.system.organizations.awesome_tweaks" %>

+ + <%= render partial: "decidim/decidim_awesome/system/organizations/admin_allowed_authorizations", locals: { f: f } %> +
+<% end %> diff --git a/app/packs/src/decidim/decidim_awesome/admin/verifications.js b/app/packs/src/decidim/decidim_awesome/admin/verifications.js new file mode 100644 index 000000000..05b8cd55c --- /dev/null +++ b/app/packs/src/decidim/decidim_awesome/admin/verifications.js @@ -0,0 +1,47 @@ +document.addEventListener("DOMContentLoaded", () => { + const dialog = document.getElementById("awesome-verification-modal"); + if (!dialog) { + return; + } + const title = dialog.querySelector("[data-dialog-title]"); + const content = dialog.querySelector("[data-dialog-content]"); + + dialog.addEventListener("open.dialog", async (el) => { + const modal = window.Decidim.currentDialogs[el.target.id]; + const button = modal.openingTrigger; + const url = button.dataset.verificationUrl; + const user = button.dataset.verificationUser; + title.innerText = title.innerText.replace("{{user}}", user); + content.innerHTML = '

'; + // console.log("open.dialog", el, "content", content, "button", button, "url", url); + fetch(url).then((res) => res.text()).then((html) => { + content.innerHTML = html; + }); + }); + + + document.body.addEventListener("ajax:complete", (responseText) => { + const response = JSON.parse(responseText.detail[0].response) + const button = document.querySelector(`[data-verification-handler="${response.handler}"][data-verification-user-id="${response.userId}"]`); + // console.log("ajax:complete", responseText, "response", response, "button", button); + content.innerHTML = response.message; + + if (response.granted) { + button.classList.add("granted"); + } else { + button.classList.remove("granted"); + const forceVerificationCheck = content.querySelector("#force_verification_check"); + const forceVerification = content.querySelector("#force_verification"); + + if (forceVerificationCheck) { + console.log(forceVerificationCheck); + forceVerificationCheck.addEventListener("change", function() { + forceVerification.disabled = !forceVerification.disabled; + if (forceVerificationCheck.checked) { + forceVerification.focus() + } + }); + } + } + }); +}); diff --git a/app/packs/src/decidim/decidim_awesome/awesome_admin_global.js b/app/packs/src/decidim/decidim_awesome/awesome_admin_global.js index 04ad8afcb..07e85ce24 100644 --- a/app/packs/src/decidim/decidim_awesome/awesome_admin_global.js +++ b/app/packs/src/decidim/decidim_awesome/awesome_admin_global.js @@ -1 +1,2 @@ import "src/decidim/decidim_awesome/admin/tabs_change" +import "src/decidim/decidim_awesome/admin/verifications" diff --git a/app/packs/stylesheets/decidim/decidim_awesome/admin/verifications.scss b/app/packs/stylesheets/decidim/decidim_awesome/admin/verifications.scss new file mode 100644 index 000000000..7c500a86a --- /dev/null +++ b/app/packs/stylesheets/decidim/decidim_awesome/admin/verifications.scss @@ -0,0 +1,97 @@ +.table-list .awesome_participants { + &-th:not(:first-child) { + @apply text-left pl-3; + } + + &-td:not(:first-child) { + @apply text-left; + + button { + &:hover { + @apply text-secondary underline; + } + } + + > * { + @apply text-gray; + + &.managed { + @apply text-gray-2; + } + + .checked { + @apply hidden; + } + + .undeterminated { + @apply hidden; + } + + .unchecked { + @apply text-alert; + } + + &.granted { + .checked { + @apply text-success inline; + } + + .undeterminated { + @apply hidden; + } + + .unchecked { + @apply hidden; + } + } + + &.pending { + .checked { + @apply hidden; + } + + .undeterminated { + @apply text-warning inline; + } + + .unchecked { + @apply hidden; + } + } + } + } +} + +.awesome_participants-modal { + h4 { + @apply text-xl block my-8; + } + + .verification { + @apply flex items-center justify-between gap-4 border-[3px] border-background rounded px-4 py-4 mt-4; + + &__container { + @apply space-y-8; + + &-title { + @apply uppercase font-semibold text-gray-2 mb-8 mt-16 first:mt-0; + } + } + + &__icon { + @apply flex-none w-8 h-8 text-gray fill-current; + + &.is-granted { + @apply text-success; + } + } + + &__text { + @apply grow space-y-2.5; + + span { + @apply inline-block text-sm text-gray-2; + } + } + } +} diff --git a/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin_global.scss b/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin_global.scss index e4d1aa9f3..081c70e39 100644 --- a/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin_global.scss +++ b/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin_global.scss @@ -1,6 +1,7 @@ @import "stylesheets/decidim/decidim_awesome/shared/spinner"; @import "stylesheets/decidim/decidim_awesome/admin/intergram_fixes"; @import "stylesheets/decidim/decidim_awesome/forms/custom_fields"; +@import "stylesheets/decidim/decidim_awesome/admin/verifications"; .component__show { &_private_data { diff --git a/app/permissions/decidim/decidim_awesome/admin/permissions.rb b/app/permissions/decidim/decidim_awesome/admin/permissions.rb index 30c691f8a..72a3870f9 100644 --- a/app/permissions/decidim/decidim_awesome/admin/permissions.rb +++ b/app/permissions/decidim/decidim_awesome/admin/permissions.rb @@ -12,20 +12,16 @@ def permissions return permission_action if user.read_attribute("admin").blank? return permission_action unless permission_action.action == :edit_config - if permission_action.subject == :admin_accountability && DecidimAwesome.admin_accountability.respond_to?(:include?) - if global? - toggle_allow(DecidimAwesome.admin_accountability.include?(:admin_roles)) - else - toggle_allow(DecidimAwesome.admin_accountability.include?(:participatory_space_roles)) - end - elsif permission_action.subject == :private_data && config_enabled?(:proposal_private_custom_fields) - if private_data.present? - allow! if private_data.destroyable? + apply_private_data_permissions! + if config_enabled?(*permission_action.subject) + case permission_action.subject + when :admins_available_authorizations + apply_admin_authorizations_permissions! + when :admin_accountability + apply_admin_accountability_permissions! else allow! end - else - toggle_allow(config_enabled?(*permission_action.subject)) end permission_action @@ -33,6 +29,30 @@ def permissions private + def apply_admin_authorizations_permissions! + allow! if awesome_admin_authorizations.present? && handler.in?(awesome_admin_authorizations) + end + + def apply_admin_accountability_permissions! + if DecidimAwesome.admin_accountability.respond_to?(:include?) + if global? + allow! if DecidimAwesome.admin_accountability.include?(:admin_roles) + elsif DecidimAwesome.admin_accountability.include?(:participatory_space_roles) + allow! + end + end + end + + def apply_private_data_permissions! + return unless permission_action.subject == :private_data && config_enabled?(:proposal_private_custom_fields) + + if private_data.present? + allow! if private_data.destroyable? + else + allow! + end + end + def global? context.fetch(:global, nil) end @@ -40,6 +60,17 @@ def global? def private_data context.fetch(:private_data, nil) end + + def handler + context.fetch(:handler, "") + end + + def awesome_admin_authorizations + @awesome_admin_authorizations ||= begin + handlers = AwesomeConfig.find_by(var: :admins_available_authorizations, organization: user.organization)&.value || [] + user.organization.available_authorizations.intersection(handlers) + end + end end end end diff --git a/app/presenters/decidim/decidim_awesome/admin_log/component_presenter_override.rb b/app/presenters/decidim/decidim_awesome/admin_log/component_presenter_override.rb index c6a933ce1..56b8b1fd4 100644 --- a/app/presenters/decidim/decidim_awesome/admin_log/component_presenter_override.rb +++ b/app/presenters/decidim/decidim_awesome/admin_log/component_presenter_override.rb @@ -17,11 +17,9 @@ def action_string end def i18n_params - if action == "destroy_private_data" - decidim_original_i18n_params.merge({ count: action_log.extra["count"] }) - else - decidim_original_i18n_params - end + return decidim_original_i18n_params unless action == "destroy_private_data" + + decidim_original_i18n_params.merge({ count: action_log.extra["count"] }) end end end diff --git a/app/presenters/decidim/decidim_awesome/admin_log/user_presenter_override.rb b/app/presenters/decidim/decidim_awesome/admin_log/user_presenter_override.rb new file mode 100644 index 000000000..4199d9523 --- /dev/null +++ b/app/presenters/decidim/decidim_awesome/admin_log/user_presenter_override.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Decidim + module DecidimAwesome + module AdminLog + module UserPresenterOverride + extend ActiveSupport::Concern + + included do + alias_method :decidim_original_action_string, :action_string + alias_method :decidim_original_i18n_params, :i18n_params + alias_method :decidim_original_resource_presenter, :resource_presenter + + def action_string + return "decidim.decidim_awesome.admin_log.user.#{action}" if authorization_action? + + decidim_original_action_string + end + + def i18n_params + return decidim_original_i18n_params unless authorization_action? + + decidim_original_i18n_params.merge({ + handler_name: h.content_tag(:span, action_log.extra["handler_name"], class: "logs__log__resource"), + reason: h.content_tag(:em, action_log.extra["reason"]) + }) + end + + def resource_presenter + return decidim_original_resource_presenter unless authorization_action? && authorization_user + + @resource_presenter ||= Decidim::Log::UserPresenter.new(authorization_user, h, { "name" => authorization_user.name, "nickname" => authorization_user.nickname }) + end + + def authorization_user + @authorization_user ||= Decidim::User.find_by(id: action_log.extra["user_id"]) + end + + def authorization_action? + action.in?(%w(admin_creates_authorization admin_forces_authorization admin_destroys_authorization)) + end + end + end + end + end +end diff --git a/app/views/decidim/decidim_awesome/admin/admin_authorizations/_callout.html.erb b/app/views/decidim/decidim_awesome/admin/admin_authorizations/_callout.html.erb new file mode 100644 index 000000000..e3754d605 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/admin_authorizations/_callout.html.erb @@ -0,0 +1,3 @@ +<%= cell("decidim/announcement", + local_assigns[:message].presence || t("decidim.decidim_awesome.admin.admin_authorizations.#{i18n_key}", name: workflow&.fullname, user: user.name), + callout_class: klass) %> diff --git a/app/views/decidim/decidim_awesome/admin/admin_authorizations/authorization.html.erb b/app/views/decidim/decidim_awesome/admin/admin_authorizations/authorization.html.erb new file mode 100644 index 000000000..fade62f12 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/admin_authorizations/authorization.html.erb @@ -0,0 +1,20 @@ +

<%= t("decidim.decidim_awesome.required_authorizations.index.granted_title") %>

+ +
+
+ <%= icon "checkbox-circle-line", class: "verification__icon is-granted self-start" %> + +
+

<%= workflow.fullname %>

+

<%= t(".granted_at", date: l(authorization.granted_at), format: :decidim_short) %>

+

<%= t(".metadata", metadata: content_tag("strong", t("booleans.#{authorization.metadata.present?}"))).html_safe %>

+
+ +
+ <%= link_to decidim_admin_decidim_awesome.admin_authorization_path(id: user.id, handler: authorization.name), method: :delete, remote: true, class: "button button__lg button__primary", data: { confirm: t(".confirm_destroy") } do %> + <%= icon "delete-bin-line", class: "icon" %> + <%= t(".destroy") %> + <% end %> +
+
+
diff --git a/app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb b/app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb new file mode 100644 index 000000000..3cee5a2f2 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb @@ -0,0 +1,5 @@ +<%= cell("decidim/announcement", { + title: t("decidim.decidim_awesome.admin.admin_authorizations.conflict"), + body: t("decidim.decidim_awesome.admin.admin_authorizations.conflict_help_html", user: link_to(conflict.user.name, decidim_admin.officializations_path(q: { name_or_nickname_or_email_cont: conflict.user.email }))) + }, + callout_class: "alert") %> diff --git a/app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb b/app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb new file mode 100644 index 000000000..b65c6ee70 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb @@ -0,0 +1,41 @@ +
+ <%= decidim_form_for(handler, + builder: Decidim::AuthorizationFormBuilder, + as: "authorization_handler", + url: decidim_admin_decidim_awesome.admin_authorization_path(id: user.id, handler: params[:handler]), + method: :patch, + remote: true) do |form| %> + <% if lookup_context.exists?(handler.to_partial_path, [], true) %> + <%= render partial: handler.to_partial_path, locals: { handler:, form: } %> + <% else %> +
+ <%= form.all_fields %> +
+ <% end %> + + <% if defined?(with_override) %> +
+ + +
+ <% else %> + <%= cell("decidim/announcement", { title: t(".warning"), body: t(".do_it_if_sure") }, callout_class: "warning") %> + <% end %> + +
+ +
+ <% end %> +
diff --git a/app/views/decidim/decidim_awesome/admin/officializations/_participants_td.html.erb b/app/views/decidim/decidim_awesome/admin/officializations/_participants_td.html.erb new file mode 100644 index 000000000..3f8adf346 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/officializations/_participants_td.html.erb @@ -0,0 +1,25 @@ + + <% awesome_authorizations_for(user).authorizations.each do |auth| %> + <% + data = { + verification_user: user.name, + verification_user_id: user.id, + verification_handler: auth[:name], + verification_url: decidim_admin_decidim_awesome.edit_admin_authorization_path(id: user.id, handler: auth[:name]) + } + classes = [] + classes << "granted" if auth[:granted] + classes << "pending" if auth[:pending] + if auth[:managed] + classes << "managed" + data[:dialog_open] = "awesome-verification-modal" + end + %> + <%= content_tag(auth[:managed] ? "button" : "div", class: classes, data:) do %> + <%= icon "check-line", class: "checked" %> + <%= icon "time-line", class: "undeterminated" %> + <%= icon "close-line", class: "unchecked" %> + <%= auth[:fullname] %> + <% end %> + <% end %> + diff --git a/app/views/decidim/decidim_awesome/admin/officializations/_participants_th.html.erb b/app/views/decidim/decidim_awesome/admin/officializations/_participants_th.html.erb new file mode 100644 index 000000000..c535695b2 --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/officializations/_participants_th.html.erb @@ -0,0 +1 @@ +<%= t("decidim.decidim_awesome.admin.officializations.authorizations") %> diff --git a/app/views/decidim/decidim_awesome/admin/officializations/_verification_modal.html.erb b/app/views/decidim/decidim_awesome/admin/officializations/_verification_modal.html.erb new file mode 100644 index 000000000..07ddfa4ab --- /dev/null +++ b/app/views/decidim/decidim_awesome/admin/officializations/_verification_modal.html.erb @@ -0,0 +1,15 @@ +<%= decidim_modal id: "awesome-verification-modal", class:"reveal awesome_participants-modal" do %> +
+ <%= icon "lock-line" %> +

+ <%= t(".authorizations_for", user: "{{user}}") %> +

+
+
+
+
+ +
+<% end %> diff --git a/app/views/decidim/decidim_awesome/system/organizations/_admin_allowed_authorizations.html.erb b/app/views/decidim/decidim_awesome/system/organizations/_admin_allowed_authorizations.html.erb new file mode 100644 index 000000000..de3070f49 --- /dev/null +++ b/app/views/decidim/decidim_awesome/system/organizations/_admin_allowed_authorizations.html.erb @@ -0,0 +1,5 @@ +<%= field_set_tag f.label(:awesome_admins_available_authorizations, nil, for: nil), class: "border-2 border-background p-4" do %> + <%= f.collection_check_boxes :awesome_admins_available_authorizations, Decidim.authorization_handlers, :name, :description, help_text: t("decidim.decidim_awesome.system.organizations.admin_allowed_authoritzations_help_html") do |builder| + builder.label(for: nil, class: "form__wrapper-checkbox-label") { builder.check_box(id: nil) + builder.text } + end %> +<% end %> diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 217506913..2e6300d41 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -18,6 +18,7 @@ ignore_unused: - "activemodel.attributes.constraint.*" - "activemodel.attributes.custom_redirect.*" - "activemodel.attributes.user.*" + - activemodel.attributes.organization.awesome_admins_available_authorizations - "decidim.components.decidim_awesome.name" - "decidim.components.awesome_iframe.settings.*" - "decidim.components.awesome_map.settings.*" diff --git a/config/locales/en.yml b/config/locales/en.yml index 4b3c283b1..7196adad3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -61,6 +61,9 @@ en: target: Opens in url: URL visibility: Visibility + organization: + awesome_admins_available_authorizations: Allow admins to manually verify users + with these authorizations user: user_time_zone: Personal timezone decidim: @@ -209,6 +212,34 @@ en: collaborator: Collaborator moderator: Moderator valuator: Valuator + admin_authorizations: + authorization: + confirm_destroy: Are you sure you want to destroy this authorization? + This might affect the user's access to the platform. + destroy: Destroy + granted_at: Granted at %{date} + metadata: Contains metadata? %{metadata} + authorization_destroyed: Authorization successfully destroyed. + authorization_not_destroyed: Authorization could not be destroyed! + authorization_transferred: 'Warning: There was verification conflict and + the verification has been transferred to %{user}' + conflict: There is a conflict with an existing authorization + conflict_help_html: "You must solve the conflict with the user %{user} before + you can authorize the user with this authorization.\n

\nA verfication + conflict happens when another user has the same data as the user you are + trying to authorize. \nYou can solve this conflict by removing the conflicting + authorization from the other user or using different data for this user.\n" + edit: + authorize: Authorize %{user} with %{name} + do_it_if_sure: Do this only if you are sure that the user has this authorization. + force_verification: Force verification with the current data + force_verification_help: Verification has failed, but you can force it + if you are sure the user has this authorization. + force_verification_reason: 'Give a reason to force the verification:' + warning: 'Warning: By forcing this authorization, you are overriding the + user''s current authorization status.' + user_authorized: "%{user} successfully authorized with %{name}" + user_not_authorized: "%{user} could not be authorized with %{name}" checks: index: admin_head_tags: Awesome tags included in the admin application header @@ -554,6 +585,11 @@ en: success: Menu item updated successfully url_exists: The same URL is already configured, please edit that instead of creating it again. + officializations: + authorizations: Authorizations + verification_modal: + authorizations_for: Authorizations for %{user} + close: Close proposal_custom_fields: menu: title: Public fields @@ -572,6 +608,13 @@ en: component: destroy_private_data: "%{user_name} destroyed %{count} items of private data for %{resource_name} in %{space_name}" + user: + admin_creates_authorization: "%{user_name} verified %{resource_name} with + %{handler_name}" + admin_destroys_authorization: "%{user_name} destroyed the verification %{handler_name} + on %{resource_name}" + admin_forces_authorization: "%{user_name} forced the verification %{handler_name} + on %{resource_name}. Reason: %{reason}" amendments: modal: amendment_exists: An amendment already exists @@ -661,6 +704,12 @@ en: session: authorization_is_required: In order to participate in this platform, you need to authorize your account with a valid authorization (%{authorizations}). + system: + organizations: + admin_allowed_authoritzations_help_html: | + Admins will be able to manually verify users with these authorizations. +
Use this feature with caution, as it can lead to security issues. + awesome_tweaks: Decidim Awesome Tweaks validators: too_much_caps: Is using too many capital letters (over %{percent}% of the text) diff --git a/examples/manual_verifications_1.png b/examples/manual_verifications_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed5d221e69e3be6a210dc1cf2ac12985d435cc3 GIT binary patch literal 78635 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 literal 0 HcmV?d00001 diff --git a/examples/manual_verifications_2.png b/examples/manual_verifications_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a495356e696b1a673b161603b3bd921019df68ac GIT binary patch literal 84439 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

-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 literal 0 HcmV?d00001 diff --git a/examples/manual_verifications_system.png b/examples/manual_verifications_system.png new file mode 100644 index 0000000000000000000000000000000000000000..74b6695c6130cbc625c5f4b2697cd702a14f1703 GIT binary patch literal 40335 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 "", "granted" => true, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + + context "when vericiation fails" do + let(:document_number) { "12345678Y" } + + it "does not verify the user" do + expect { patch(:update, params:) }.not_to change(Decidim::Authorization, :count) + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => false, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + end + + context "when force_verification is present" do + let(:force_verification) { "1" } + let(:document_number) { "12345678Y" } + + it "forces the verification" do + expect { patch(:update, params:) }.to change(Decidim::Authorization, :count).by(1) + .and change(Decidim::ActionLog, :count).by(1) + + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => true, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + end + + # Note: this situation is impossible to happen as conflicts are handled in the controller, this is here to ensure covering the broadcast(:transferred) case + context "when verification is transferred" do + let!(:authorization) { create(:authorization, user: create(:user, organization:), name: handler, unique_id: document_number) } + + before do + allow_any_instance_of(Decidim::AuthorizationHandler).to receive(:unique?).and_return(false) # rubocop:disable RSpec/AnyInstance + allow_any_instance_of(Decidim::AuthorizationHandler).to receive(:transferrable?).and_return(true) # rubocop:disable RSpec/AnyInstance + allow(controller).to receive(:conflict).and_return(nil) + end + + it "transfers the verification" do + expect { patch(:update, params:) }.not_to change(Decidim::Authorization, :count) + + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => true, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + expect(authorization.reload.user).to eq(user) + end + end + + context "when a conflict exists" do + let!(:authorization) { create(:authorization, user: create(:user, organization:), name: handler, unique_id: document_number) } + + it "renders conflict template" do + expect { patch(:update, params:) }.not_to change(Decidim::Authorization, :count) + + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => false, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + end + + context "when the authorization already exists" do + let!(:authorization) { create(:authorization, user:, name: handler) } + + it "does not create a new authorization" do + expect { patch(:update, params:) }.to change(Decidim::ActionLog, :count).by(1) + expect(authorization.reload.unique_id).to eq(document_number) + end + end + end + + describe "DELETE #destroy" do + let!(:authorization) { create(:authorization, user:, name: handler) } + + it "destroys the authorization" do + expect { delete(:destroy, params:) }.to change(Decidim::Authorization, :count).by(-1) + .and change(Decidim::ActionLog, :count).by(1) + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => false, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + + context "when authorization does not exist" do + let(:authorization) { nil } + + it "does not destroy the authorization" do + expect { delete(:destroy, params:) }.not_to change(Decidim::Authorization, :count) + expect(response).to have_http_status(:success) + expect(body).to eq({ "message" => "", "granted" => false, "userId" => user.id, "handler" => "dummy_authorization_handler" }) + end + end + end + end + end +end diff --git a/spec/controllers/forced_authorization_spec.rb b/spec/controllers/forced_authorization_spec.rb new file mode 100644 index 000000000..340865a9a --- /dev/null +++ b/spec/controllers/forced_authorization_spec.rb @@ -0,0 +1,98 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim::DecidimAwesome + class TestController < Decidim::ApplicationController + def index + render plain: "OK" + end + end + + describe ApplicationController do + routes { Decidim::DecidimAwesome::Engine.routes } + before do + Decidim::DecidimAwesome::Engine.routes.draw do + get "index" => "test#index" + end + allow(controller).to receive(:root_path).and_return("/") + request.env["decidim.current_organization"] = organization + sign_in user + end + + let(:organization) { create(:organization, available_authorizations: ["dummy_authorization_handler"]) } + let(:user) { create(:user, :confirmed, organization:) } + let(:force_authorization_after_login) { %w(dummy_authorization_handler) } + let!(:awesome_config) { create(:awesome_config, organization:, var: :force_authorization_after_login, value: force_authorization_after_login) } + + shared_examples "forbids access" do + it "redirects to the required authorizations page" do + get :index + expect(response).to have_http_status(:found) + expect(response).to redirect_to("/decidim_awesome#{required_authorizations_path(redirect_url: "/index")}") + end + end + + shared_examples "allows access" do + it "allows the controller" do + get :index + expect(response).to have_http_status(:ok) + expect(response.body).to eq("OK") + end + end + + shared_examples "redirects to login" do + it "redirects to the login page" do + get :index + expect(response).to have_http_status(:found) + expect(response).to redirect_to("/users/sign_in") + end + end + + shared_examples "handles authorization" do + describe "GET #index" do + context "when the user is not authorized" do + it_behaves_like "forbids access" + + context "when the user is not logged in" do + before do + sign_out user + end + + it_behaves_like "allows access" + end + + context "when the user is blocked" do + let(:user) { create(:user, :confirmed, :blocked, organization:) } + + it_behaves_like "allows access" + end + + context "when the user is not confirmed" do + let(:user) { create(:user, organization:) } + + it_behaves_like "redirects to login" + end + + context "when the controller is allowed" do + before do + allow_any_instance_of(Decidim::DecidimAwesome::Config).to receive(:defaults).and_return({ force_authorization_allowed_controller_names: ["test"] }) # rubocop:disable RSpec/AnyInstance + end + + it_behaves_like "allows access" + end + end + + context "when the user is authorized" do + let!(:authorization) { create(:authorization, user:, name: "dummy_authorization_handler") } + + it_behaves_like "allows access" + end + end + end + + describe TestController do + it_behaves_like "handles authorization", :index + end + end +end diff --git a/spec/factories.rb b/spec/factories.rb index 020da7595..64103691c 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -1,3 +1,7 @@ # frozen_string_literal: true +require "decidim/system/test/factories" +require "decidim/core/test/factories" +require "decidim/proposals/test/factories" +require "decidim/surveys/test/factories" require "decidim/decidim_awesome/test/factories" diff --git a/spec/helpers/awesome_helpers_spec.rb b/spec/helpers/awesome_helpers_spec.rb index 07ae832f4..aa3beefe6 100644 --- a/spec/helpers/awesome_helpers_spec.rb +++ b/spec/helpers/awesome_helpers_spec.rb @@ -4,10 +4,12 @@ module Decidim::DecidimAwesome describe AwesomeHelpers do - let!(:organization) { create(:organization) } + let!(:organization) { create(:organization, available_authorizations:) } + let(:available_authorizations) { [] } let!(:another_organization) { create(:organization) } let(:component) { create(:proposal_component, organization:, settings: { awesome_voting_manifest: manifest }) } let(:another_component) { create(:proposal_component, manifest_name: :another_component, organization:, settings: { awesome_voting_manifest: manifest }) } + let(:user) { create(:user, organization:) } let(:manifest) { :voting_cards } let(:request) { double(env:, url: "/") } let(:env) do @@ -19,6 +21,7 @@ module Decidim::DecidimAwesome before do allow(helper).to receive(:request).and_return(request) + helper.instance_variable_set(:@awesome_config_instance, nil) end it "return a config instance" do @@ -62,5 +65,58 @@ module Decidim::DecidimAwesome expect(helper.awesome_voting_manifest_for(another_component)).to be_nil end end + + it "returns authorizations for user" do + expect(helper.awesome_authorizations_for(user)).to be_a(Decidim::DecidimAwesome::Authorizator) + expect(helper.awesome_authorizations_for(user).authorizations).to eq([]) + end + + context "when organization has authorizations" do + let(:available_authorizations) { [:dummy_authorization_handler] } + + it "returns the authorization" do + expect(helper.awesome_authorizations_for(user).authorizations).to eq([ + { + name: "dummy_authorization_handler", + fullname: "Example authorization", + granted: nil, + pending: false, + managed: false + } + ]) + end + + context "when an authorization exists" do + let!(:authorization) { create(:authorization, :granted, user:, name: "dummy_authorization_handler") } + + it "returns the authorization" do + expect(helper.awesome_authorizations_for(user).authorizations).to eq([ + { + name: "dummy_authorization_handler", + fullname: "Example authorization", + granted: true, + pending: false, + managed: false + } + ]) + end + end + + context "when the authorization is managed" do + let!(:admins_available_authorizations) { create(:awesome_config, organization:, var: :admins_available_authorizations, value: [:dummy_authorization_handler]) } + + it "returns the authorization" do + expect(helper.awesome_authorizations_for(user).authorizations).to eq([ + { + name: "dummy_authorization_handler", + fullname: "Example authorization", + granted: nil, + pending: false, + managed: true + } + ]) + end + end + end end end diff --git a/spec/lib/authorizator_spec.rb b/spec/lib/authorizator_spec.rb new file mode 100644 index 000000000..280ca22d3 --- /dev/null +++ b/spec/lib/authorizator_spec.rb @@ -0,0 +1,72 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim::DecidimAwesome + describe Authorizator do + subject { described_class.new(user, admin_authorizations) } + let(:organization) { create(:organization, available_authorizations:) } + let(:available_authorizations) { [:dummy_authorization_handler, :another_dummy_authorization_handler, :id_documents] } + let(:user) { create(:user, organization:) } + let(:admin_authorizations) { %w(dummy_authorization_handler another_dummy_authorization_handler) } + let!(:exising_authorization) { create(:authorization, :pending, user:, name: "id_documents") } + + shared_examples "an authorization's hash" do |granted, pending| + it "returns the authorization's hash" do + expect(subject.authorizations).to eq([ + { + name: "dummy_authorization_handler", + fullname: "Example authorization", + granted:, + pending:, + managed: true + }, + { + name: "another_dummy_authorization_handler", + fullname: "Another example authorization", + granted: nil, + pending: false, + managed: true + }, + { + name: "id_documents", + fullname: "Identity documents", + granted: false, + pending: true, + managed: false + } + ]) + end + end + + it_behaves_like "an authorization's hash", nil, false + + context "when authorizations exist" do + let!(:authorization) { create(:authorization, user:, name: "dummy_authorization_handler") } + + it_behaves_like "an authorization's hash", true, false + end + + context "when authorization is pending" do + let!(:authorization) { create(:authorization, :pending, user:, name: "dummy_authorization_handler") } + + it_behaves_like "an authorization's hash", false, true + end + + context "when admin_authorizations contains non registered handlers" do + let(:available_authorizations) { [:dummy_authorization_handler] } + + it "returns only the available authorizations" do + expect(subject.authorizations).to eq([ + { + name: "dummy_authorization_handler", + fullname: "Example authorization", + granted: nil, + pending: false, + managed: true + } + ]) + end + end + end +end diff --git a/spec/permissions/admin/permissions_spec.rb b/spec/permissions/admin/permissions_spec.rb index 59dfbf5f5..068fa72ae 100644 --- a/spec/permissions/admin/permissions_spec.rb +++ b/spec/permissions/admin/permissions_spec.rb @@ -12,9 +12,11 @@ module Decidim::DecidimAwesome::Admin { current_organization: organization, private_data:, - global: + global:, + handler: } end + let(:handler) { nil } let(:global) { nil } let(:private_data) { nil } let(:feature) { :allow_images_in_editors } @@ -56,7 +58,7 @@ module Decidim::DecidimAwesome::Admin allow(Decidim::DecidimAwesome.config).to receive(key).and_return(:disabled) end - it { is_expected.to be false } + it_behaves_like "permission is not set" end end end @@ -73,7 +75,7 @@ module Decidim::DecidimAwesome::Admin context "when accessing admin_accountability" do let(:feature) { :admin_accountability } - let(:status) { true } + let(:status) { [:participatory_space_roles, :admin_roles] } before do allow(Decidim::DecidimAwesome.config).to receive(feature).and_return(status) @@ -81,10 +83,28 @@ module Decidim::DecidimAwesome::Admin it { is_expected.to be true } + context "when admin_accountability does not include participatory_space_roles" do + let(:status) { [:admin_roles] } + + it_behaves_like "permission is not set" + end + + context "when admin_accountability is global" do + let(:global) { true } + + it { is_expected.to be true } + + context "when admin_accountability does not include admin_roles" do + let(:status) { [:participatory_space_roles] } + + it_behaves_like "permission is not set" + end + end + context "when admin_accountability is disabled" do let(:status) { :disabled } - it { is_expected.to be false } + it_behaves_like "permission is not set" end end @@ -96,12 +116,12 @@ module Decidim::DecidimAwesome::Admin allow(Decidim::DecidimAwesome.config).to receive(:proposal_private_custom_fields).and_return(status) end - it { is_expected.to be true } + it { expect(subject).to be true } context "when proposal private fields is disabled" do let(:status) { :disabled } - it { is_expected.to be false } + it_behaves_like "permission is not set" end context "when private_data is present" do @@ -116,5 +136,40 @@ module Decidim::DecidimAwesome::Admin end end end + + context "when accessing admins_available_authorizations" do + let(:feature) { :admins_available_authorizations } + let(:handler) { "dummy_authorization_handler" } + let(:awesome_handler) { "dummy_authorization_handler" } + let!(:awesome_config) { create(:awesome_config, organization:, var: :admins_available_authorizations, value: [awesome_handler]) } + + context "when organization has no handlers" do + it_behaves_like "permission is not set" + end + + context "when organization has handlers" do + let(:organization) { create(:organization, available_authorizations: [handler]) } + + it { is_expected.to be true } + + context "and awesome_config does not exist" do + let(:awesome_config) { nil } + + it_behaves_like "permission is not set" + + context "and feature is disabled" do + let(:status) { :disabled } + + it_behaves_like "permission is not set" + end + end + + context "and awesome_config is not registered" do + let(:awesome_handler) { "another_dummy_authorization_handler" } + + it_behaves_like "permission is not set" + end + end + end end end diff --git a/spec/presenters/admin_log/user_presenter_spec.rb b/spec/presenters/admin_log/user_presenter_spec.rb new file mode 100644 index 000000000..72215b0f5 --- /dev/null +++ b/spec/presenters/admin_log/user_presenter_spec.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim::AdminLog + describe UserPresenter, type: :helper do + subject(:presenter) { described_class.new(action_log, helper) } + + let(:organization) { create(:organization) } + let(:user) { create(:user, organization:) } + let(:extra_data) { { handler_name: "Example authorization", user_id: resource.id, reason: "Because I can" } } + let(:action_log) do + create( + :action_log, + user:, + action:, + resource:, + extra_data: + ) + end + let(:action) { "admin_creates_authorization" } + let(:resource) { create(:user, organization:) } + + before do + helper.extend(Decidim::ApplicationHelper) + helper.extend(Decidim::TranslationsHelper) + end + + describe "#present" do + subject { presenter.present } + + it "returns an empty diff" do + puts subject + expect(subject).not_to include("class=\"logs__log__diff\"") + end + + it "returns the explanation" do + expect(subject).to include("class=\"logs__log__explanation\"") + expect(subject).to include("verified") + expect(subject).to include("/profiles/#{user.nickname}") + expect(subject).to include("/profiles/#{resource.nickname}") + expect(subject).to include("Example authorization") + end + + context "when the action is admin_forces_authorization" do + let(:action) { "admin_forces_authorization" } + + it "returns the explanation" do + expect(subject).to include("class=\"logs__log__explanation\"") + expect(subject).to include("forced the verification") + expect(subject).to include("/profiles/#{user.nickname}") + expect(subject).to include("/profiles/#{resource.nickname}") + expect(subject).to include("Example authorization") + expect(subject).to include("Because I can") + end + end + + context "when the action is admin_destroys_authorization" do + let(:action) { "admin_destroys_authorization" } + + it "returns the explanation" do + expect(subject).to include("class=\"logs__log__explanation\"") + expect(subject).to include("destroyed the verification") + expect(subject).to include("/profiles/#{user.nickname}") + expect(subject).to include("/profiles/#{resource.nickname}") + expect(subject).to include("Example authorization") + end + end + end + end +end diff --git a/spec/system/admin/admin_accountability_spec.rb b/spec/system/admin/admin_accountability_spec.rb index 0da137aa2..50acb41fd 100644 --- a/spec/system/admin/admin_accountability_spec.rb +++ b/spec/system/admin/admin_accountability_spec.rb @@ -22,7 +22,7 @@ let(:external_moderator) { create(:user, organization: external_organization, created_at: user_creation_date) } let(:external_participatory_process) { create(:participatory_process, organization: external_organization) } - let(:status) { true } + let(:status) { [:admin_roles, :participatory_space_roles] } before do # rubocop:disable Rails/SkipsModelValidations: diff --git a/spec/system/admin/admin_manages_verifications_spec.rb b/spec/system/admin/admin_manages_verifications_spec.rb index 455f95fa2..edab89eb7 100644 --- a/spec/system/admin/admin_manages_verifications_spec.rb +++ b/spec/system/admin/admin_manages_verifications_spec.rb @@ -38,12 +38,12 @@ let!(:force_authorization_after_login) { create(:awesome_config, organization:, var: :force_authorization_after_login, value: %w(dummy_authorization_handler another_dummy_authorization_handler id_documents)) } it "allows to select all existing workflows" do - page.execute_script("document.getElementById('config_force_authorization_after_login').tomselect.setValue(['dummy_authorization_handler', 'id_documents'])") + page.execute_script("document.getElementById('config_force_authorization_after_login').tomselect.setValue(['dummy_authorization_handler'])") click_button "Update configuration" expect(page).to have_content("updated successfully") - expect(last_force_authorization_after_login.reload.value).to be_blank + expect(last_force_authorization_after_login.reload.value).to eq(%w(dummy_authorization_handler)) end end end diff --git a/spec/system/admin/admins_authorizations_admin_spec.rb b/spec/system/admin/admins_authorizations_admin_spec.rb new file mode 100644 index 000000000..2d502ad5b --- /dev/null +++ b/spec/system/admin/admins_authorizations_admin_spec.rb @@ -0,0 +1,163 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe "Managing the participants" do + let(:organization) { create(:organization, available_authorizations:) } + let(:user) { create(:user, :admin, :confirmed, organization:) } + let!(:participant1) { create(:user, :confirmed, organization:) } + let!(:participant2) { create(:user, :confirmed, organization:) } + let(:available_authorizations) { [handler] } + let(:handler) { "dummy_authorization_handler" } + let(:awesome_handler) { "another_dummy_authorization_handler" } + let!(:authorization) { create(:authorization, user: participant1, name: handler, organization:) } + let!(:ghost_authorization) { create(:authorization, user: participant2, name: :another_dummy_authorization_handler, organization:) } + let!(:awesome_config) { create(:awesome_config, var: :admins_available_authorizations, value: [awesome_handler], organization:) } + let(:last_authorization) { Decidim::Authorization.last } + let(:last_action_log) { Decidim::ActionLog.last } + + before do + switch_to_host(organization.host) + login_as user, scope: :user + visit decidim_admin.officializations_path + end + + it "shows the extra authorization column" do + within "thead" do + expect(page).to have_content("Authorizations") + end + within "tbody" do + within "tr", text: participant1.name do + within "div[data-verification-user-id=\"#{participant1.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.checked") + expect(page).not_to have_content("Another example authorization") + end + end + within "tr", text: participant2.name do + within "div[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.unchecked") + expect(page).not_to have_content("Another example authorization") + end + end + end + end + + context "when authorization is managed" do + let(:awesome_handler) { "dummy_authorization_handler" } + + it "can authorize a participant" do + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_css("svg.unchecked") + end + click_on "Example authorization" + end + + within "#awesome-verification-modal-content" do + fill_in "Document number", with: "12345678" + click_button "Authorize #{participant2.name} with Example authorization" + expect(page).to have_content("#{participant2.name} could not be authorized with Example authorization") + fill_in "Document number", with: "12345678X" + click_button "Authorize #{participant2.name} with Example authorization" + expect(page).to have_content("#{participant2.name} successfully authorized with Example authorization") + click_on "Close" + end + + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.checked") + end + end + + expect(last_authorization.name).to eq("dummy_authorization_handler") + expect(last_authorization.unique_id).to eq("12345678X") + expect(last_action_log.action).to eq("admin_creates_authorization") + end + + it "can revoke an authorization" do + within "tr", text: participant1.name do + within "button[data-verification-user-id=\"#{participant1.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.checked") + end + click_on "Example authorization" + end + + within "#awesome-verification-modal-content" do + accept_confirm { click_on "Destroy" } + expect(page).to have_content("Authorization successfully destroyed") + end + + within "tr", text: participant1.name do + within "button[data-verification-user-id=\"#{participant1.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.unchecked") + end + end + expect(last_action_log.action).to eq("admin_destroys_authorization") + end + + it "can force an authorization" do + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_css("svg.unchecked") + end + click_on "Example authorization" + end + + within "#awesome-verification-modal-content" do + fill_in "Document number", with: "12345678" + click_button "Authorize #{participant2.name} with Example authorization" + check "Force verification with the current data" + fill_in "Give a reason to force the verification:", with: "Because I can" + click_button "Authorize #{participant2.name} with Example authorization" + expect(page).to have_content("#{participant2.name} successfully authorized with Example authorization") + click_on "Close" + end + + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.checked") + end + end + + expect(last_authorization.name).to eq("dummy_authorization_handler") + expect(last_authorization.unique_id).to eq("12345678") + expect(last_action_log.action).to eq("admin_forces_authorization") + expect(last_action_log.extra["reason"]).to eq("Because I can") + end + + context "when there's a conflict of data" do + let!(:authorization) { create(:authorization, user: participant1, name: handler, unique_id: "12345678", organization:) } + + it "cannot force an authorization" do + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_css("svg.unchecked") + end + click_on "Example authorization" + end + + within "#awesome-verification-modal-content" do + fill_in "Document number", with: "12345678" + click_button "Authorize #{participant2.name} with Example authorization" + expect(page).to have_content("There is a conflict with an existing authorization") + expect(page).not_to have_content("Authorize") + click_on "Close" + end + + within "tr", text: participant2.name do + within "button[data-verification-user-id=\"#{participant2.id}\"]" do + expect(page).to have_content("Example authorization") + expect(page).to have_css("svg.unchecked") + end + end + expect(last_action_log).to be_nil + end + end + end +end diff --git a/spec/system/admin/admins_authorizations_system_spec.rb b/spec/system/admin/admins_authorizations_system_spec.rb new file mode 100644 index 000000000..650866906 --- /dev/null +++ b/spec/system/admin/admins_authorizations_system_spec.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe "System admin manages awesome verifications" do + let(:admin) { create(:admin) } + let(:last_awesome_config) { Decidim::DecidimAwesome::AwesomeConfig.last } + + before do + login_as admin, scope: :admin + visit decidim_system.root_path + end + + it "creates a new organization" do + fill_in "Name", with: "Citizen Corp" + fill_in "Host", with: "www.example.org" + fill_in "Secondary hosts", with: "foo.example.org\n\rbar.example.org" + fill_in "Reference prefix", with: "CCORP" + fill_in "Organization admin name", with: "City Mayor" + fill_in "Organization admin email", with: "mayor@example.org" + check "organization_available_locales_en" + choose "organization_default_locale_en" + choose "Allow participants to register and login" + check "Example authorization (Direct)" + click_on "Show advanced settings" + within ".awesome_available_authorizations" do + check "Example authorization (Direct)" + end + click_on "Create organization & invite admin" + + within ".flash__message" do + expect(page).to have_content("Organization successfully created.") + expect(page).to have_content("mayor@example.org") + end + expect(page).to have_content("Citizen Corp") + expect(last_awesome_config.value).to eq(["dummy_authorization_handler"]) + expect(last_awesome_config.var).to eq("admins_available_authorizations") + expect(last_awesome_config.organization.name).to eq("Citizen Corp") + expect(last_awesome_config.organization.host).to eq("www.example.org") + end + + context "when organization exists" do + let!(:organization) { create(:organization) } + + before do + visit decidim_system.edit_organization_path(organization) + end + + it "updates an organization" do + fill_in "Name", with: "Citizen Corp" + check "Example authorization (Direct)" + click_on "Show advanced settings" + within ".awesome_available_authorizations" do + check "Example authorization (Direct)" + end + click_on "Save" + + within ".flash__message" do + expect(page).to have_content("Organization successfully updated.") + end + expect(page).to have_content("Citizen Corp") + expect(last_awesome_config.value).to eq(["dummy_authorization_handler"]) + expect(last_awesome_config.var).to eq("admins_available_authorizations") + expect(last_awesome_config.organization.name).to eq("Citizen Corp") + expect(last_awesome_config.organization.host).to eq(organization.host) + end + end + + context "when admins_available_authorizations is disabled" do + let!(:organization) { create(:organization) } + + before do + allow(Decidim::DecidimAwesome.config).to receive(:admins_available_authorizations).and_return(:disabled) + visit decidim_system.edit_organization_path(organization) + end + + it "does not show the awesome configuration" do + click_on "Show advanced settings" + + expect(page).not_to have_content("Decidim Awesome Tweaks") + expect(page).not_to have_content("Allow admins to manually verify users with these authorizations") + end + end +end diff --git a/spec/system/admin/custom_styles_spec.rb b/spec/system/admin/custom_styles_spec.rb index 700000868..bdcf2bdcf 100644 --- a/spec/system/admin/custom_styles_spec.rb +++ b/spec/system/admin/custom_styles_spec.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "spec_helper" +require "decidim/decidim_awesome/test/shared_examples/custom_styles_examples" describe "Custom styles" do let(:organization) { create(:organization) } @@ -8,6 +9,7 @@ let!(:participatory_process) { create(:participatory_process, organization:) } let!(:config) { create(:awesome_config, organization:, var: :scoped_admin_styles, value: styles) } let(:config_helper) { create(:awesome_config, organization:, var: :scoped_admin_style_bar) } + let(:default_background_color) { "rgba(0, 0, 0, 0)" } let(:styles) do { "bar" => "body {background: red;}" @@ -20,26 +22,6 @@ visit decidim_admin.root_path end - shared_examples "extra css is added" do - it "css is present" do - expect(page.body).to have_content("body {background: red;}") - end - - it "css is applied" do - expect(page.execute_script("return window.getComputedStyle($('body')[0]).backgroundColor")).to eq("rgb(255, 0, 0)") - end - end - - shared_examples "no extra css is added" do - it "css is no present" do - expect(page.body).not_to have_content("body {background: red;}") - end - - it "css is not applyied" do - expect(page.execute_script("return window.getComputedStyle($('body')[0]).backgroundColor")).to eq("rgba(0, 0, 0, 0)") - end - end - context "when there are custom styles" do it_behaves_like "extra css is added" end diff --git a/spec/system/public/custom_styles_spec.rb b/spec/system/public/custom_styles_spec.rb index ac1aa1092..d05ee94e4 100644 --- a/spec/system/public/custom_styles_spec.rb +++ b/spec/system/public/custom_styles_spec.rb @@ -1,12 +1,14 @@ # frozen_string_literal: true require "spec_helper" +require "decidim/decidim_awesome/test/shared_examples/custom_styles_examples" describe "Custom styles" do let(:organization) { create(:organization) } let!(:participatory_process) { create(:participatory_process, organization:) } let!(:config) { create(:awesome_config, organization:, var: :scoped_styles, value: styles) } let(:config_helper) { create(:awesome_config, organization:, var: :scoped_style_bar) } + let(:default_background_color) { "rgba(0, 0, 0, 0)" } let(:styles) do { "bar" => "body {background: red;}" @@ -18,26 +20,6 @@ visit decidim.root_path end - shared_examples "extra css is added" do - it "css is present" do - expect(page.body).to have_content("body {background: red;}") - end - - it "css is applied" do - expect(page.execute_script("return window.getComputedStyle($('body')[0]).backgroundColor")).to eq("rgb(255, 0, 0)") - end - end - - shared_examples "no extra css is added" do - it "css is no present" do - expect(page.body).not_to have_content("body {background: red;}") - end - - it "css is not applyied" do - expect(page.execute_script("return window.getComputedStyle($('body')[0]).backgroundColor")).to eq("rgba(0, 0, 0, 0)") - end - end - context "when there are custom styles" do it_behaves_like "extra css is added" end