Class: Ahoy::MessagesController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Ahoy::MessagesController
- Defined in:
- app/controllers/ahoy/messages_controller.rb
Instance Method Summary collapse
Instance Method Details
#click ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/ahoy/messages_controller.rb', line 25 def click if @message && !@message.clicked_at @message.clicked_at = Time.now @message.opened_at ||= @message.clicked_at @message.save! end user_signature = params[:signature].to_s url = params[:url].to_s # TODO sign more than just url and transition to HMAC-SHA256 digest = "SHA1" signature = OpenSSL::HMAC.hexdigest(digest, AhoyEmail.secret_token, url) if ActiveSupport::SecurityUtils.secure_compare(user_signature, signature) publish :click, url: params[:url] redirect_to url else redirect_to AhoyEmail.invalid_redirect_url || main_app.root_url end end |
#open ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'app/controllers/ahoy/messages_controller.rb', line 14 def open if @message && !@message.opened_at @message.opened_at = Time.now @message.save! end publish :open send_data Base64.decode64("R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="), type: "image/gif", disposition: "inline" end |