Class: DoorMat::ManageEmailController
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
#create ⇒ Object
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
|
#destroy ⇒ Object
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
|
#new ⇒ Object
7
8
9
|
# File 'app/controllers/door_mat/manage_email_controller.rb', line 7
def new
@email = DoorMat::Email.new
end
|
#set_primary_email ⇒ Object
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
|