Hi there,
I'm using declarative authorization and followed the steps from
Railscasts:
http://media.railscasts.com/videos/188_declarative_authorization.mov
However, when I add filter_resource_access to a controller and reload
the page then I get the error message:
Couldn't find Customer without an ID
It doesn't matter what controller I try, all controllers spit out the
same message.
Did anybody have the same problem already and can help me?
If i use filter_access_to :all I get back following error:
Illegal DSL syntax: undefined method `has_permissions_on' for
#<Authorization::Reader::AuthorizationRulesReader:0xb631b134>
My application controller looks like this:
class ApplicationController < ActionController::Base
helper :all
protect_from_forgery
filter_parameter_logging :password
helper_method :current_user
before_filter { |c| Authorization.current_user = c.current_user }
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
Here a stack trace of the error using filter_resource_access:
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:1601:in
`find_from_ids'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:620:in
`find'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:611:in
`load_object'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:583:in
`permit!'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:111:in
`filter_access_filter'
/usr/lib/ruby/gems/1.8/gems/authlogic-2.1.6/lib/authlogic/session/password.rb:127:in
`all?'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:111:in
`each'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:111:in
`all?'
/usr/lib/ruby/gems/1.8/gems/declarative_authorization-0.5.2/lib/declarative_authorization/in_controller.rb:111:in
`filter_access_filter'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in
`send'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:178:in
`evaluate_method'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/callbacks.rb:166:in
`call'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/filters.rb:225:in
`call'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/filters.rb:629:in
`run_before_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/filters.rb:615:in
`call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/filters.rb:610:in
`perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/rescue.rb:160:in
`perform_action_without_flash'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/flash.rb:151:in
`perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in
`send'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/base.rb:532:in
`process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/filters.rb:606:in
`process'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/base.rb:391:in
`process'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/base.rb:386:in
`call'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:438:in
`call'