В пользовательском расширении я расширяю таблицу fe_users полем "manager".Это поле содержит босса пользователя.
Теперь я хочу сохранить значение поля "tx_igldapssoauth_dn" (которое приходит из ext: ig_ldap_sso_auth ) родительской записи в поле "manager ", а не" uid ".
Моя модель выглядит так:
<?php
namespace Vendor\Extension\Domain\Model;
class FrontendUser extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
{
/**
* DN of the users manager
*
* @var Vendor\Extension\Domain\Model\FrontendUser
* @lazy
*/
protected $manager = '';
/**
* Returns the manager
*
* @return Vendor\Extension\Domain\Model\FrontendUser $manager
*/
public function getManager()
{
return $this->manager;
}
/**
* Sets the manager
*
* @param Vendor\Extension\Domain\Model\FrontendUser $manager
* @return void
*/
public function setManager($manager)
{
$this->manager = $manager;
}
}
TCA:
'manager' => [
'exclude' => true,
'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_db.xlf:tx_myext_feusers_users.manager',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'fe_users',
],
],
Это прекрасно работает и возвращает мне родительскую запись,НО это сохраняет «uid» родительской записи в столбце «manager», а не значение поля «tx_igldapssoauth_dn».
Так что нужно настроить или изменить, чтобы сохранить значение «tx_igldapssoauth_dn "в поле" manager ", а не в" uid "?
EDIT (более подробная информация)
Значение для поля" manager "заполняетсяLDAP (это DN родительского пользователя, босс), а также "tx_igldapssoauth_dn", который является DN самого пользователя.Таким образом, «tx_igldapssoauth_dn» является уникальным значением и может сравниваться с идентификатором записи.
Моя проблема не в сохранении необходимого значения в поле «менеджер», а в соединении поля «менеджер» с полем ».tx_igldapssoauth_dn ".
Таким образом, если поле" manager "в записи содержит значение CN=Firstname Lastname,OU=Department,DC=example,DC=net
, оно должно подключиться к записи с таким же значением (CN=Firstname Lastname,OU=Department,DC=example,DC=net
) в поле" tx_igldapssoauth_dn ".