mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Initial release of Discourse
This commit is contained in:
32
lib/current_user.rb
Normal file
32
lib/current_user.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
module CurrentUser
|
||||
|
||||
def current_user
|
||||
return @current_user if @current_user || @not_logged_in
|
||||
|
||||
if session[:current_user_id].blank?
|
||||
# maybe we have a cookie?
|
||||
auth_token = cookies[:_t]
|
||||
if auth_token && auth_token.length == 32
|
||||
@current_user = User.where(auth_token: auth_token).first
|
||||
session[:current_user_id] = @current_user.id if @current_user
|
||||
end
|
||||
else
|
||||
@current_user ||= User.where(id: session[:current_user_id]).first
|
||||
end
|
||||
|
||||
if @current_user && @current_user.is_banned?
|
||||
@current_user = nil
|
||||
end
|
||||
|
||||
@not_logged_in = session[:current_user_id].blank?
|
||||
if @current_user
|
||||
@current_user.update_last_seen!
|
||||
if @current_user.ip_address != request.remote_ip
|
||||
@current_user.ip_address = request.remote_ip
|
||||
User.exec_sql('update users set ip_address = ? where id = ?', request.remote_ip, @current_user.id)
|
||||
end
|
||||
end
|
||||
@current_user
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue
Block a user