module Maintenance module User class EmailNotificationsController < ApplicationController class VerificationError < Exception ; end before_filter :validate_sig, :only => [:destroy] rescue_from VerificationError, :with => :render_403 def show end def destroy @user = User.find(params[:user_id]) @user.receive_email_notifications = false @user.save end private def render_403 render :nothing => true, :status => 403 end def validate_sig digest = OpenSSL::Digest.new("sha256") calc_sig = OpenSSL::HMAC.hexdigest(digest, Danbooru.config.email_key, params[:user_id].to_s) if calc_sig != params[:sig] raise VerificationError.new end end end end end