2015-04-04 73 views
0

我爲我的應用程序使用Laravel,我想問問哪裏是檢查對象權限的最佳位置。哪裏是檢查對象權限的最佳位置?

每個模型都有checkPermissions()方法。

所以如果用戶請求更改模型客戶端路由器將調用控制器中的方法updateClient()。我應該這樣做:

$client = Client::find(Input::get('id')); 
$client->checkPermissions(); 

或者我應該創建一個獲取客戶端和檢查權限的新方法嗎? :

$client = Client::getClientById($id); 

其中getClientById()是在客戶機模型中定義的方法,它檢查權限...

你能描述也是爲什麼你選擇其中一個或另一個解決方案? 謝謝

回答

0

沒有一個'最好的地方'。這將取決於您的應用程序。

但實際上有兩種選擇。

  1. 在過濾器中。這樣,您可以在請求過濾控制器之前過濾請求,並確保他們有權訪問他們正在嘗試訪問的記錄。

  2. 在控制器中,使用上面給出的示例。

這不是一個好主意,做身份驗證模型內部檢查 - 模型應該只專注於獲取數據,而不是做身份驗證。

0

您可以使用模板一步(檢查的權限,然後從你的控制器內訪問數據)..我同意瓦特/ @theshiftchange這種模式不應該知道的有關權限等定義訪問機制..

相關問題