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
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
#------------------------------------------------------------
##
# if a bounding box was specified do some sanity checks.
# restrict changesets to those enclosed by a bounding box
- # we need to return both the changesets and the bounding box
def conditions_bbox(changesets, bbox)
if bbox
bbox.check_boundaries