Class: DoorMat::ManageEmailController

Inherits:
ApplicationController show all
Defined in:
app/controllers/door_mat/manage_email_controller.rb

Instance Method Summary collapse

Methods included from Controller

#config_url_redirect, #handle_unverified_request, #lockdown, #main_app_root_url, #protected_by_password_less_session, #require_confirmed_email, #require_password_reconfirm, #require_valid_session, #sign_out, #update_session_last_activity_time

Instance Method Details

#createObject



11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/door_mat/manage_email_controller.rb', line 11

def create
  @email = DoorMat::Email.for(manage_email_params[:address])

  if DoorMat::Process::ManageEmail.add(@email, DoorMat::Session.current_session.actor, self)
    flash[:notice] = I18n.t('door_mat.manage_email.email_added')

    redirect_to config_url_redirect(:add_email_success_url)
  else
    render :new
  end
end

#destroyObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/door_mat/manage_email_controller.rb', line 23

def destroy
  encoded_address = params[:email]
  email = DoorMat::Session.current_session.actor.email_from_urlsafe_encoded(encoded_address)

  if email.blank?
    flash[:alert] = I18n.t('door_mat.manage_email.could_not_delete')
  elsif 1 == DoorMat::Session.current_session.actor.emails.count
    flash[:alert] = I18n.t('door_mat.manage_email.could_not_delete_only_email')
  elsif email == DoorMat::Session.current_session.email
    flash[:alert] = I18n.t('door_mat.manage_email.could_not_delete_current_email')
  elsif email.primary?
    flash[:alert] = I18n.t('door_mat.manage_email.can_not_delete_primary')
  else
    email.destroy!
    flash[:notice] = I18n.t('door_mat.manage_email.email_deleted')
  end

  redirect_to config_url_redirect(:destroy_email_redirect_url)
end

#newObject



7
8
9
# File 'app/controllers/door_mat/manage_email_controller.rb', line 7

def new
  @email = DoorMat::Email.new
end

#set_primary_emailObject



43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/door_mat/manage_email_controller.rb', line 43

def set_primary_email
  encoded_address = params[:email]
  if DoorMat::Process::ManageEmail.set_primary(encoded_address, DoorMat::Session.current_session.actor)
    flash[:notice] = I18n.t('door_mat.manage_email.primary_email_updated')
  else
    flash[:alert] = I18n.t('door_mat.manage_email.could_not_update_primary_email')
  end

  redirect_to config_url_redirect(:set_primary_email_redirect_url)
end