My design document is nearly complete. I just need to finish the artifact reuse section.
-Adrian --- On Sun, 5/10/09, Tim Ruppert <tim.rupp...@hotwaxmedia.com> wrote: > From: Tim Ruppert <tim.rupp...@hotwaxmedia.com> > Subject: Re: Authz API Discussion (was re: svn commit: r770084) > To: dev@ofbiz.apache.org > Date: Sunday, May 10, 2009, 1:19 PM > Bump - looks like we let this get away from us as a > discussion. We can all agree that the current security > system that is in place has some definite areas for > improvement - and I think we're getting some where with > this discussion - but I don't want it to lose steam in > the community since there's a definite deficiency that > needs to be address. > > I'm hoping to see a bit more action on this front from > everyone since there was so much discussion about it. I > know that Adrian's working on his design thoughts, > Andrew's obviously already put his up there for > discussion, David started a couple of threads to elicit > information from more people about requirements, and Adam / > Jacques / Anil / etc participated in the discussion. > > Let's get back to this - the system needs it! > > Cheers, > Tim > -- > Tim Ruppert > HotWax Media > http://www.hotwaxmedia.com > > o:801.649.6594 > f:801.649.6595 > > ----- "Jacques Le Roux" > <jacques.le.r...@les7arts.com> wrote: > > > Hi Andrew, > > > > Thanks for your answer and your time on this important > subject that > > should benefit to all the community! > > > > I had not much time these last days to follow, and > I'm still have to > > read some messages (notably the couple of threads > David opened > > lastly). > > Thanks to everybody's explanations, my > understanding is really better > > now. > > So from you explanation below I understand that, as I > supposed at the > > beginning, it's a kind of OFBTOOLS. > > Not exactly since you need to have OFBTOOLS to gain > access to a > > component while you don't need to have access. On > the other hand if > > you have access you have access to this component. > > > > Though at this time I did not have a very good > understanding (and I'm > > sure I still miss some points, but hopefully not about > access > > ;o), I have discussed about access a bit with a > client. > > Of course everybody using the ERP side of OFBiz is > *very interested* > > by access auth. and by all possible improvments of > this central > > feature. > > He gave me an idea, while we were discussing about > possible reason of > > the access introduction. > > As he knew even less than me his interpretation was > not right (I was > > already able to explain why) but his conclusion is > interesting. > > He suggested that this may be used to grant all other > rights (CRUD > > ones). So it would allow to quicly set all other > permissions > > > > What do you think about such a possibility ? A kind of > ADMIN stuff. We > > could call it "All". > > > > Also he wondered why we would differentiate create > from update. I gave > > him some examples (like an automatic task able to > create but > > not to change) but he was not very convinced. > > I then said that this is used by Unix file systems > too. It's > > subjective but when you refer to Unix/Linux file > systems it helps > > people to "understand". > > Afterward I thought that maybe we could also have a > look at how access > > control is managed there. After all files are kind of > > artifacts, and Linux files systems are known as > efficient... > > Of course the problematic for files access is far less > complex and I > > don't say it's a paradigm, but we may find > some ideas (if we > > need ones at some point). > > For instance, it's pretty clear that all files > store their own > > permissions and all have a combination of them. But I > feel anyway > > that this is a bit out of topic :/ > > Though Adrian is drawing his proposal by looking at > Novel Netware, > > IRRW. > > > > Jacques > > > > From: "Andrew Zeneski" > <andrew.zene...@hotwaxmedia.com> > > > Jacques, > > > > > > Thanks for your questions. I will address each > one inline... > > > > > >>> Honestly, in my initial plan I only had 4 > permissions > > create,read,update and delete. Then after thinking > about it, access > > >>> seemed > > >>> to be a nice extra permission to limit > access to applications. > > Read is nothing more than what view is today, the only > reason > > >>> for > > >>> using the name "read" instead > of "view" is because we can call > > them CRUD permissions or ACRUD permissions if we keep > access. > > >> > > >> Yes I see, we need something like OFBTOOLS > was used for. > > >> But can't we use simply read for that. It > seems to me that access > > introduce redudancy. > > >> What would be the differences between, for > instance > > >> access:sfa vs read:sfa > > >> access:sfa:lead vs read:sfa:lead > > >> access:sfa:opportunity vs > read:sfa:opportunity > > >> etc. > > >> > > > > > > access:sfa would mean that the user can simply > access the > > application. Where read:sfa would mean, the user can > read anything > > in > > > the SFA application. A better example of this > would be the order > > manager, where access:order would allow the user to > login, but > > > read:order would allow the user to view any > order/request/etc in > > the application. A more granular permission of > > > read:order:orderdetail:10000 would limit the > user to only reading > > the specific order without granting permission to the > rest of > > > orders/requests/etc. > > > > > > I would not recommend creating granular > permissions for access, > > unless we wanted to limit the access of specific > "tabs" or areas > > > in an application. If we wanted to restrict > access to leads in sfa, > > then we might create an access:sfa:lead > process/permission > > > which can then be used to restrict access to the > leads section of > > the app. Where as read:sfa:lead would mean the user > can view > > > any lead. > > > > > > > > >> > > >>> So, access was added only for granting > access to the application. > > In most cases this is the only permission a user > would need > > >>> to > > >>> access an app. Let's use Project > Manger as an example for this: > > >>> > > >>> access:project would be the permission > required to access the > > application. All users of the app would have this > permission. > > >>> The > > >>> create:project permission would be given > to a administrator, so > > new projects could be created same with > create:project:task. > > >>> However, create:project:task would have > some dynamic access logic > > associated which would allow users to create tasks > as long > > >>> as > > >>> they were associated with a project in > certain role(s). The > > read:project permission could be used to restrict > viewing > > >>> details > > >>> of a project, task, etc. > > >> > > >> But could we not use read:project instead of > access:project, and > > then keep only the CRUD permissions ? > > >> What we will be missing if we remove access ? > > > > > > I don't think so. Because read:project would > grant the user global > > read access to all projects. Instead, when displaying > a > > > project we might want to attach the process of > read:project:10000 > > to the UI, to verify the user is indeed allow to read > that > > > project. Where access:project would just simply > allow the user to > > login to the tool. > > > > > >> > > >>> This is just how I have been thinking of > it, read could also be > > used in replace of access, I just thought it would be > more > > >>> flexible to have the extra permission. > Mainly because I believe > > that most users only need a permission to access the > > >>> application, the other permissions would > be handled in a dynamic > > way based on how the user is associated in the > application. > > >> > > >> Could you please elaborate on the extra > permission and why it's > > needed ? > > >> > > > > > > I think I elaborated in the above two comments, > so if this is still > > vague please let me know and I will try to explain it > again > > > in a different way. > > > > > > Thanks again for your questions! > > > > > > Andrew > > >