Module: Platanus::Canned2::Controller::ClassMethods
- Defined in:
- lib/platanus/canned2.rb
Instance Method Summary collapse
-
#before_auth(_callback = nil, &pblock) ⇒ Object
Specifies a block or method to be called before tests are ran.
-
#canned_setup(_def, _provider = nil, &_block) ⇒ Object
Setups the controller user profile definitions and profile provider block (or proc).
-
#uncan_all ⇒ Object
Removes protection for all controller actions.
-
#uncanned(*_excluded) ⇒ Object
Removes protection for the especified controller actions.
Instance Method Details
#before_auth(_callback = nil, &pblock) ⇒ Object
Specifies a block or method to be called before tests are ran.
IMPORTANT Resources loaded here are avaliable to tests.
85 86 87 |
# File 'lib/platanus/canned2.rb', line 85 def before_auth(_callback=nil, &pblock) self.brk_before = (_callback || pblock) end |
#canned_setup(_def, _provider = nil, &_block) ⇒ Object
Setups the controller user profile definitions and profile provider block (or proc)
The passed method or block must return a list of profiles to be validated by the definition.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/platanus/canned2.rb', line 38 def canned_setup(_def, _provider=nil, &_block) self.before_filter do # no auth if action is excluded next if self.class.brk_excluded == :all next if !self.class.brk_excluded.nil? and self.class.brk_excluded.include? params[:action].to_sym # call initializer block profiles = if _provider.nil? then self.instance_eval(&_block) else self.send(_provider) end raise AuthError if profiles.nil? profiles = [profiles] unless profiles.is_a? Array # call resource loader brk_before = self.class.brk_before unless brk_before.nil? if brk_before.is_a? Symbol; self.send(brk_before) else self.instance_eval &(brk_before) end end # execute authentication # TODO: Add forbidden begin - rescue result = profiles.collect do |profile| _def.can?(self, profile, params[:controller]) or _def.can?(self, profile, params[:controller] + '#' + params[:action]) end raise AuthError unless result.any? end end |
#uncan_all ⇒ Object
Removes protection for all controller actions.
68 69 70 |
# File 'lib/platanus/canned2.rb', line 68 def uncan_all() self.brk_excluded = :all end |
#uncanned(*_excluded) ⇒ Object
Removes protection for the especified controller actions.
76 77 78 79 |
# File 'lib/platanus/canned2.rb', line 76 def uncanned(*_excluded) self.brk_excluded ||= [] self.brk_excluded.push(*_excluded) end |