CakePHP:使数据域仅可管理

时间:2010-10-01 13:16:22

标签: php cakephp cakephp-1.3

在我的数据模型中,我有一个应该只能管理员编辑的字段。普通用户可以编辑模型中的记录并查看此特定字段,但他们无法对其进行编辑。这样做有简单/干净的方法吗?我想有必要创建一个额外的admin_edit控制器动作,但是什么是“锁定”控制器中的数据字段的最佳方法?

3 个答案:

答案 0 :(得分:2)

没有必要创建新的控制器操作,但您可以这样决定。请注意,您仍然可以使用$this->render("edit")使用相同的视图,请参阅:http://book.cakephp.org/view/428/render

我认为你应该:

  • 使用相同的控制器操作,如果这对用户和管理员而言并不混淆
  • 仅在用户为admin时显示输入字段,并为其他用户输出文本
  • 检查控制器中的授权

答案 1 :(得分:1)

根据您的设置,这可以很容易地作为模型中的验证方法处理。在模型中编写自定义函数以检查用户是否具有权限。

您也可以使用beforeSave()在模型中执行此操作。如果该字段在那里且他们没有权限,请将其删除。

答案 2 :(得分:0)

您可以在编辑视图中模拟检查管理员角色

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