题
在我的数据模型中,我有一个只能由管理员编辑的字段。普通用户可以编辑模型中的记录并查看此特定字段,但他们不应该能够编辑它。有没有简单/干净的方法来做到这一点?我想有必要创建一个额外的 admin_edit 控制器操作,但是在控制器中“锁定”数据字段的最佳方法是什么?
解决方案
没有必要创建新的控制器操作,但您可以决定这样做。请注意,您仍然可以使用相同的视图 $this->render("edit")
看: http://book.cakephp.org/view/428/render
我想你应该:
- 如果用户和管理员不会感到困惑,请使用相同的控制器操作
- 仅当用户是 admin 时才显示输入字段,并为其他用户输出文本
- 检查控制器中的授权
其他提示
根据您的设置,这可以很容易地作为模型验证方法处理。编写自定义函数模型,以检查用户是否具有权限。
您也可以与beforeSave做模型()。如果该字段是存在的,他们没有权限,删除它。
您可以simly的管理角色在编辑视图中检查
if (hasRoleAdmin) {
echo $this->Form->input(...);
}
不隶属于 StackOverflow