Module: ActiveScaffold::CancanBridge::ActiveRecord::SecurityMethods
- Defined in:
- lib/active_scaffold/bridges/cancan/lib/cancan_bridge.rb
Defined Under Namespace
Classes: InvalidArgument
Instance Method Summary collapse
-
#authorized_for_with_cancan?(options = {}) ⇒ Boolean
is usually called with :crud_type and :column, or :action :column=>“some_colum_name” :action=>“edit” to allow access cancan must allow both :crud_type and :action if cancan says “no”, it delegates to default AS behavior.
Instance Method Details
#authorized_for_with_cancan?(options = {}) ⇒ Boolean
is usually called with :crud_type and :column, or :action
{:crud_type=>:update, :column=>"some_colum_name"}
{:action=>"edit"}
to allow access cancan must allow both :crud_type and :action if cancan says “no”, it delegates to default AS behavior
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/active_scaffold/bridges/cancan/lib/cancan_bridge.rb', line 91 def ( = {}) raise InvalidArgument if [:crud_type].blank? and [:action].blank? if current_ability.present? crud_type_result = [:crud_type].nil? ? true : current_ability.can?([:crud_type], self) action_result = [:action].nil? ? true : current_ability.can?([:action].to_sym, self) else crud_type_result, action_result = false, false end default_result = () result = (crud_type_result && action_result) || default_result return result end |