decidim-cleaner 0.1.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/jobs/decidim/cleaner/clean_inactive_users_job.rb +9 -4
- data/config/i18n-tasks.yml +8 -3
- data/config/locales/en.yml +11 -6
- data/config/locales/fr.yml +15 -8
- data/lib/decidim/cleaner/admin_engine.rb +4 -4
- data/lib/decidim/cleaner/engine.rb +0 -4
- data/lib/decidim/cleaner/version.rb +4 -2
- data/lib/decidim/cleaner.rb +0 -1
- data/lib/tasks/decidim_cleaner_tasks.rake +2 -0
- metadata +4 -12
- data/app/controllers/decidim/cleaner/application_controller.rb +0 -13
- data/app/helpers/decidim/cleaner/application_helper.rb +0 -10
- data/app/models/decidim/cleaner/application_record.rb +0 -10
- data/app/packs/entrypoints/decidim_cleaner.js +0 -2
- data/app/packs/images/decidim/cleaner/icon.svg +0 -1
- data/app/packs/stylesheets/decidim/cleaner/cleaner.scss +0 -1
- data/config/assets.rb +0 -9
- data/lib/decidim/cleaner/component.rb +0 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d719f430907247b84a0cc288639ab222c6120d27e6dc407d6b04f5547fe82a2e
|
4
|
+
data.tar.gz: f176026b4e7218680433e383c266587ce6fa47ea360ac42972452bc4e4446b73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 148df6e0913bb0965c4660449f332a647bac902d1ce35c902880ac7e11b4ce07515bef36b7b92d238e2259ba6dc9f4a4d9f956e24e070bcd4ddb4205f8146048
|
7
|
+
data.tar.gz: '073996a639f9961296aea2a95329e400441524e5a088f04fcfa6bf130d81be7658fc29ed4a66d3e5fbbf4b34c38e77f067c48eb0ad03782df06c9eab1bc42823'
|
@@ -17,18 +17,23 @@ module Decidim
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def send_warning(users)
|
20
|
-
users.
|
20
|
+
users.find_each do |user|
|
21
|
+
next if user.deleted?
|
22
|
+
|
21
23
|
InactiveUsersMailer.warning_inactive(user).deliver_now
|
22
24
|
Rails.logger.info "Inactive warning sent to #{user.email}"
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
28
|
def delete_user_and_send_email(users)
|
27
|
-
users.
|
29
|
+
users.find_each do |user|
|
30
|
+
next if user.deleted?
|
31
|
+
|
28
32
|
InactiveUsersMailer.warning_deletion(user).deliver_now
|
29
33
|
Rails.logger.info "Deletion warning sent to #{user.email}"
|
30
|
-
|
31
|
-
|
34
|
+
|
35
|
+
Decidim::DestroyAccount.call(user, Decidim::DeleteAccountForm.from_params({ delete_reason: I18n.t("decidim.cleaner.delete_reason") }))
|
36
|
+
Rails.logger.info "User with id #{user.id} destroyed"
|
32
37
|
end
|
33
38
|
end
|
34
39
|
end
|
data/config/i18n-tasks.yml
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
---
|
2
2
|
|
3
3
|
base_locale: en
|
4
|
-
locales: [en]
|
4
|
+
locales: [en, fr]
|
5
5
|
|
6
6
|
ignore_unused:
|
7
|
-
-
|
7
|
+
- activemodel.attributes.organization.delete_admin_logs
|
8
|
+
- activemodel.attributes.organization.delete_admin_logs_after
|
9
|
+
- activemodel.attributes.organization.delete_inactive_users
|
10
|
+
- activemodel.attributes.organization.delete_inactive_users_after
|
11
|
+
- activemodel.attributes.organization.delete_inactive_users_email_after
|
12
|
+
- decidim.admin.menu.clean
|
8
13
|
|
9
14
|
ignore_missing:
|
10
|
-
|
15
|
+
|
data/config/locales/en.yml
CHANGED
@@ -7,11 +7,16 @@ en:
|
|
7
7
|
delete_admin_logs_after: Delete admin logs after (days, default 365)
|
8
8
|
delete_inactive_users: Enable inactive users deletion
|
9
9
|
delete_inactive_users_after: Delete inactive users after (days, default 390)
|
10
|
-
delete_inactive_users_email_after: Send email to inactive users before deletion
|
10
|
+
delete_inactive_users_email_after: Send email to inactive users before deletion
|
11
|
+
(days, default 365)
|
11
12
|
decidim:
|
12
13
|
admin:
|
13
14
|
menu:
|
14
15
|
clean: Data cleaner
|
16
|
+
organization:
|
17
|
+
update:
|
18
|
+
error: There was a problem updating this organization.
|
19
|
+
success: Organization updated successfully.
|
15
20
|
cleaner:
|
16
21
|
admin:
|
17
22
|
organization_cleaner:
|
@@ -20,19 +25,19 @@ en:
|
|
20
25
|
form:
|
21
26
|
admin_log_cleaner_title: Admin log
|
22
27
|
inactive_users_cleaner_title: Inactive users
|
28
|
+
delete_reason: User deleted because of inactivity
|
23
29
|
inactive_users_mailer:
|
24
30
|
warning_deletion:
|
25
|
-
body_1: You are inactive since %{days} days on <a href="%{organization_url}">
|
31
|
+
body_1: You are inactive since %{days} days on <a href="%{organization_url}">
|
32
|
+
%{organization_name} </a>.
|
26
33
|
body_2: As a result, your account has been deleted.
|
27
34
|
greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
28
35
|
hello: Hello
|
29
36
|
subject: Your account has been deleted
|
30
37
|
warning_inactive:
|
31
38
|
body_1: You are inactive since %{days} days on %{organization_name}.
|
32
|
-
body_2: <a href="%{organization_url}">If no reaction within %{remaining_days}
|
39
|
+
body_2: <a href="%{organization_url}">If no reaction within %{remaining_days}
|
40
|
+
days </a>, your account will be deleted.
|
33
41
|
greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
34
42
|
hello: Hello
|
35
43
|
subject: Your account is inactive
|
36
|
-
components:
|
37
|
-
cleaner:
|
38
|
-
name: Cleaner
|
data/config/locales/fr.yml
CHANGED
@@ -4,14 +4,21 @@ fr:
|
|
4
4
|
attributes:
|
5
5
|
organization:
|
6
6
|
delete_admin_logs: Activer la suppression de l'historique d'administration
|
7
|
-
delete_admin_logs_after: Supprimer l'historique d'administration après (jours,
|
7
|
+
delete_admin_logs_after: Supprimer l'historique d'administration après (jours,
|
8
|
+
par défaut 365)
|
8
9
|
delete_inactive_users: Activer la suppression des utilisateurs inactifs
|
9
|
-
delete_inactive_users_after: Supprimer les utilisateurs inactifs après (jours,
|
10
|
-
|
10
|
+
delete_inactive_users_after: Supprimer les utilisateurs inactifs après (jours,
|
11
|
+
par défaut 390)
|
12
|
+
delete_inactive_users_email_after: Envoyer un courriel aux utilisateurs inactifs
|
13
|
+
avant la suppression (jours, par défaut 365)
|
11
14
|
decidim:
|
12
15
|
admin:
|
13
16
|
menu:
|
14
17
|
clean: Nettoyeur de données
|
18
|
+
organization:
|
19
|
+
update:
|
20
|
+
error: Une erreur est survenue lors de la mise à jour de l'organisation
|
21
|
+
success: L'organisation a été mise à jour avec succès
|
15
22
|
cleaner:
|
16
23
|
admin:
|
17
24
|
organization_cleaner:
|
@@ -20,19 +27,19 @@ fr:
|
|
20
27
|
form:
|
21
28
|
admin_log_cleaner_title: Historique d'administration
|
22
29
|
inactive_users_cleaner_title: Utilisateurs inactifs
|
30
|
+
delete_reason: Utilisateur supprimé pour inactivité
|
23
31
|
inactive_users_mailer:
|
24
32
|
warning_deletion:
|
25
|
-
body_1: Vous êtes inactif depuis %{days} jours sur <a href="%{organization_url}">
|
33
|
+
body_1: Vous êtes inactif depuis %{days} jours sur <a href="%{organization_url}">
|
34
|
+
%{organization_name} </a>.
|
26
35
|
body_2: Par conséquent, votre compte a été supprimé.
|
27
36
|
greetings: Cordialement,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
28
37
|
hello: Bonjour
|
29
38
|
subject: Votre compte a été supprimé
|
30
39
|
warning_inactive:
|
31
40
|
body_1: Vous êtes inactif depuis %{days} jours sur %{organization_name}.
|
32
|
-
body_2: <a href="%{organization_url}">Si aucune réaction dans les %{remaining_days}
|
41
|
+
body_2: <a href="%{organization_url}">Si aucune réaction dans les %{remaining_days}
|
42
|
+
jours</a>, votre compte sera supprimé.
|
33
43
|
greetings: Cordialement,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
34
44
|
hello: Bonjour
|
35
45
|
subject: Votre compte est inactif
|
36
|
-
components:
|
37
|
-
cleaner:
|
38
|
-
name: Nettoyeur
|
@@ -9,6 +9,10 @@ module Decidim
|
|
9
9
|
paths["db/migrate"] = nil
|
10
10
|
paths["lib/tasks"] = nil
|
11
11
|
|
12
|
+
def load_seed
|
13
|
+
nil
|
14
|
+
end
|
15
|
+
|
12
16
|
initializer "decidim_admin.admin_settings_menu" do
|
13
17
|
Decidim.menu :admin_settings_menu do |menu|
|
14
18
|
menu.add_item :clean_organization,
|
@@ -19,10 +23,6 @@ module Decidim
|
|
19
23
|
active: is_active_link?(decidim_admin.edit_organization_cleaner_path)
|
20
24
|
end
|
21
25
|
end
|
22
|
-
|
23
|
-
def load_seed
|
24
|
-
nil
|
25
|
-
end
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -8,10 +8,6 @@ module Decidim
|
|
8
8
|
# This is the engine that runs on the public interface of cleaner.
|
9
9
|
class Engine < ::Rails::Engine
|
10
10
|
isolate_namespace Decidim::Cleaner
|
11
|
-
|
12
|
-
initializer "Cleaner.webpacker.assets_path" do
|
13
|
-
Decidim.register_assets_path File.expand_path("app/packs", root)
|
14
|
-
end
|
15
11
|
end
|
16
12
|
end
|
17
13
|
end
|
@@ -1,14 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# :nocov:
|
3
4
|
module Decidim
|
4
5
|
# This holds the decidim-meetings version.
|
5
6
|
module Cleaner
|
6
7
|
def self.version
|
7
|
-
"
|
8
|
+
"1.0.0"
|
8
9
|
end
|
9
10
|
|
10
11
|
def self.decidim_version
|
11
|
-
"0.
|
12
|
+
"0.26"
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
16
|
+
# :nocov:
|
data/lib/decidim/cleaner.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# :nocov:
|
3
4
|
namespace :decidim_cleaner do
|
4
5
|
desc "Warns and deletes inactive users"
|
5
6
|
task clean_inactive_users: :environment do
|
@@ -11,3 +12,4 @@ namespace :decidim_cleaner do
|
|
11
12
|
Decidim::Cleaner::CleanAdminLogsJob.perform_now
|
12
13
|
end
|
13
14
|
end
|
15
|
+
# :nocov:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-cleaner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Quentinchampenois
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.26'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.26'
|
27
27
|
description: Clean outdated data in Decidim's database.
|
28
28
|
email:
|
29
29
|
- 26109239+Quentinchampenois@users.noreply.github.com
|
@@ -37,22 +37,15 @@ files:
|
|
37
37
|
- app/commands/decidim/cleaner/admin/update_organization_cleaner.rb
|
38
38
|
- app/controllers/decidim/cleaner/admin/application_controller.rb
|
39
39
|
- app/controllers/decidim/cleaner/admin/organization_cleaner_controller.rb
|
40
|
-
- app/controllers/decidim/cleaner/application_controller.rb
|
41
40
|
- app/forms/decidim/cleaner/admin/organization_cleaner_form.rb
|
42
|
-
- app/helpers/decidim/cleaner/application_helper.rb
|
43
41
|
- app/jobs/decidim/cleaner/clean_admin_logs_job.rb
|
44
42
|
- app/jobs/decidim/cleaner/clean_inactive_users_job.rb
|
45
43
|
- app/mailers/decidim/cleaner/inactive_users_mailer.rb
|
46
|
-
- app/models/decidim/cleaner/application_record.rb
|
47
|
-
- app/packs/entrypoints/decidim_cleaner.js
|
48
|
-
- app/packs/images/decidim/cleaner/icon.svg
|
49
|
-
- app/packs/stylesheets/decidim/cleaner/cleaner.scss
|
50
44
|
- app/permissions/decidim/cleaner/admin/permissions.rb
|
51
45
|
- app/views/decidim/cleaner/admin/organization_cleaner/_form.html.erb
|
52
46
|
- app/views/decidim/cleaner/admin/organization_cleaner/edit.html.erb
|
53
47
|
- app/views/decidim/cleaner/inactive_users_mailer/warning_deletion.html.erb
|
54
48
|
- app/views/decidim/cleaner/inactive_users_mailer/warning_inactive.html.erb
|
55
|
-
- config/assets.rb
|
56
49
|
- config/i18n-tasks.yml
|
57
50
|
- config/locales/en.yml
|
58
51
|
- config/locales/fr.yml
|
@@ -62,7 +55,6 @@ files:
|
|
62
55
|
- lib/decidim/cleaner.rb
|
63
56
|
- lib/decidim/cleaner/admin.rb
|
64
57
|
- lib/decidim/cleaner/admin_engine.rb
|
65
|
-
- lib/decidim/cleaner/component.rb
|
66
58
|
- lib/decidim/cleaner/engine.rb
|
67
59
|
- lib/decidim/cleaner/test/factories.rb
|
68
60
|
- lib/decidim/cleaner/version.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Cleaner
|
5
|
-
# This controller is the abstract class from which all other controllers of
|
6
|
-
# this engine inherit.
|
7
|
-
#
|
8
|
-
# Note that it inherits from `Decidim::Components::BaseController`, which
|
9
|
-
# override its layout and provide all kinds of useful methods.
|
10
|
-
class ApplicationController < Decidim::Components::BaseController
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 35"><path d="M17.5 35A17.5 17.5 0 1 1 35 17.5 17.52 17.52 0 0 1 17.5 35zm0-33.06A15.56 15.56 0 1 0 33.06 17.5 15.57 15.57 0 0 0 17.5 1.94zm9.5 13.7H8a1 1 0 0 1 0-1.94h19a1 1 0 0 1 0 1.94zm0 3.68H8a1 1 0 0 1 0-1.94h19a1 1 0 0 1 0 1.94zM22.26 23H8a1 1 0 0 1 0-1.94h14.26a1 1 0 0 1 0 1.94z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
/* css for decidim_cleaner */
|
data/config/assets.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
base_path = File.expand_path("..", __dir__)
|
4
|
-
|
5
|
-
Decidim::Webpacker.register_path("#{base_path}/app/packs")
|
6
|
-
Decidim::Webpacker.register_entrypoints(
|
7
|
-
decidim_cleaner: "#{base_path}/app/packs/entrypoints/decidim_cleaner.js"
|
8
|
-
)
|
9
|
-
Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/cleaner/cleaner")
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "decidim/components/namer"
|
4
|
-
|
5
|
-
Decidim.register_component(:cleaner) do |component|
|
6
|
-
component.engine = Decidim::Cleaner::Engine
|
7
|
-
component.admin_engine = Decidim::Cleaner::AdminEngine
|
8
|
-
component.icon = "decidim/cleaner/icon.svg"
|
9
|
-
|
10
|
-
# component.on(:before_destroy) do |instance|
|
11
|
-
# # Code executed before removing the component
|
12
|
-
# end
|
13
|
-
|
14
|
-
# These actions permissions can be configured in the admin panel
|
15
|
-
# component.actions = %w()
|
16
|
-
|
17
|
-
# component.settings(:global) do |settings|
|
18
|
-
# # Add your global settings
|
19
|
-
# # Available types: :integer, :boolean
|
20
|
-
# # settings.attribute :vote_limit, type: :integer, default: 0
|
21
|
-
# end
|
22
|
-
|
23
|
-
# component.settings(:step) do |settings|
|
24
|
-
# # Add your settings per step
|
25
|
-
# end
|
26
|
-
|
27
|
-
# component.register_resource(:some_resource) do |resource|
|
28
|
-
# # Register a optional resource that can be references from other resources.
|
29
|
-
# resource.model_class_name = "Decidim::Cleaner::SomeResource"
|
30
|
-
# resource.template = "decidim/cleaner/some_resources/linked_some_resources"
|
31
|
-
# end
|
32
|
-
|
33
|
-
# component.register_stat :some_stat do |context, start_at, end_at|
|
34
|
-
# # Register some stat number to the application
|
35
|
-
# end
|
36
|
-
|
37
|
-
# component.seeds do |participatory_space|
|
38
|
-
# # Add some seeds for this component
|
39
|
-
# end
|
40
|
-
end
|