2013-12-10 64 views
0

這可能是一個非常基本或愚蠢的問題,但我試圖找到答案在這裏和谷歌,但沒有運氣。可能是我不知道確切的名詞。PHP:基於權限的數組項目

我這裏定義數組如下

array(
    'home' => array(
       "dashboard", 
       "analytics" 
      ), 
    'settings' => array(
       'site', 
       'url', 
       'etc' 
      ), 
    'pages' => "pages" 
); 

創建用於導航的功能所以現在這裏是我想要做的是讓基於用戶組不同的菜單項。因此,舉例來說,如果管理員比他將能夠訪問所有菜單項,但如果主持人不僅僅是homepages等。

非常感謝您的幫助

EDIT ------ ------------------------

我有不同的組存儲到數據庫。對於你也可以認爲它從ID 1到ID 11

我正在看什麼是根據菜單數組項目內的組提供菜單訪問。因此,例如

如果ID是1,那麼它將具有整個數組訪問權限。 如果ID爲4比只有家庭和孩子+頁面和兒童訪問

我希望這將有助於理解我所期待..

+0

如果你給反對票不僅僅是把你的努力來描述爲什麼要放棄它。另外,如果我會成爲專家而不需要在這裏發佈問題:)因爲我已經有了答案。感謝您的反對票。 –

回答

0

你可以簡單地用含最低訪問級別的參數擴展陣列如:

array(
    array("name" => "dashboard", "accesslevel" => 0), 
    array("name" => "analytics", "accesslevel" => 2) 
), 
... 

當你迭代這個數組,同時創造你的菜單,你只需問用戶的ACCESSLEVEL是否足夠高,有菜單打印。

if (menuItem[accesslevel] <= userAccessLevel) { 
    // echo menuItem 
} 

只是我的兩分錢......

+0

感謝您的回覆。我想我可能錯過了一些東西來解釋更多..請參閱我編輯的問題後幾分鐘..非常感謝 –

+0

嘿@pixelngrain - 我想你將不得不將accesslevel存儲在數據庫中的每個用戶。然後,您可以按照我所描述的方式繼續。祝你好運! – Kjell

+0

但我在用戶組中存儲用戶,我希望基於不基於用戶的組訪問。那麼我還需要存儲用戶級別?它不能在團隊層面上完成嗎? –