Class: DoorMat::Process::ManageEmail

Inherits:
Object
  • Object
show all
Defined in:
lib/door_mat/process/manage_email.rb

Class Method Summary collapse

Class Method Details

.add(email, actor, controller) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/door_mat/process/manage_email.rb', line 5

def self.add(email, actor, controller)
  return false unless email.valid?

  actor.with_lock do
    return false unless actor.can_add_email? email

    email.status = :not_available if DoorMat::Email.count_matching(email.address) > DoorMat::configuration.plausible_deniability_count

    actor.emails << email

    DoorMat::ActivityConfirmEmail.for(email, controller)
  end

  true
end

.set_primary(encoded_address, actor) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/door_mat/process/manage_email.rb', line 21

def self.set_primary(encoded_address, actor)
  actor.with_lock do
    email = actor.email_from_urlsafe_encoded(encoded_address)
    return false if email.blank?

    return true if email.primary?

    return false unless email.confirmed?

    actor.emails.primary.each do |e|
      e.confirmed!
    end

    email.primary!
  end

  true
end