2010-10-01 129 views
3

在我的數據模型中,我有一個只能管理的字段。普通用戶可以編輯模型中的記錄並查看此特定字段,但他們不應該能夠編輯它。有沒有簡單/乾淨的方法來做到這一點?我想有必要創建一個額外的admin_edit控制器操作,但是什麼是「鎖定」控制器中的數據字段的最佳方法?CakePHP:只允許數據字段管理員可編輯

回答

2

沒有必要創建一個新的控制器動作,但您可以自行決定。請注意,您仍然可以使用同樣的看法它使用$this->render("edit")的看到:http://book.cakephp.org/view/428/render

我想你應該:

  • 使用相同的控制器動作,如果這不是爲用戶和管理員
  • 顯示混亂只有當用戶是管理員,並輸出給其他用戶
  • 檢查授權控制器
1

根據您的設置,這可以輕鬆地作爲模型中的驗證方法進行處理。在模型中寫一個自定義函數來檢查用戶是否有權限。

你也可以在模型中用beforeSave()來做到這一點。如果該字段存在並且他們沒有權限,請將其刪除。

0

可以SIM文本輸入字段請檢查編輯視圖中的管理員角色

if (hasRoleAdmin) { 
echo $this->Form->input(...); 
} 
+0

這很容易實現,但並不安全。 *如果*惡意用戶提供包含此字段的手動HTTP POST請求,則可以編輯它。 – joni 2010-10-04 08:53:53

+0

我正在談論會話中的SAVED角色。如果他們自己不安全,世界上的任何一個網站都不會安全。但我想你是指POST部分本身。沒有馬上得到。當然你總是需要確保用戶不能「保存」更多的數據。但是這必須在調用save()之前在控制器中完成。詳細信息:http://www.dereuromark.de/2010/09/21/saving-model-data-and-security/ – mark 2010-10-04 22:57:07

+0

謝謝,該博客文章似乎對我有用。 (用母語與您自己的語言交流時,感到很奇怪) – joni 2010-10-05 10:56:10

相關問題