【问题标题】:using CakePHP 'Acl' component使用 CakePHP 'Acl' 组件
【发布时间】:2010-11-13 00:34:33
【问题描述】:

我是 CakePHP 组件的新手。 我已经构建了一个具有登录功能的 CakePHP 应用程序。 我没有使用“Auth”组件,而是使用我的自定义方法进行身份验证。

现在我想在同一个应用程序中使用“Acl”组件,但我无法这样做,因为它还需要“Auth”组件。

是否可以在没有“Auth”的情况下使用“Acl”。 如果有,谁能指点一下?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    至少根据 Cake PHP 手册,可以单独使用它们。只要您可以将经过身份验证的用户链接到数据库中的 ARO,它就应该可以工作。你可以在这里看到一些关于 CakePHP ACL 的基础知识:http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html,这里有一个关于设置 ACL 的不错的教程:http://bakery.cakephp.org/articles/view/user-permissions-and-cakephp-acl

    如果您的数据库中没有用户,那就有点棘手了。只要您可以在登录后检索到具有所需权限的 ARO,就可以了。

    【讨论】:

      【解决方案2】:

      是的,这是可能的 - 只要您将您的用户帐户与 ACL 相关联,一切都应该没问题。

      假设您的用户使用他们的电子邮件和密码登录,那么您的别名字段中的 ARO 表可以包含电子邮件地址和指向您的用户表 id 的 foreign_id。

      一旦您拥有所有 ACO,就可以使用来检查权限

      $res =  $this->Acl->check(
              $us, // user alias (e-mail)
              $this->name, // name of the controller
              $privilege // privilege i.e. 'read' or '*'
              );
          return $res;
      

      在 AppController 的 beforeFilter 中调用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-27
        • 2014-02-07
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        相关资源
        最近更新 更多