Sha256: aebedc8bbd04f54e0d563698776ad70d491491a7c1d92984b9da4f5ed0cdaee3
Contents?: true
Size: 1.22 KB
Versions: 19
Compression:
Stored size: 1.22 KB
Contents
module Lolita module Extensions module Authorization class CanCanAdapter def initialize context, options={} raise NameError, "CanCan is not defined" unless defined?(CanCan) raise Lolita::NoAuthorizationDefinedError, "Lolita.authorization is not defined" unless Lolita.authorization @context = context @options = options set_default_options current_ability end def can? *args current_ability.can?(*args) end def cannot? *args current_ability.cannot?(*args) end def current_ability *args unless @current_ability @current_ability = Lolita.ability_class.new(@options[:current_user]) @context && @context.instance_variable_set(:"@current_ability",@current_ability) end @current_ability end def authorize! *args current_ability && @context && @context.authorize!(*args) || current_ability.authorize!(*args) end private def set_default_options @options[:current_user] ||= @context && @context.authentication_proxy.current_user end end end end end
Version data entries
19 entries across 19 versions & 1 rubygems