Skip to content

Commit

Permalink
Add rake task to remove deprecated permissions
Browse files Browse the repository at this point in the history
This rake task removes deprecated permissions both from users and from the perms db table itself.
  • Loading branch information
aaronskiba committed Jul 25, 2024
1 parent 965b0a6 commit c6c1142
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions lib/tasks/data_cleanup.rake
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,21 @@ namespace :data_cleanup do
p 'Done'
end

desc 'Remove deprecated permissions from users and delete them from perms table'
task remove_deprecated_perms: :environment do
deprecated_perms = Perm.where(name: %w[admin user org_admin])
deprecated_perms_ids = deprecated_perms.pluck(:id)
users_with_deprecated_perms = User.includes(:perms).where(perms: { id: deprecated_perms_ids })
p "#{users_with_deprecated_perms.count} users have deprecated permissions"
users_with_deprecated_perms.each do |user|
perms_to_delete = user.perms.where(id: deprecated_perms_ids)
p "Deleting the following deprecated permissions for user with email '#{user.email}': #{perms_to_delete.pluck(:name)}"
user.perms.delete(perms_to_delete)
end
p 'Removing deprecated permissions from perms table'
deprecated_perms.destroy_all
p 'Done'
end
private

def report_known_invalidations(results, model_name, validation_error)
Expand Down

0 comments on commit c6c1142

Please sign in to comment.