Class: DoorMat::ActivitiesController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- DoorMat::ActivitiesController
- Defined in:
- app/controllers/door_mat/activities_controller.rb
Instance Method Summary collapse
-
#confirm_email ⇒ Object
:email is a Base64.urlsafe_encode64 of a user email address.
- #download_recovery_key ⇒ Object
- #resend_email_confirmation ⇒ Object
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
#confirm_email ⇒ Object
:email is a Base64.urlsafe_encode64 of a user email address
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/controllers/door_mat/activities_controller.rb', line 25 def confirm_email before_confirm_email actor = DoorMat::Session.current_session.actor token = params[:token] encoded_address = params[:email] actor.with_lock do actor.confirm_email_activities.each do |activity| if activity.input_valid?(token, encoded_address) if actor.has_primary_email? activity.email.confirmed! else activity.email.primary! end activity.done! flash[:notice] = "Email was confirmed." redirect_to config_url_redirect(:confirm_email_success_url) after_confirm_email(activity.email) return end end end after_failed_confirm_email lockdown(log_message: 'ERROR: failed request to confirm_email') end |
#download_recovery_key ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'app/controllers/door_mat/activities_controller.rb', line 54 def download_recovery_key before_download_recovery_key actor = DoorMat::Session.current_session.actor token = params[:token] disposition = params[:disposition] disposition = 'attachment' unless disposition.to_s == 'inline' actor.with_lock do actor.download_recovery_key_activities.each do |activity| if activity.input_valid?(token) recovery_key = DoorMat::Session.current_session.package_recovery_key send_data recovery_key, filename: "recovery_key_#{Date.current.strftime("%Y%m%d")}.txt", disposition: disposition activity.done! flash[:notice] = "Keep this recovery key file safely, you will need it to recover your data in case you forget your password." after_download_recovery_key return end end end after_failed_download_recovery_key lockdown(log_message: 'ERROR: failed request to download_recovery_key') end |
#resend_email_confirmation ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/controllers/door_mat/activities_controller.rb', line 7 def resend_email_confirmation actor = DoorMat::Session.current_session.actor encoded_email = params[:email] email = actor.email_from_urlsafe_encoded(encoded_email) if email.blank? redirect_to config_url_redirect(:resend_email_confirmation_redirect_url) else if email.not_confirmed? DoorMat::ActivityConfirmEmail.for(email, self) redirect_to config_url_redirect(:resend_email_confirmation_redirect_url) else redirect_to config_url_redirect(:confirm_email_success_url) end end end |