protected Map lookupObjectIdentities()

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
	}