rucaptcha/app/controllers/ru_captcha/captcha_controller.rb

23 lines
804 B
Ruby

module RuCaptcha
class CaptchaController < ActionController::Base
def index
return head :ok if request.head?
headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate'
headers['Pragma'] = 'no-cache'
if params[:t].present? && (!params[:t].is_i? rescue true)
render :body => nil, :status => 404 and return
end
if params[:format] == "wav" and RuCaptcha.espeak?
data = generate_speech_rucaptcha
opts = { disposition: 'inline', type: 'audio/wav' }
elsif params[:format].blank? || params[:format] == "gif"
data = generate_rucaptcha
opts = { disposition: 'inline', type: 'image/gif' }
else
render :body => nil, :status => 404 and return
end
send_data data, opts
end
end
end