On Nov 20, 4:01 am, Steffen Bartsch <
sbart...@tzi.de> wrote:
> The authorization rules should work fine. How are you calling the
> permitted_to? method? Are you maybe calling it with an Array as object?
> Those methods expect a single object.
I have a method I was using to narrow the search scope: (I think
_id_equals is a searchlogic plugin, it returns
ActiveRecord::NamedScope::Scope)
def get_scope(access)
scope = PhoneNumber.with_permissions_to(access)
case
when params[:person_id] then scope.people_id_equals params
[:person_id]
when params[:household_id] then scope.household_id_equals params
[:household_id]
when params[:organization_id] then scope.organization_id_equals
params[:organization_id]
else scope
end
end
The error is happening when I call it to update:
def update
@phone_number = get_scope(:update).find(params[:id], :readonly =>
false)
if @phone_number.update_attributes(params[:phone_number]) # Error
is here
#.....
end
end
and here's the full stack (minus some attributes in the Person
object):
Authorization::AuthorizationUsageError (Error when calling user on
[#<Person id: 1180170431, title: "Mr", first_name: "Joe", middle_name:
"L", last_name: "Dokes">] for validating attribute: undefined method
`user' for #<Array:0x23d2ba4>):
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:535:in
`object_attribute_value'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:428:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/reader.rb:60:in `all?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `each'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `all?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:438:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/reader.rb:60:in `all?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `each'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `all?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:427:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:374:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/reader.rb:60:in `any?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:372:in `each'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:372:in `any?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:372:in `send'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:372:in `validate?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:174:in `permit!'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/reader.rb:60:in `any?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:174:in `each'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:174:in `any?'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/authorization.rb:174:in `permit!'
vendor/gems/declarative_authorization-0.4/lib/
declarative_authorization/in_model.rb:131:in `using_access_control'
app/controllers/phone_numbers_controller.rb:43:in `update'