decidim-cleaner 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d719f430907247b84a0cc288639ab222c6120d27e6dc407d6b04f5547fe82a2e
4
- data.tar.gz: f176026b4e7218680433e383c266587ce6fa47ea360ac42972452bc4e4446b73
3
+ metadata.gz: f54787d174b568ded865927e72ec935eda6e9133b7f0852bc9e00e7aa1a3d7ca
4
+ data.tar.gz: 948c3bf4816c2ce34ce80d3d57196a5712c8fb286343662bfec2bfd3b4e3729a
5
5
  SHA512:
6
- metadata.gz: 148df6e0913bb0965c4660449f332a647bac902d1ce35c902880ac7e11b4ce07515bef36b7b92d238e2259ba6dc9f4a4d9f956e24e070bcd4ddb4205f8146048
7
- data.tar.gz: '073996a639f9961296aea2a95329e400441524e5a088f04fcfa6bf130d81be7658fc29ed4a66d3e5fbbf4b34c38e77f067c48eb0ad03782df06c9eab1bc42823'
6
+ metadata.gz: a6eac33bbda665f50c8e2e0ac84e7b5c7ee143e6adce9c624a31e9cb89ab9d2c31cb57c92cad167ee84420bf176ccf236a6a055bc288556cdfcc76cda940dcf5
7
+ data.tar.gz: bac945ce0b0830278a2536242d0397e6bf8f78d448de866bf4ff23ebb047726c7c3d74cacd43e35b570ed469d39dcf189a6f025efc1dc36770c242d3bbd4a116
data/README.md CHANGED
@@ -22,6 +22,11 @@ bundle exec rails decidim_cleaner:install:migrations
22
22
  bundle exec rails db:migrate
23
23
  ```
24
24
 
25
+ ### Sidekiq Scheduler
26
+ [Further documentation](https://github.com/sidekiq-scheduler/sidekiq-scheduler)
27
+
28
+ **Sidekiq scheduler uses a 6 columns format**
29
+
25
30
  You can then add to your 'config/sidekiq.yml' file:
26
31
 
27
32
  ```yaml
@@ -36,6 +41,15 @@ You can then add to your 'config/sidekiq.yml' file:
36
41
  queue: scheduled
37
42
  ```
38
43
 
44
+ ### Cronjob
45
+ ```
46
+ # Warns and deletes inactive users
47
+ 0 9 * * * cd /home/user/decidim_application && RAILS_ENV=production bundle exec rake decidim_cleaner:clean_inactive_users
48
+
49
+ # Deletes old admin logs
50
+ 0 9 * * * cd /home/user/decidim_application && RAILS_ENV=production bundle exec rake decidim_cleaner:clean_admin_logs
51
+ ```
52
+
39
53
  ## Available tasks
40
54
 
41
55
  - [ ] **Delete inactive users**
@@ -5,7 +5,7 @@ module Decidim
5
5
  module Admin
6
6
  # A command with all the business logic for updating the current
7
7
  # organization cleaner.
8
- class UpdateOrganizationCleaner < Decidim::Command
8
+ class UpdateOrganizationCleaner < Rectify::Command
9
9
  # Public: Initializes the command.
10
10
  #
11
11
  # organization - The Organization that will be updated.
@@ -9,7 +9,9 @@ module Decidim
9
9
  Decidim::Organization.find_each do |organization|
10
10
  next unless organization.delete_admin_logs?
11
11
 
12
- Decidim::ActionLog.where(organization:).where("created_at < ?", Time.zone.now - (organization.delete_admin_logs_after || 365).days).delete_all
12
+ Decidim::ActionLog.where(organization: organization)
13
+ .where("created_at < ?", Time.zone.now - (organization.delete_admin_logs_after || 365).days)
14
+ .delete_all
13
15
  end
14
16
  end
15
17
  end
@@ -9,17 +9,21 @@ module Decidim
9
9
  Decidim::Organization.find_each do |organization|
10
10
  next unless organization.delete_inactive_users?
11
11
 
12
- send_warning(Decidim::User.where(organization:)
12
+ send_warning(Decidim::User.where(organization: organization)
13
+ .not_deleted
14
+ .where.not(email: "")
13
15
  .where("last_sign_in_at < ?", Time.zone.now - (organization.delete_inactive_users_email_after || 365).days)
14
16
  .where("last_sign_in_at > ?", Time.zone.now - (organization.delete_inactive_users_email_after || 365).days - 1.day))
15
- delete_user_and_send_email(Decidim::User.where(organization:).where("last_sign_in_at < ?", Time.zone.now - (organization.delete_inactive_users_after || 390).days))
17
+
18
+ delete_user_and_send_email(Decidim::User.where(organization: organization)
19
+ .not_deleted
20
+ .where.not(email: "")
21
+ .where("last_sign_in_at < ?", Time.zone.now - (organization.delete_inactive_users_after || 390).days))
16
22
  end
17
23
  end
18
24
 
19
25
  def send_warning(users)
20
26
  users.find_each do |user|
21
- next if user.deleted?
22
-
23
27
  InactiveUsersMailer.warning_inactive(user).deliver_now
24
28
  Rails.logger.info "Inactive warning sent to #{user.email}"
25
29
  end
@@ -27,8 +31,6 @@ module Decidim
27
31
 
28
32
  def delete_user_and_send_email(users)
29
33
  users.find_each do |user|
30
- next if user.deleted?
31
-
32
34
  InactiveUsersMailer.warning_deletion(user).deliver_now
33
35
  Rails.logger.info "Deletion warning sent to #{user.email}"
34
36
 
@@ -13,7 +13,7 @@ module Decidim
13
13
  "decidim.cleaner.inactive_users_mailer.warning_inactive.subject",
14
14
  organization_name: @organization.name
15
15
  )
16
- mail(to: user.email, subject:)
16
+ mail(to: user.email, subject: subject)
17
17
  end
18
18
  end
19
19
 
@@ -25,7 +25,7 @@ module Decidim
25
25
  "decidim.cleaner.inactive_users_mailer.warning_deletion.subject",
26
26
  organization_name: @organization.name
27
27
  )
28
- mail(to: user.email, subject:)
28
+ mail(to: user.email, subject: subject)
29
29
  end
30
30
  end
31
31
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddDeleteAdminLogsToOrganization < ActiveRecord::Migration[6.1]
3
+ class AddDeleteAdminLogsToOrganization < ActiveRecord::Migration[5.2]
4
4
  def change
5
5
  add_column :decidim_organizations, :delete_admin_logs, :boolean, default: false, null: false
6
6
  add_column :decidim_organizations, :delete_admin_logs_after, :integer
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddDeleteInactiveUsersToOrganization < ActiveRecord::Migration[6.1]
3
+ class AddDeleteInactiveUsersToOrganization < ActiveRecord::Migration[5.2]
4
4
  def change
5
5
  add_column :decidim_organizations, :delete_inactive_users, :boolean, default: false, null: false
6
6
  add_column :decidim_organizations, :delete_inactive_users_email_after, :integer
@@ -5,11 +5,11 @@ module Decidim
5
5
  # This holds the decidim-meetings version.
6
6
  module Cleaner
7
7
  def self.version
8
- "1.0.0"
8
+ "2.0.0"
9
9
  end
10
10
 
11
- def self.decidim_version
12
- "0.26"
11
+ def self.compatible_decidim_version
12
+ "0.26.0"
13
13
  end
14
14
  end
15
15
  end
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: 1.0.0
4
+ version: 2.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-03-03 00:00:00.000000000 Z
11
+ date: 2023-03-29 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.26'
19
+ version: 0.26.0
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'
26
+ version: 0.26.0
27
27
  description: Clean outdated data in Decidim's database.
28
28
  email:
29
29
  - 26109239+Quentinchampenois@users.noreply.github.com
@@ -76,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: '3.1'
79
+ version: 2.7.5
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ">="