diff options
author | Starfall <us@starfall.systems> | 2022-03-08 17:55:38 -0600 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2022-03-08 17:55:38 -0600 |
commit | 239d67fc2c0ec82617de50a9831bc1a9efc30ecc (patch) | |
tree | a6806025fe9e094994366434b08093cee5923557 /app/models/form/email_domain_block_batch.rb | |
parent | ad1733ea294c6049336a9aeeb7ff96c8fea22cfa (diff) | |
parent | 02133866e6915e37431298b396e1aded1e4c44c5 (diff) |
Merge remote-tracking branch 'glitch/main'
Diffstat (limited to 'app/models/form/email_domain_block_batch.rb')
-rw-r--r-- | app/models/form/email_domain_block_batch.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/models/form/email_domain_block_batch.rb b/app/models/form/email_domain_block_batch.rb new file mode 100644 index 000000000..df120182b --- /dev/null +++ b/app/models/form/email_domain_block_batch.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class Form::EmailDomainBlockBatch + include ActiveModel::Model + include Authorization + include AccountableConcern + + attr_accessor :email_domain_block_ids, :action, :current_account + + def save + case action + when 'delete' + delete! + end + end + + private + + def email_domain_blocks + @email_domain_blocks ||= EmailDomainBlock.where(id: email_domain_block_ids) + end + + def delete! + email_domain_blocks.each do |email_domain_block| + authorize(email_domain_block, :destroy?) + email_domain_block.destroy! + log_action :destroy, email_domain_block + end + end +end |