1
0
Fork 0

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -15,6 +15,7 @@
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/layout.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/ajax.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/search.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/settings.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/pages.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/audio.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/beathaven/player.js"></script>
@ -49,7 +50,10 @@
<!-- START HEADER -->
<div id="header-container">
<div class="hello"></div>
<div class="hello">
<span class="greating"></span>
<div class="settings"></div>
</div>
<ul id="navigation">
<li class="logo search">BeatHaven</li>
<li class="search">Search</li>

View File

@ -36,6 +36,13 @@ var Ajax = {
})
},
loadSettingsPage: function() {
$.get('/settings.html', function(data){
Ajax.setArchor('/settings/');
Pages.renderSettings(data);
})
},
loadWheePage: function() {
$.get('/demo/whee.html', function(data){
$('#data-container .inner').html(data);
@ -67,6 +74,8 @@ var Ajax = {
Ajax.loadArtistData(m[1]);
} else if (Ajax.getAnchor() === '' || Ajax.getAnchor().match(/\/search\//)) {
Ajax.loadSearchPage();
} else if (Ajax.getAnchor().match(/\/settings\//)) {
Ajax.loadSettingsPage();
} else {
Ajax.load404Page();
}

View File

@ -84,5 +84,11 @@ var Pages = {
yaCounter7596904.hit(Ajax.getAnchor(), 'Artist Search', Ajax.referer);
Ajax.setTitle('Artist Search');
},
renderSettings: function(data) {
$('#data-container .inner').html(data);
yaCounter7596904.hit(Ajax.getAnchor(), 'Settings', Ajax.referer);
Ajax.setTitle('Settings');
}
}

View File

@ -5,6 +5,7 @@ var Search = {
showSpinner: function() {
$('#search-container input').attr('disabled', 'disabled').blur();
$('#search-container img').show();
$('.autocomplete-container').hide();
Search.hideSuggestions();
},
@ -33,7 +34,7 @@ var Search = {
showArtistPics: function(pics) {
$('.artist_loading, .artist_pics').show();
for (var i = 0; i < pics.length; i++) {console.log(Search.pics.indexOf(pics[i]));
for (var i = 0; i < pics.length; i++) {
if (Search.pics.indexOf(pics[i]) === -1) {
Search.pics.push(pics[i]);
$('.artist_pics').append('\

View File

@ -1,5 +1,20 @@
var Session = {
user_id: null,
vkid: null
vk_params: {},
query: function(url, params, callback) {
var q_params = this.vk_params;
for (attr in params) {
q_params[attr] = params[attr];
}
$.post(url, q_params, callback);
},
setVkParams: function(params) {
attrs = ['expire', 'mid', 'secret', 'sid', 'sig'];
for (var i = 0; i < attrs.length; i++) {
this.vk_params[attrs[i]] = params[attrs[i]];
}
}
}

View File

@ -0,0 +1,7 @@
var Settings = {
}
$('.settings').live('click', function() {
Ajax.loadSettingsPage();
})

View File

@ -1,22 +1,21 @@
function authInfo(response) {
if (typeof response != 'undefined' && response.session) {
Session.setVkParams(response.session);
$('#vk_login, .auth_notice').hide();
$('#vk_logout').css('display', 'block');
if ($('#search_field').length > 0) {
$('#search_field').focus();
}
$.post('/user/auth', response.session, function(ar){
Session.query('/user/auth', {}, function(ar){
if (!ar.username) {
VK.Api.call('getVariable', {key: 1281}, function(r) {
response.session.name = r.response;
$.post('/user/auth', response.session, function(ar2) {
$('#header-container .hello').text('Hi there, '+ ar2.username +'!');
Session.query('/user/update', {'name': r.response}, function(ar2) {
$('#header-container .hello .greating').text('Hi there, '+ ar2.username +'!');
});
});
}
$('#header-container .hello').text('Hi there, '+ (ar.username ? ar.username : '%username%') +'!');
$('#header-container .hello .greating').text('Hi there, '+ (ar.username ? ar.username : '%username%') +'!');
Session.user_id = ar.id;
Session.vkid = response.session.mid;
});
} else {
$('#vk_login, .auth_notice').css('display', 'block');

1
public/settings.html Normal file
View File

@ -0,0 +1 @@
hello

View File

@ -41,6 +41,19 @@
margin: 6px 10px 0 0;
color: #222;
}
#header-container .hello .greating {
display: block;
float: left;
margin-right: 8px;
}
#header-container .hello .settings {
float: right;
width: 15px;
height: 15px;
margin: 1px 0;
background-image: url(/images/icns/settings.png);
cursor: pointer;
}
.button {
display: inline;