Typo3:如何获取后端用户的所有用户组,反之亦然

时间:2018-09-25 10:50:36

标签: typo3

我正在尝试编写一个扩展,后端用户可以在其中向同一组用户发送电子邮件。我知道如何找到后端用户以及组。但是我找不到任何方法来找出用户所属的组以及该组中的其他用户。 我希望这里有人可以帮助我。预先感谢。

编辑: 我在控制器中注入了后端用户存储库

$v

并使用以下语句获取所有后端用户:

/**
 * beUserRepository
 *
 * @var \TYPO3\CMS\Extbase\Domain\Repository\BackendUserRepository
 * @inject
 */
protected $beUserRepository = null;

我可以通过以下方式获取所有UserGroup:

$allUsers = $this->beUserRepository->findAll();

但是似乎不存在这样的东西。

1 个答案:

答案 0 :(得分:0)

有一个数据库表字段be_users.usergroup,其中包含用逗号分隔的be_groups.uid列表。

您可以将其用于数据库查找。 ppl经常使用SQL查询,例如

WHERE usergroup LIKE "<myid>,%" OR usergroup LIKE "%,<myid>,%" OR usergroup LIKE "%,<myid>" OR usergroup = "<myid>"

检查是否包含逗号分隔的字段(尽管某些SQL方言可能具有更简单的方法)。

要了解其他表中存储内容的方式和位置,可以参考一下TCA文件,例如https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Configuration/TCA/be_users.php#L63

关于您的更新:

https://docs.typo3.org/typo3cms/CoreApiReference/8.7/ApiOverview/BackendUserObject/指向API类 https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_authentication_1_1_backend_user_authentication.html 您可以在其中找到一些与类似任务有关的函数来提取 最佳实践。

请记住,非管理员用户将无法访问很多信息,因此您需要离开用户上下文(即,您不能使用BackendUserAuthentication,而需要使用基础方法)。

关于您的总体想法:

请记住,可以通过继承将组安排在复杂的层次结构中。因此,列出“其他组用户”可能并不容易,因为根据情况,您可能需要添加父组或子组的用户。