How it Works
How access control is checked is best explained through an example. Let's assume that Joe is attempting to edit the task T. The steps Celoxis would follow to determine if Joe can do this are:
Check for the administrative privilege
If
Joehas administrative privilege, then he will be granted the privilege. No other check is required.Determine the privilege required
Joewould require the Edit TaskGranted privilege onTCheck if the project can be viewed
Since
Tbelongs to a project, the system will check ifJoehas the View ProjectGranted onT's project. If no,Joewill be denied the Edit Task privilege.Gather all security roles played by the user
The system will build a set of all roles that
Joeplays inT. This would include :- All roles assigned to
Joein the project's workspace. - All roles assigned to
Joein the project. - Auto-assigned roles to
Joefor the project andT.
- All roles assigned to
Build the set of all privileges
Since a security role is a collection of privileges, based on all the roles played by
Joe, the system would build a set of all the privileges for all the roles played byJoecollected in the previous step.Check if the privilege has been unanimously granted
If the collection of privileges includes Edit TaskGranted and does not include Edit TaskDenied, then
Joewill be granted the permission to edit the taskT; else the permission will be denied.