Sha256: 8300f14e73eec795db0027c0b9260b3fe5c8610a4016aef9cdd16b62a5666957
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
module Mailkick class SubscriptionsController < ActionController::Base protect_from_forgery with: :exception before_action :set_email def show end def unsubscribe Mailkick.opt_out(@options) redirect_to subscription_path(params[:id]) end def subscribe Mailkick.opt_in(@options) redirect_to subscription_path(params[:id]) end protected def set_email verifier = ActiveSupport::MessageVerifier.new(Mailkick.secret_token) begin @email, user_id, user_type, @list = verifier.verify(params[:id]) if user_type # on the unprobabilistic chance user_type is compromised, not much damage @user = user_type.constantize.find(user_id) end @options = { email: @email, user: @user, list: @list } rescue ActiveSupport::MessageVerifier::InvalidSignature render text: "Subscription not found", status: :bad_request end end def opted_out? Mailkick.opted_out?(@options) end helper_method :opted_out? def subscribe_url subscribe_subscription_path(params[:id]) end helper_method :subscribe_url def unsubscribe_url unsubscribe_subscription_path(params[:id]) end helper_method :unsubscribe_url end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mailkick-0.2.1 | app/controllers/mailkick/subscriptions_controller.rb |
mailkick-0.2.0 | app/controllers/mailkick/subscriptions_controller.rb |