in plugin-acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/jdbc/GormAclLookupStrategy.groovy [117:153]
protected Map<ObjectIdentity, Acl> lookupObjectIdentities(Collection<ObjectIdentity> objectIdentities, List<Sid> sids) {
Assert.notEmpty objectIdentities, 'Must provide identities to lookup'
Map<Serializable, Acl> acls = [:] // contains Acls with StubAclParents
List<AclObjectIdentity> aclObjectIdentities = AclObjectIdentity.withCriteria {
createAlias 'aclClass', 'ac'
or {
for (ObjectIdentity objectIdentity in objectIdentities) {
and {
eq 'objectId', objectIdentity.identifier
eq 'ac.className', objectIdentity.type
}
}
}
order 'objectId', 'asc'
}
unwrapProxies aclObjectIdentities
Map<AclObjectIdentity, List<AclEntry>> aclObjectIdentityMap = findAcls(aclObjectIdentities)
List<AclObjectIdentity> parents = convertEntries(aclObjectIdentityMap, acls, sids)
if (parents) {
lookupParents acls, parents, sids
}
// Finally, convert our 'acls' containing StubAclParents into true Acls
Map<ObjectIdentity, Acl> result = [:]
for (Acl inputAcl in acls.values()) {
Acl converted = convert(acls, inputAcl.id)
result[converted.objectIdentity] = converted
}
result
}