2013-11-02 38 views
1

我即將開始構建一個系統,該系統將要求選定一組問題並將其保存爲清單文檔,以便分發給任意一組用戶。Laravel 4,Sentry 2和用戶權限

我打算使用Laravel 4作爲我的框架和Sentry 2來處理權限。

我的問題是:

如果我用一個用戶,可以說,聯繫級訪問創建檢查清單,我有,說100,督察級別的用戶,我可以限制訪問使用Sentry的每個用戶的單個清單?我最好希望允許用戶訪問單個清單(檢查的集合)。

回答

1

您可以輕鬆創建獨立的團體對你的清單:

// Create the group 
$group = Sentry::createGroup(array(
    'name'  => 'Administrators', 
    'permissions' => array(
     'checklists.admin' => 1, 
     'checklists.view' => 1, 
    ), 
)); 

// Create the group 
$group = Sentry::createGroup(array(
    'name'  => 'checklists.view.101', 
    'permissions' => array(
     'checklists.view.101' => 1, 
    ), 
)); 

你的用戶加入到一個清單組:

$user = Sentry::getUser()->addGroup(Sentry::getGroupProvider()->findByName('Checklist101')); 

,並檢查是否有訪問它:

return $user->hasAnyAccess(['checklists.view', 'checklists.view.101']) 

在這種情況下,如果您的用戶是管理員,它也將能夠查看它。

+0

感謝您的回覆,但如果檢查列表是動態創建的,除非每次創建列表時,我都會創建一個專門用於該列表的組,並將用戶分配給新組。這不會最終會污染用戶組表嗎?就我個人而言,我現在正在考慮將用戶/檢查列表分隔到列出檢查列表ID和允許的用戶ID的查找表中。 – Wally

+0

有一種方法可以將真實羣組與列表羣組分開,「污染」羣組表格有什麼問題? Imo比僅僅創建完全不同的東西來處理應該由主授權類處理的東西要好得多。 –

+0

夠公平的,我可以在那裏看到你的觀點。我看到我也可以使用用戶特定的權限。再一次,我的謝意。 – Wally