Settings draft

This commit is contained in:
magnolia-fan
2011-06-22 00:44:19 +04:00
parent 1d9f527f39
commit d7da0fa3de
11 changed files with 100 additions and 33 deletions
+36 -24
View File
@@ -1,38 +1,50 @@
require 'digest'
class UserController < ApplicationController
@@secret_key
def auth
# Defining secret key dependent on hostname
@@secret_key = request.host == 'beathaven.org' ? 'sdgwSbl3nNE4ZxafuPrp' : 's5zyjb693z6uV4rbhEyc'
@res = {}
check = check_auth(params)
unless params[:expire].nil? or params[:mid].nil? or params[:secret].nil? or params[:sid].nil? or params[:sig].nil?
# Calculating hash
hash = 'expire='+ params[:expire] +'mid='+ params[:mid] +'secret='+ params[:secret] +'sid='+ params[:sid] + @@secret_key
hash_md5 = Digest::MD5.hexdigest(hash)
if Digest::MD5.hexdigest(hash) == params[:sig]
@res[:status] = 'hello'
user = User.find_by_vkid(params[:mid])
if user.nil?
user = User.new
user.vkid = params[:mid]
user.save
end
if user.name.nil? and not params[:name].nil?
user.name = params[:name]
user.save
end
@res[:id] = user.id
@res[:username] = user.name
else
@res[:status] = 'bad signature'
if check == true
@res[:status] = 'hello'
user = User.find_by_vkid(params[:mid])
if user.nil?
user = User.new
user.vkid = params[:mid]
user.save
end
@res[:id] = user.id
@res[:username] = user.name
elsif check == false
@res[:status] = 'bad signature'
else
@res[:status] = 'bad params'
end
render :json => @res
end
def update
end
private
def check_auth params
secret_key = request.host == 'beathaven.org' ? 'sdgwSbl3nNE4ZxafuPrp' : 's5zyjb693z6uV4rbhEyc'
unless params[:expire].nil? or params[:mid].nil? or params[:secret].nil? or params[:sid].nil? or params[:sig].nil?
# Calculating hash
hash = 'expire='+ params[:expire] +'mid='+ params[:mid] +'secret='+ params[:secret] +'sid='+ params[:sid] + secret_key
hash_md5 = Digest::MD5.hexdigest(hash)
if Digest::MD5.hexdigest(hash) == params[:sig]
return true
else
return false
end
else
return 'bad params'
end
end
end