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

有帮助吗?

解决方案

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

我想你应该:

  • 如果用户和管理员不会感到困惑,请使用相同的控制器操作
  • 仅当用户是 admin 时才显示输入字段,并为其他用户输出文本
  • 检查控制器中的授权

其他提示

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

您也可以与beforeSave做模型()。如果该字段是存在的,他们没有权限,删除它。

您可以simly的管理角色在编辑视图中检查

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top