我願做一個權限檢查,將禁止訪問特定頁面和按鈕的用戶,如果他們沒有權限。在我的數據庫中,我有一個用戶表,權限表,然後是一個permission_user表,爲每個用戶分配權限。Laravel 5.2自定義用戶權限檢查
現在,我有其中顯示與數據的所有彙總表頁面,並有一組按鈕有(查看,編輯等)和一些用戶不能做所有這些,所以我想這些按鈕不可見/禁用。我不想讓他們訪問使用這些按鈕鏈接的受限制的頁面,如果他們在URL中鍵入它(例如公共/管理/編輯/ ID)。
下面是目前可用的權限
PermissionID PermissionName
1 View
2 Add
3 Edit
4 Delete
現在在我的permissions_user表就是這個樣子
PermissionID AccountID
1 2
這裏是我的一塊控制器
public function showDetails($action, $id)
{
return view('pages.admin.form_details', ['action' => $action, 'id' => $id]);
}
這個例子功能將顯示詳細信息頁面並返回操作(字符串,可以是查看或編輯)然後檢查顯示視圖或編輯頁面是否在我的刀片中完成。如果可能的話,我想要做的所有檢查一次(就像你在每一頁如何檢查,如果用戶登錄或不通過中間件)。我實際上嘗試過zizaco委託,但我不明白如何實現它,並最終將其從我的項目中刪除。
我一直在考慮在每個頁面控制器的show function中做這樣的事情。
if($action == "edit)
//check if edit permission exists for the authenticated user. if not abort and show error page.
我認爲這是低效率和重複這樣做。會有更好的解決方案嗎?或者,也許我可以整合更簡單的軟件包?
感謝您的回答!這對我來說非常有幫助,因爲我發現文檔混亂。 –
不客氣... – georgeos