代码之家  ›  专栏  ›  技术社区  ›  joni

CakePHP:使数据域管理仅可编辑

  •  3
  • joni  · 技术社区  · 15 年前

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

    3 回复  |  直到 15 年前
        1
  •  2
  •   Adam Adriaan Stander    15 年前

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

    我认为你应该:

    • 仅当用户是admin时才显示输入字段,并为其他用户输出文本
    • 检查控制器中的授权
        2
  •  1
  •   Codeacula    15 年前

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

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

        3
  •  0
  •   mark    15 年前

    您可以在编辑视图中简单地检查admin角色

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