我写了一个扩展来制作服务订单。我在这里面临的问题是,
FE 用户属于“client”、“Admin”和“Employee”三个 FE 用户组。
在这里客户可以下订单,他应该只能看到他的订单。管理员可以看到不同客户完成的所有订单。并且员工应该只能看到一些客户的订单。
目前我制作了一个与 FE 用户表具有 N:1 关系的订单表。因此,每个订单都应该与任何一个客户相关。
所以在控制器中,我正在检查登录用户并在存储库中使用自定义查询,我正在访问与登录客户端(FE 用户)相关的订单
在 OrdersController.php 文件中
public function listAction() {
$orders = $this->ordersRepository->orderForLoginUsr();
$this->view->assign('orders', $orders);
}
在 OrdersRepository.php 文件中
public function orderForLoginUsr(){
$loggedInUserId = $GLOBALS ['TSFE']->fe_user->user['uid'];
$query = $this->createQuery();
$query->matching(
$query->equals('user', $loggedInUserId)
);
$query->setOrderings(array('crdate' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));
return $query->execute();
}
但在这里我的问题是如何让管理员用户能够看到所有客户完成的所有订单?我必须编写调用函数 findAll() 的不同模板和操作?
$orders = $this->ordersRepository->findAll();
以及如何设置用户组 Employee ?
提前致谢