2017-03-05 33 views
0

我想創建一個網頁,管理員和用戶都可以,但是,在頁面只有管理員可以查看它的1下側,而在另一側的用戶和管理員可以查看它。使管理員只有一部分頁上的CakePHP 3

我試了一下這個代碼

$this->Auth->user(['role']['admin']); 

這是一個功能

在我的控制器代碼,這是我的看法代碼

if ($this->request->session()->read('Auth.User.role.admin')){ 

什麼,我試圖實現是在auth組件檢查用戶的角色,如果是管理員應該顯示哪些隱藏到用戶頁面的一部分。

這是錯誤我得到

通知(8):未定義指數:管理員[APP /控制器\ BestellenController.php 17行]

+0

簡單地做一個條件一樣,如果($這個 - > Auth->用戶([「角色」] ==「管理員」)......我想如果我這樣做,我可以更好地處理這些事情的AppController .. –

+0

收到以下錯誤, 化AuthHelper找不到。 –

+0

及文檔中我找不到有關Auth輔助 –

回答

1

您可以更好地處理行動的授權AppController的。

在你的AppController做這樣的事情:

public function isAuthorized($user) { 
    $action = $this->request->params['action']; // request action 
    if($action == "test") { 
     if($user['role'] == 'admin'){ 
      return true; 
     } else { 
      // this page is for admin only 
      echo 'You are not authorized to access the page.'; 
      // redirect('Somewhere'); 
     } 
    } 
} 

上述功能只是讓「測試」動作只能訪問管理員。如果你想這樣做同樣的事情,對於任何控制器的任何行動,只是檢查控制器有作爲。

,如果你想使才把某些角色視圖訪問某些部分:

$role = $this->request->session()->read('Auth.User.role'); 
if($role == "admin") { 
    // this is for admin 
} else { 
    // this is for other 
} 

我希望你有用戶表的作用領域。

+0

我不希望這樣, 爲示例 一些文本blahblah等等< - 這應該只顯示給管理員 其他一些文本blahblah < - 這應顯示給用戶和管理員 –

+0

你的意思是你想在視圖文件中做到這一點? –

+0

是那正是我的意思 –