PhpGACL (7) What will happen if we add Chewie to the engineer group? Default: reject all passengers of the Millennium Falcon-crew member [allow: all] phpGACL Chinese manual (7)
Resolve Conflicts
What happens if we add Chewie to the engineer group? Default: reject all
Millennium Falcon passengers
├-Crew member[Allowed: all]
│ Bai── Han
│ ─ ── Chewie [Reject: engine room]
│ └ ── Done
─-Passenger[Permitted: Lounge]
│─-Jedi[Permitted: Cab]
│─ ──Obi-wan
│─ ──Luke[Allow: weapons room]
│├ ── R2D2[Permitted: engine room]
│└ ── C3PO
─ ── Engineer[Permitted: engine room and weapon room]
─ ──Han
─ ──R2D2
├ ── Hontook
Chewie
This makes the Chewie permission to the engine room ambiguous, because there are two paths traversing from the root tree to Chewie. If the ship's computer is following one of the paths (crew path), the conclusion is "refuse to enter the engine room. The engineer's path along the other path will get the conclusion that he is allowed to enter the engine room. Is there no right to enter the engine room?
When you add or edit multi-group ARO objects so that they have different permissions on an ACO object, the phpGACL system will warn you. However, it takes priority recently to resolve the conflict.
If we ask phpGACL "Chewie has the right to enter the engine room? "The Returned result is the last modified ACL (this is the phpGACL policy ). In the above example, the returned result is "allow" because the engineer group specifies "allow: engine room, the "permission" time of the weapon room is closer than the "deny: engine room" permission time specified by the crew Group.
When an ambiguous permission is set to exist in the ACL list, the ACL list is called inconsistent. Inconsistent ACL lists are very dangerous. if you allow your ACL list to be kept in this situation, you may inadvertently grant permissions to inappropriate people. When phpGACL warns that the ACL list is inconsistent, it is best to resolve the conflict to restore its consistency as much as possible.
To solve the conflicts in the above example, we can do any of the following steps:
- Delete Chewie's "reject: engine room" command in the crew Group
- Chewie's "reject: engine room" command added to the Engineer Group
- Delete Chewie from the engineer group because Han does not consider him as an engineer in any case.
Han selects the third solution and deletes Chewie from the engineer group.