Good registration & fair auth #23

This commit is contained in:
magnolia-fan
2011-04-13 08:42:44 +04:00
parent e20ed483c1
commit 957a883ccf
6 changed files with 63 additions and 6 deletions
+4 -1
View File
@@ -2,7 +2,10 @@
class ArtistController < ApplicationController
require 'open-uri'
def view
if params[:name].nil?
unless MainController.logged_in request.session['session_id']
redirect_to '/login'
end
if params[:name].nil?
name = ''
else
if request.request_method == 'POST'
+14 -2
View File
@@ -1,5 +1,17 @@
class MainController < ApplicationController
def index
unless MainController.logged_in request.session['session_id']
redirect_to '/login'
end
end
end
def self.logged_in session_id
user_data = User.collection.find({session_key: Digest::SHA256.hexdigest(session_id)}).first
unless user_data.nil?
user_data['lastvisit'] = Time.now()
User.collection.update({_id: user_data._id}, user_data.attributes)
return true
else
return false
end
end
end
+17 -2
View File
@@ -1,11 +1,26 @@
class UserController < ApplicationController
def login
unless params[:email].nil? or params[:password].nil?
user_data = User.collection.find({email: params[:email], password: Digest::SHA256.hexdigest(params[:password])}).first
unless user_data.nil?
user_data['session_key'] = Digest::SHA256.hexdigest(request.session['session_id'])
User.collection.update({_id: user_data._id}, user_data.attributes)
redirect_to '/'
else
redirect_to '/login'
end
else
redirect_to '/login'
end
end
def register
data = Invite.where(:email => params[:email], :code => params[:code]).first
unless data.nil?
@code = data.code
@email = data.email
else
redirect_to '/'
redirect_to '/login'
end
end
@@ -30,7 +45,7 @@ class UserController < ApplicationController
Invite.collection.remove({email: params[:invite_email], code: params[:invite_code]})
else
redirect_to '/'
redirect_to '/login'
end
end
end