8c51108a0c
* enable shared private and public maps * change the list * yeehaw add collaborators * I believe this fixes the error connor brought up * when topic or synapse is no longer on a map, don't defer * needs to be before? * just do it in the controller * make recommendation they sign in and retry * better email * config for mailer previews * improve wording * shouldn't have included that * switch to green * don't execute if there's no map * wasn't including the right people in some circumstances * Finish breaking out JS files (#551) * metamaps.Realtime refactor * Metamaps.Util * Metamaps.Visualize * Metamaps.SynapseCard * Metamaps.TopicCard * Metamaps.Create.js * Remove erb extension from Metamaps.Map.js * Metmaps.Account and Metamaps.GlobalUI remove extension * Metamaps.JIT no more erb extension * move Backbone.init; standard-format on Metamaps.js.erb * factor out canvas support check function * some llittle template bugs * remove featured from signed in explore maps bar * don't let it overflow off the page
65 lines
1.5 KiB
Ruby
65 lines
1.5 KiB
Ruby
class MappingsController < ApplicationController
|
|
|
|
before_action :require_user, only: [:create, :update, :destroy]
|
|
after_action :verify_authorized, except: :index
|
|
after_action :verify_policy_scoped, only: :index
|
|
|
|
respond_to :json
|
|
|
|
# GET /mappings/1.json
|
|
def show
|
|
@mapping = Mapping.find(params[:id])
|
|
authorize @mapping
|
|
|
|
render json: @mapping
|
|
end
|
|
|
|
# POST /mappings.json
|
|
def create
|
|
@mapping = Mapping.new(mapping_params)
|
|
authorize @mapping
|
|
@mapping.user = current_user
|
|
|
|
if @mapping.save
|
|
render json: @mapping, status: :created
|
|
Events::NewMapping.publish!(@mapping, current_user)
|
|
else
|
|
render json: @mapping.errors, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
# PUT /mappings/1.json
|
|
def update
|
|
@mapping = Mapping.find(params[:id])
|
|
authorize @mapping
|
|
|
|
if @mapping.update_attributes(mapping_params)
|
|
head :no_content
|
|
else
|
|
render json: @mapping.errors, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
# DELETE /mappings/1.json
|
|
def destroy
|
|
@mapping = Mapping.find(params[:id])
|
|
authorize @mapping
|
|
|
|
mappable = @mapping.mappable
|
|
if mappable.defer_to_map
|
|
mappable.permission = mappable.defer_to_map.permission
|
|
mappable.defer_to_map_id = nil
|
|
mappable.save
|
|
end
|
|
|
|
@mapping.destroy
|
|
|
|
head :no_content
|
|
end
|
|
|
|
private
|
|
# Never trust parameters from the scary internet, only allow the white list through.
|
|
def mapping_params
|
|
params.require(:mapping).permit(:id, :xloc, :yloc, :mappable_id, :mappable_type, :map_id)
|
|
end
|
|
end
|