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



Reply via email to