2010-10-01 122 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

相关问题