-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deviation: classAce not connected to object identity #9
Comments
I have the same problem. Any new on this? |
Unfortunately, I haven't looked into this yet. |
I did look in to this. if instead of: Why it isn't set for classAce: (MutableAclProvider) The objectIdentity property will not be set in DB. |
aborjessen pointed out one part of the problem: In updateAclProperty, no objectIdentity or other reference is set for classAces. Later, when checking access, the AclProvider will try to get all acl_entries associated with the acl_oid in lookupObjectIdentities with this query:
Now the query can obviously not get any aces that do not have an objectIdentity set. So we need two things One option is to add a class field to the Ace (always or only if it actually is a classAce), and query for that additionally . |
Using MongoDB,
$acl->insertClassAce($securityIdentity, MaskBuilder::MASK_OWNER);
etc. results in an acl_entity that is disconnected from the class object identity. Result is, that the aclProvider does not get the classAces if you pass an $object to ->isGranted.Using ->insertobjectAce, the reference to the oid is saved in the ace. Missing altogether is a way to identify an ace as being of type class.
Using mysql, this is done by setting object_identity_id to NULL, and I guess the reference is then established with the class_id (type in MongoDB).
The text was updated successfully, but these errors were encountered: