I'd like to find some way to implement access controls on mapped
objects, with the following features:

* Example: given a BlogPost object, only the owner, or a superuser,
would be allowed to set fields such as title and body.
* Example: reading the body field would check the privacy field as
well as the current user, and only let the owner read a private field.
* The owner should be determined based on a configurable column name,
or as the result of a method call.
* The current user should be explicitly specified rather than coming
from some global state.

The intention is not to make unwanted operations impossible, but to
offer the programmer a degree of confidence that, so long as he uses
the object in a particular way, the security constraints he specifies
won't be violated, regardless of logic errors elsewhere (in a web
layer, typically).

It seems that one possible way to do this would be to use proxy
objects to access the real instances. Returning proxies doesn't seem
difficult (a mapper extension could do this if the mapped class
specifies it desires it). Interaction with the session might be
problematic, though, if all you have is proxy objects.

Does this seem to be the correct path to follow, or is there a better
approach?

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to