LdapRecord: [Bug] 'LDAP operation [rename] failed.' OpenLdap

Environment (please complete the following information):

  • LDAP Server Type: OpenLDAP
  • PHP Version: 7.4.16
  • LdapRecord 2.2.3

Describe the bug:

Exception 'Exception' with message 'LDAP operation [rename] failed.'

in /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/LdapBase.php:168

Stack trace:
#0 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Ldap.php(307): LdapRecord\LdapBase->executeFailableOperation(Object(Closure))
#1 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Query/Builder.php(1629): LdapRecord\Ldap->rename('cn=\xD0\x9F\xD1\x80\xD0\xB0\xD0\xB4\xD1\x83\xD0\xBD...', 'cn=\\d0\\9b\\d1\\8f...', 'ou=\xD0\x93\xD0\xBE\xD0\xBC\xD0\xB5\xD0\xBB\xD1\x8C...', true)
#2 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Connection.php(397): LdapRecord\Query\Builder->LdapRecord\Query\{closure}(Object(LdapRecord\Ldap))
#3 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Connection.php(355): LdapRecord\Connection->runOperationCallback(Object(Closure))
#4 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Query/Builder.php(1630): LdapRecord\Connection->run(Object(Closure))
#5 /Users/and1/phpProjects/www/ems/vendor/directorytree/ldaprecord/src/Models/Model.php(1263): LdapRecord\Query\Builder->rename('cn=\xD0\x9F\xD1\x80\xD0\xB0\xD0\xB4\xD1\x83\xD0\xBD...', 'cn=\\d0\\9b\\d1\\8f...', 'ou=\xD0\x93\xD0\xBE\xD0\xBC\xD0\xB5\xD0\xBB\xD1\x8C...', true)
#6 /Users/and1/phpProjects/www/ems/common/models/behaviors/AddressBookEmployeeBehavior.php(178): LdapRecord\Models\Model->rename('cn=\\d0\\9b\\d1\\8f...')
#7 /Users/and1/phpProjects/www/ems/common/models/behaviors/AddressBookEmployeeBehavior.php(120): common\models\behaviors\AddressBookEmployeeBehavior->update()
#8 [internal function]: common\models\behaviors\AddressBookEmployeeBehavior->afterUpdate(Object(yii\db\AfterSaveEvent))
#9 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/base/Component.php(628): call_user_func(Array, Object(yii\db\AfterSaveEvent))
#10 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/db/BaseActiveRecord.php(1000): yii\base\Component->trigger('afterUpdate', Object(yii\db\AfterSaveEvent))
#11 /Users/and1/phpProjects/www/ems/common/models/Employee.php(341): yii\db\BaseActiveRecord->afterSave(false, Array)
#12 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/db/BaseActiveRecord.php(825): common\models\Employee->afterSave(false, Array)
#13 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/db/ActiveRecord.php(681): yii\db\BaseActiveRecord->updateInternal(NULL)
#14 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/db/BaseActiveRecord.php(681): yii\db\ActiveRecord->update(true, NULL)
#15 /Users/and1/phpProjects/www/ems/console/models/SyncProsellerModel.php(69): yii\db\BaseActiveRecord->save()
#16 /Users/and1/phpProjects/www/ems/console/controllers/EmployeeController.php(155): console\models\SyncProsellerModel->sync('/Users/and1/Des...')
#17 [internal function]: console\controllers\EmployeeController->actionSync()
#18 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#19 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/base/Controller.php(181): yii\base\InlineAction->runWithParams(Array)
#20 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/console/Controller.php(184): yii\base\Controller->runAction('sync', Array)
#21 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/base/Module.php(534): yii\console\Controller->runAction('sync', Array)
#22 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/console/Application.php(181): yii\base\Module->runAction('employee/sync', Array)
#23 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/console/Application.php(148): yii\console\Application->runAction('employee/sync', Array)
#24 /Users/and1/phpProjects/www/ems/vendor/yiisoft/yii2/base/Application.php(392): yii\console\Application->handleRequest(Object(yii\console\Request))
#25 /Users/and1/phpProjects/www/ems/yii(27): yii\base\Application->run()
#26 {main}

Cn in OpenLdap and rdn in code - different. Try admin user - same error. I use same method rename https://github.com/DirectoryTree/LdapRecord/blob/c7221d46b64e5a301a4820e583190a79c50c8013/src/Models/Model.php#L1239 described https://ldaprecord.com/docs/core/v2/model-api/#rename Bug fix - https://github.com/DirectoryTree/LdapRecord/issues/237 Any ideas?

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 16 (16 by maintainers)

Most upvoted comments

Hi @stevebauman, Everything works now. Please add git tag because dev-master (2.4.x-dev) do not download. In composer.json lacks:

"extra": {
        "branch-alias": {
            "dev-master": "2.4.x-dev"
        }
    }

HI @stevebauman. On method getAttributes() no dn information from OpenLdap. I debug data on this code:

$user = User::query()->findBy('EmployeeID', 7164);
debug($user->getAttributes(), $user->getDn());

Result:

Array
(
    [0] => Array
        (
            [cn] => Array
                (
                    [0] => Иванов Иван Иванович
                )

            [employeeid] => Array
                (
                    [0] => 7164
                )

            [l] => Array
                (
                    [0] => Брест
                )

            [o] => Array
                (
                    [0] => Company
                )

            [title] => Array
                (
                    [0] => Договорник
                )

            [userdepartmentid] => Array
                (
                    [0] => 720
                )

            [uid] => Array
                (
                    [0] => ivanov
                )

            [mail] => Array
                (
                    [0] => ivanov@test.loc
                )

            [givenname] => Array
                (
                    [0] => Иван
                )

            [sn] => Array
                (
                    [0] => Иванов
                )

            [objectclass] => Array
                (
                    [0] => inetOrgPerson
                )

            [entryuuid] => Array
                (
                    [0] => 448c4272-2a1f-103b-96f1-3f5a40193fa8
                )

        )

    [1] => cn=Иванов Иван Иванович,ou=Барановичи\2C ул.Советская\2C84,l=Брест,o=Company,ou=Personnel,dc=test,dc=loc
)