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