123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # frozen_string_literal: true
- require 'concurrent'
- require_relative '../../config/boot'
- require_relative '../../config/environment'
- require_relative 'cli_helper'
- module Mastodon
- class CanonicalEmailBlocksCLI < Thor
- include CLIHelper
- def self.exit_on_failure?
- true
- end
- desc 'find EMAIL', 'Find a given e-mail address in the canonical e-mail blocks'
- long_desc <<-LONG_DESC
- When suspending a local user, a hash of a "canonical" version of their e-mail
- address is stored to prevent them from signing up again.
- This command can be used to find whether a known email address is blocked.
- LONG_DESC
- def find(email)
- accts = CanonicalEmailBlock.matching_email(email)
- if accts.empty?
- say("#{email} is not blocked", :green)
- else
- say("#{email} is blocked", :red)
- end
- end
- desc 'remove EMAIL', 'Remove a canonical e-mail block'
- long_desc <<-LONG_DESC
- When suspending a local user, a hash of a "canonical" version of their e-mail
- address is stored to prevent them from signing up again.
- This command allows removing a canonical email block.
- LONG_DESC
- def remove(email)
- blocks = CanonicalEmailBlock.matching_email(email)
- if blocks.empty?
- say("#{email} is not blocked", :green)
- else
- blocks.destroy_all
- say("Unblocked #{email}", :green)
- end
- end
- end
- end
|