Sha256: ed09e068b0f0fd38ee0c5e5abf93af688e6a8d645c3d5124642b51370e7d4bf6
Contents?: true
Size: 1.42 KB
Versions: 36
Compression:
Stored size: 1.42 KB
Contents
module Lolita module Extensions module Authentication class DeviseAdapter def initialize context, options={} raise Lolita::NoAuthenticationDefinedError, "Lolita.authentication is not defined" unless Lolita.authentication @context = context end def current_user unless @current_user find_class_and_user do |klass,user| @current_user = user end end @current_user end def user_signed_in? !!current_user end def authenticate_user! *args @context.send(Lolita.authentication) end def sign_out_via ::Devise.sign_out_via end def edit_path find_class_and_user do |klass,user| return @context.send(:"edit_#{klass.to_s.downcase}_password_path") end end def sign_out_path find_class_and_user do |klass,user| return @context.send(:"destroy_#{klass.to_s.downcase}_session_path") end end private def find_class_and_user Lolita.user_classes.each do |klass| if @context.respond_to?(:"current_#{klass.to_s.downcase}") && user = @context.send(:"current_#{klass.to_s.downcase}") yield klass, user break end end end end end end end
Version data entries
36 entries across 36 versions & 1 rubygems