decidim-cleaner 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  - - ">="