我正在使用 cakephp3 和 cakedc 插件。我有两个用户组,1 个是普通用户,另一个是超级用户
,我主要寻找的是为不同的用户设置不同的 auth url,因为两个用户组都有不同的 dashbaord。我试图挂钩UsersAuthComponent::EVENT_AFTER_LOGIN
。这是我的代码eventListener
$helper = new AppView();
$adminDashBoard = $helper->Url->build([
'prefix' => 'admin',
'controller' =>'users',
'action' => 'dashboard',
'plugin' => null
]);
$customerDashBoard = $helper->Url->build([
'prefix' => 'customer',
'controller' =>'customers',
'action' => 'dashboard',
'plugin' => null
]);
$result = array();
if($entity['is_superuser'] == 1)
$result[] = $adminDashBoard;
else
$result[] = $customerDashBoard;
return $result;
我必须创建 AppView 的对象,因为 Url 构建器在EventLister
. 上面的代码工作正常,但我附加在结果对象中的 url 被附加在当前 URL 中,它变得像
domain.com/<user's dashboard url in urlencoded format>
但我希望它重定向到我在eventListner
任何帮助中设置的用户仪表板 url将不胜感激
我可以考虑两种选择:
创建仪表板操作和每个角色的 2 个不同视图 1。然后在仪表板操作中,您可以执行以下操作
if ($role === ROLE_ADMIN) { $this->render('dashboard_admin'); } else { $this->render('dashboard_user'); }
我认为选项 2 很简单,可以使用它,您可以将视图中的通用标记提取到一个元素中,并在两者中重用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句