LdapTools\Hydrator\OperationHydrator::setDnToUse PHP Method

setDnToUse() protected method

Builds the DN based off of the "name" attribute. The name attribute should be mapped to the "cn" attribute in pretty much all cases except for creating an OU object. Then the "name" attribute should be mapped to "ou".
protected setDnToUse ( AddOperation $operation )
$operation LdapTools\Operation\AddOperation
    protected function setDnToUse(AddOperation $operation)
    {
        // If the DN was explicitly set, don't do anything.
        if ($operation->getDn()) {
            return;
        }
        if (!$this->schema) {
            throw new LogicException("You must explicitly set the DN or specify a schema type.");
        }
        if (!$this->schema->hasAttribute('name')) {
            throw new LogicException('To create an object you must specify the name attribute in the schema. That attribute should typically' . ' map to the "cn" attribute, as it will use that as the base of the distinguished name.');
        }
        $location = $operation->getLocation() ?: $this->schema->getDefaultContainer();
        if (empty($location)) {
            throw new LogicException('You must specify a container or OU to place this LDAP object in.');
        }
        $attribute = $this->schema->getAttributeToLdap('name');
        $rdnValue = LdapUtilities::escapeValue($operation->getAttributes()[$attribute], null, LDAP_ESCAPE_DN);
        $location = $this->resolveParameters(['container' => $location])['container'];
        $operation->setDn($attribute . '=' . $rdnValue . ',' . $location);
    }