【问题标题】:What should I use as an Access Control Object in CakePHP?我应该在 CakePHP 中使用什么作为访问控制对象?
【发布时间】:2014-02-20 16:44:28
【问题描述】:

我对 ACL 很陌生

该网站介绍的是经销商可以在多个国家/地区拥有多个品牌的汽车。 例如: 经销商:John Doe 在英国拥有奥迪品牌,在法国拥有起亚品牌。

我有以下型号: - 品牌 - 国家 - 经销商 - BrandsCountriesDealers(将上述三者联系在一起)

经销商不能添加/编辑品牌或国家。他只能在他有权访问的国家和他拥有的品牌中添加/编辑/删除汽车。

我想知道我是否仅使用 BrandsCountriesDealers 模型的特定外键作为 ACO,当经销商添加汽车时,我通过检查他拥有的 BrandsCountriesDealers 模型中的记录来检查这辆车的品牌和国家是否有效访问权限?

我希望这很清楚。

【问题讨论】:

  • 我通常使用Tiny 设置基本角色访问权限,并使用控制器进行基于特定记录的检查(UID == $record[user_id] 等)。

标签: cakephp acl cakephp-2.4


【解决方案1】:

实施 ACL 有点困难,但并非不可能。一旦您习惯了使用 ACL,您就会明白它是多么的简单和强大。配置和学习它可能需要一些研究,但它确实值得。

出于某些原因,我认为您应该使用 ACL:

  1. 它让你的代码非常干净整洁:

你不需要一直分配

   if user logged in do this

   or if user type is this do that
  1. 访问级别:无需为每种类型的用户编写验证。
  2. 高安全性:ACL 与 Auth 组件配合使用
  3. 每个方法都可以授予一种或多种用户类型(角色)
  4. 几乎所有内容都存储在数据库中,因此您的代码再次清晰

我记得当我开始使用 ACL 时,我关注了 this tutorial。它是葡萄牙语。我不懂这种语言,但我一步一步地跟着它工作。

http://www.youtube.com/watch?v=EIjfwqqGRhs

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 2017-03-17
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多