You can update the same "notifications" section that we allow you to update in "my account". This "subscriptions" section differs from the "my account" section because we do not need to be logged in to update the status of the notifications.
32 lines
795 B
Ruby
32 lines
795 B
Ruby
class SubscriptionsController < ApplicationController
|
|
before_action :set_user
|
|
skip_authorization_check
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
@user.update!(subscriptions_params)
|
|
redirect_to edit_subscriptions_path(token: @user.subscriptions_token),
|
|
notice: t("flash.actions.save_changes.notice")
|
|
end
|
|
|
|
private
|
|
|
|
def set_user
|
|
@user = if params[:token].present?
|
|
User.find_by!(subscriptions_token: params[:token])
|
|
else
|
|
current_user || raise(CanCan::AccessDenied)
|
|
end
|
|
end
|
|
|
|
def subscriptions_params
|
|
params.require(:user).permit(allowed_params)
|
|
end
|
|
|
|
def allowed_params
|
|
[:email_on_comment, :email_on_comment_reply, :email_on_direct_message, :email_digest, :newsletter]
|
|
end
|
|
end
|