Emmanuel Lecharny wrote:

Hi all,

here is some though about representation of grants :

we don't care.
Let me explain why I'm so brutal ;) :

- this is something that will be hidden from user face. ( at least as
soon as we have a cool GUI to deal with those grants )
You cannot always expect to have a GUI around. First off we don't have a nice GUI tool for this and secondly even if we had one I'd probably not use it for the day to day. Half of the UNIX world would probably prefer to use command line tools to add ACIs anyway.

For example I don't mess around with JXPlorer. I just use the command line tools to test fuctionality. Why? Well many reasons. I don't trust GUIs. I think command line stuff is simple and to the point. I don't have to use my mouse etc. UIs do help some people. However in my experience no serious UNIX admin ever messed around with UI tools to do his/her job.

- and as soon as it works, it's ok. Even if it's complicated to
understand, we will always be able to have a clear view of grants if we
use - as suggested by Trustin - jdk 1.5 enums.

You're still thinking on the programmatic level.

So the questions are - how do we translate those bits to an internal representation
- what is the easiest way to implements those ACIItems
- what are the performance impacts on the whole system of this encoding
and translation

Ok let's stop for a sec. Look the perscriptiveACI (in subentries) and entryACI (in entries) attributes will store one or more ACIITems. Both are multivalued. These are not controls, they are pain old operational attributes. Think of these attributes and the ACIITem representation they hold as the human DSA interface. The representation is not the internal representation. Internally the directory can represent an ACI in any way shape or form it wishes to do so. This does not change the fact that some user is going to have to add or modify an ACIItem in an entry or a subentry. When they do so it should be as easy as possible to do.

You keep asking the price we pay in terms of performance for this representation. Really it's not relavent here since the internal representation will not be the same. We are not going to parse these ACIs at search time. That would be ludicrous and would slow search down to halt. I have tactics for making sure we do not tax search operations in mind. I used similar tactics while implementing subentry support.

I think that the third question is orders of magnitude less important
than the two others.

I buy the idea of having a clear text solution, like :
"grantsAndDenials { grantBrowse, denyModify }", combined with Trustin's
Enum.

Am I right?
Well sure this is the same outcome I was hoping for :). It gives us a simple easy to use textual representation for the user. The Enum thing is for Trustin's data model which is for the internal representation. Ersin's parser basically transforms this user intuitive textual representation into Trustin's data model. BTW even Trustin has two representations. One for ease of programatic handling. And another representation based on ACI Tuples for the rapid computation of ACI rules in the ACDF. Incidentally I intend to compute this representation and keep a hot copy hanging around to rapidly execute the ACDF. I'm trying to determine what data structures would be best for doing this.

Alex

Reply via email to