2017-09-05 36 views
0

上午使用了cakephp3和cakedc插件。我有兩個用戶組,1個是正常用戶,另外一個是超級用戶
我基本上尋找的是爲不同的用戶設置不同的身份驗證URL,因爲兩個用戶組都有不同的dashbaord。 我試圖鉤UsersAuthComponent::EVENT_AFTER_LOGIN。這是我在eventListener
如何爲cakedc插件中的不同用戶組設置不同的auth重定向url cakephp3

$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的對象作爲網址構建EventLister沒有可用的代碼。上面的代碼工作正常,但我在結果對象都附加了URL中獲取當前URL附加和它變得像

domain.com/<user's dashboard url in urlencoded format> 

,但我希望它重定向到我在eventListner 已設置用戶的儀表板URL任何幫助將不勝感激

+0

而不是使用助手,你應該可以調用'\ Cake \ Routing \ Router :: url([...])'。 –

+0

是的發佈後的問題我已經改變了幫手調用url方法 – newbie

回答

0

我能想到的2個選擇:

  • 覆蓋EVENT_AFTER_LOGIN(更復雜)
  • 創建一個儀表板操作,併爲每個角色創建2個不同的視圖1。然後在儀表盤的動作,你可以這樣做

    if ($role === ROLE_ADMIN) { $this->render('dashboard_admin'); } else { $this->render('dashboard_user'); }

我認爲選擇2是很簡單的使用它,你可以提取的意見,共同標記爲元素,並在這兩個重用。

+0

我使用的管理員主題..你有任何想法如何改變它的模板? – newbie

+0

請開始另一個問題,看起來像評論是不相關的。如果這是你要走的路,那麼將答案設置爲已解決也是很好的......謝謝 – steinkel

+0

好吧,它引導我走向了這條河。但是我的問題仍然沒有解決。 – newbie

相關問題