Add unsubscribe link to changeset notification mails

This commit is contained in:
Tom Hughes 2024-02-24 11:08:53 +00:00
parent 8e21e4e801
commit f0764d3eca
12 changed files with 227 additions and 4 deletions

View file

@ -9,6 +9,7 @@ class ChangesetsController < ApplicationController
before_action :authorize_web
before_action :set_locale
before_action -> { check_database_readable(:need_api => true) }, :only => [:index, :feed]
before_action :check_database_writable, :only => [:subscribe, :unsubscribe]
authorize_resource
@ -74,6 +75,34 @@ class ChangesetsController < ApplicationController
index
end
##
# subscribe to a changeset
def subscribe
@changeset = Changeset.find(params[:id])
if request.post?
@changeset.subscribe(current_user) unless @changeset.subscribed?(current_user)
redirect_to changeset_path(@changeset)
end
rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found
end
##
# unsubscribe from a changeset
def unsubscribe
@changeset = Changeset.find(params[:id])
if request.post?
@changeset.unsubscribe(current_user)
redirect_to changeset_path(@changeset)
end
rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found
end
private
#------------------------------------------------------------