Sha256: d30f1e61bce64d9d2f6323c76582de955217e687d3c61b9736571f554b39f061
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
# 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 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 end def current_user_id return env['omniauth.auth'].uid if env['omniauth.auth'] env['rack.session']['user_id'] if env['rack.session'] end def authenticate authenticated? end def authenticated? current_user && !current_user.role?('anonymous') end def authenticate! raise NotAuthenticated unless authenticated? true end def logout env['rack.session'].delete('user_id') unless env['rack.session'].nil? env.delete('omniauth.auth') end def anonymous_user role = ::Ditty::Role.where(name: 'anonymous').first ::Ditty::User.where(roles: role).first unless role.nil? end end class NotAuthenticated < StandardError end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ditty-0.4.1 | lib/ditty/helpers/authentication.rb |