lib/ditty/helpers/authentication.rb in ditty-0.4.0 vs lib/ditty/helpers/authentication.rb in ditty-0.4.1
- old
+ new
@@ -1,18 +1,17 @@
# frozen_string_literal: true
+
require 'ditty/models/user'
require 'ditty/models/role'
require 'ditty/models/identity'
module Ditty
module Helpers
module Authentication
def current_user
- user_id = current_user_id
- self.current_user = anonymous_user if user_id.nil?
- @users ||= Hash.new { |h, k| h[k] = User[k] }
- @users[user_id]
+ return anonymous_user if current_user_id.nil?
+ User[current_user_id]
end
def current_user=(user)
env['rack.session'] = {} if env['rack.session'].nil?
env['rack.session']['user_id'] = user.id if user
@@ -35,28 +34,16 @@
raise NotAuthenticated unless authenticated?
true
end
def logout
- env['rack.session'].delete('user_id')
+ env['rack.session'].delete('user_id') unless env['rack.session'].nil?
+ env.delete('omniauth.auth')
end
- def check_basic(request)
- auth = Rack::Auth::Basic::Request.new(request.env)
- return false unless auth.provided? && auth.basic?
-
- identity = ::Ditty::Identity.find(username: auth.credentials[0])
- identity ||= ::Ditty::Identity.find(username: CGI.unescape(auth.credentials[0]))
- return false unless identity
- self.current_user = identity.user if identity.authenticate(auth.credentials[1])
- end
-
def anonymous_user
- return @anonymous_user if defined? @anonymous_user
- @anonymous_user ||= begin
- role = ::Ditty::Role.where(name: 'anonymous').first
- ::Ditty::User.where(roles: role).first unless role.nil?
- end
+ role = ::Ditty::Role.where(name: 'anonymous').first
+ ::Ditty::User.where(roles: role).first unless role.nil?
end
end
class NotAuthenticated < StandardError
end