Skip to content

Instantly share code, notes, and snippets.

@chrisZingel
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrisZingel/9042812 to your computer and use it in GitHub Desktop.
Save chrisZingel/9042812 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# Details refer to the blog post http://www.zingtech.co.nz/blog/spree_ck_editor_pages
require 'rubygems'
require 'faraday'
$base_url = 'http://0.0.0.0:4000'
puts "Enter ID that you want to test removal? "
id = gets.chomp
@conn = Faraday.new(:url => $base_url) do |faraday|
faraday.response :logger # log requests to STDOUT
faraday.request :url_encoded # form-encode POST params
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
end
def get_token
response = @conn.get '/'
raise 'CSRF Token not found' unless response.body.match(/meta content="([^"]+)" name="csrf-token"/)
@token = $1
@cookie = response.headers['set-cookie'].split('; ').first
end
def remove_picture(id)
get_token
@conn.delete "/ckeditor/pictures/#{id}.json", { authenticity_token: @token } do |response|
response.headers['Accept'] = 'text/html'
response.headers['Content-Type'] = 'application/x-www-form-urlencoded'
response.headers['Cookie'] = @cookie
end
end
response = remove_picture(id)
puts case response.status.to_s
when /50./
CanCan::AccessDenied
when /40./
"#{response.status} Unauthorized"
when /20./
"#{response.status} Success"
else
response.status
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment