>
> The thing about the auth.requires in decorator is that wrong person can't
> even get to controller.
>
He said he didn't want to rely on restricting access at the controller
level (perhaps there are multiple controllers/action, and it would be
difficult to keep track of the access rights at that level).
> Whereas I think common_filter will let user get to records they are
> authorized via controller for but then can start stepping through parms in
> the address window to see other organization's data.
>
No, common_filter is defined as part of the model -- as long as it is based
on the user's Auth roles, manipulating HTTP requests can't do anything to
override the filter. For example:
db.define_table('private', ...,
common_filter=lambda q: db.private.id > 0 if auth.
has_membership('admin') else \
db.private.id < 0)
For non-admin users, the db.private table will appear to contain no records
(does not depend on the manipulation of any request parameters). This will
prevent reading, updating, and deleting, though it doesn't do anything to
prevent creation of new records. To prevent creation, you could use a
_before_insert callback.
Anthony
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.