I started looking at the read permissions on graphs issue that was raised
today.

It seems to me that if we change the functioning of graph.find() then we
need to change graph.contains() and graph.size() accordingly.

This led me to look at the Model based classes, and there we find a number
of iterators, lists of properties, hasX() methods, etc.  All of which
currently throw the ReadDeniedException.

Changing these methods will change the default operation in the wild.
Something that is OK for v4 but in v3 I think it should stay the same.

So I am thinking that it might make sense to specify HardReadErrors (the
current throw the exception we have now) or SoftReadErrors (return empty
iterators, false for hasX() and so on).  At first I thought of putting this
in a context, but it could be added to the SecurityEvaluator.  Since the
SecurityEvaluator is an interface I would add it with a default of
HardReadErrors and allow implementations to override that.

I think this might be the best way forward, though there will be a lot of
change in the permissions code base.  Does anyone see an issue with this
approach or a better approach?

Claude



-- 
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren

Reply via email to