【问题标题】:TYPO3 set fe_user groupTYPO3 设置 fe_user 组
【发布时间】:2023-03-17 11:35:01
【问题描述】:

我有 TYPO3 版本 7.6.18。我尝试通过代码创建用户。如何添加用户组?我看到它需要创建用户组对象。

$this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
            $newUser = $this->objectManager->get('Fhk\\Feusersplus\\Domain\\Repository\\UserRepository');

$userModel = $this->objectManager>get('Fhk\\Feusersplus\\Domain\\Model\\User');

$userGroup = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();

$userModel->setUsername("sdfdsfdsfs");
$userModel->setEmail($user_data['email']);
$gender = 0;
$password = rand(99999999,9999999999999);
$userModel->setPassword($password);

$userModel->setUsergroup($userGroup);
$newUser->add($userModel);

我认为用户没有添加到数据库,因为我没有设置用户组。请帮帮我)

我已经更正了我的代码,但它没有将用户添加到数据库:

 $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
            $newUser = $this->objectManager->get('Fhk\\Feusersplus\\Domain\\Repository\\UserRepository');

                $userModel = $this->objectManager->get('Fhk\\Feusersplus\\Domain\\Model\\User');
                $userGroup = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');

                $userGroup = $userGroup->findByUid(1);
                $newUserGroup = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
                $newUserGroup->attach($userGroup);

            $userModel->setUsername("sdfdsfdsfs");
                $userModel->setEmail($user_data['email']);
                $gender = 0;
                $password = rand(99999999,9999999999999);
                $userModel->setPassword($password);
                $userModel->setPid(3);
                $userModel->setUsergroup($newUserGroup);

                $newUser->add($userModel);

【问题讨论】:

    标签: typo3


    【解决方案1】:

    你快完成了。您需要UserGroupRepository 来检索您需要的用户组并执行$userGroup->attach($yourUserGroup)

    【讨论】:

    • 谢谢,好像是我添加的组。但是用户没有添加到数据库中,我更新了我的帖子。你能帮我吗?
    • 创建和修改的 Extbase 对象只是暂时的。如果您不在 createAction() 或 updateAction() 中,则必须手动保存更改。您基本上需要一个 \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager 的实例调用 persistAll() 方法。
    【解决方案2】:

    试试下面的方法。

    $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
    $newUser = $this->objectManager->get('Fhk\\Feusersplus\\Domain\\Repository\\UserRepository');
    
    $userModel = $this->objectManager->get('Fhk\\Feusersplus\\Domain\\Model\\User');
    $userGroup = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');
    
    $userGroup = $this->FrontendUserGroupRepository->findByUid(1);
    
    $userModel = new \Typo3\CMS\Extbase\Domain\Model\FrontendUser();
    
    $userModel->setUsername("sdfdsfdsfs");
    $userModel->setEmail($user_data['email']);
    $gender = 0;
    $password = rand(99999999,9999999999999);
    $userModel->setPassword($password);
    $userModel->setPid(3);
    $userModel->addUsergroup($userGroup);
    
    $this->FrontendUserRepository->add($userModel);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多