问题标签 [zend-acl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2434 浏览

php - Zend ACL 是否适合我的需要?

我的应用程序基于 Zend 框架。我正在使用Zend_Auth身份验证,但我不确定是否Zend_Acl对我有用,因为坦率地说,我看到的示例要么过于简单,要么让我感到困惑。

我将我的应用程序中的元素视为资源,这些资源可以具有特权。包含资源特权的角色是动态定义分配给用户的。我将此信息存储在规范化表中。

  1. 用户有一个角色
  2. 一个角色可以有多个资源
  3. 资源可以有多个权限

角色实际上只是没有层次结构的资源特权的集合。资源的一个示例是“页面”。每个人都可以查看页面,但经过身份验证的用户需要“添加”、“编辑”或“删除”权限才能对页面执行任何其他操作。

这是否与 Zend ACL 相结合?我是否以一种会给我带来问题的方式思考 ACL?


我的解决方案

Typeonerror 得到了赞扬,但这是我的具体解决方案。

我扩展Zend_Acl以简化我的使用,因为我只加载当前用户的角色:

为了填充 ACL,我执行了一个返回resourceprivilegerole_id列的查询。role_id如果用户的角色没有该权限,则该列在结果集中为空。

0 投票
1 回答
461 浏览

php - Zend_Auth 和 Zend_Acl 与 Zend_Amf_Server 的集成

有没有人成功地将 Zend_Auth 和 Zend_Acl 与 Zend_Amf_Server 集成在一起?我正在寻找一个工作示例。

0 投票
3 回答
5265 浏览

php - 赋予 Zend 导航页面多个 ACL 权限

我正在使用Zend_Navigation并尝试将其与Zend_Acl. 导航中的每个页面都有一个privilege属性。我无法确定的是如何为单个页面定义多个权限。

用例:用于管理用户的页面。add如果当前登录用户的角色对资源具有、editdelete权限,我想显示该页面(在导航中)Users

导航 XML 中的示例条目:

如上所述使用逗号分隔的列表不会提供所需的行为。


更新

在挖掘代码后,我发现Zend_Navigation_Page它只允许单个字符串值。有没有人扩展了这个类或找到了绕过这个限制的另一种方法?

0 投票
1 回答
420 浏览

zend-framework - zend_acl:动态添加额外资源并获取参数预调度

首先对 woffle 感到抱歉,因为我不确定如何最好地描述这一点。基本上我不确定如何在加载控制器之前在引导程序中获取参数,但这是冗长的版本......

我有一个 acl 类来存储我所有的默认资源。我所有的页面/帖子内容都是一个数据库,我希望管理员能够选择页面可用的角色。

我知道可以循环遍历数据库表并一次将它们全部添加,但我担心这会消耗资源。我让它工作,我的访问检查插件可以调用动态权限函数,但我需要获取当前页面 ID 的参数,并且在加载控制器之前设置它的权限。

这有意义还是我什么都不担心,我应该一次获得所有页面的资源?

提前感谢您阅读我的乱码!!

0 投票
1 回答
772 浏览

zend-framework - 使用 Zend ACL 拒绝访问操作会导致导航链接消失

我有一个具有四个操作的计划控制器:

所以我用这样的数组设置了 Zend_Navigation:

我还在 ACL 中创建了两个组:用户和管理员。我想对其进行设置,以便用户可以访问“索引”和“查看”,而管理员可以访问所有内容。所以我从这个开始:

现在,似乎除非我添加这一行:

该链接不会显示在导航中。然后,如果我添加这个:

用户被阻止“添加”操作,到目前为止一切顺利。但是,如果我再添加:

用户被适当地阻止,但链接从导航对象中消失。有谁知道我做错了什么?谢谢。

0 投票
2 回答
583 浏览

zend-framework - 如何创建基于模型的 Acl

如果我们的应用程序中有一些模块,我们如何通过 zend 框架为每个模型创建基于模型的 ACL?

谢谢

0 投票
4 回答
1124 浏览

zend-framework - Zend_ACL 限制?

我正在考虑使用 Zend_ACL。但是,在我看来,您似乎创建了角色,然后将这些角色授予控制器和他们可以或不能访问的操作的权限。

然而,对我来说,这似乎相当有限。过去我创建了一个用户权限系统,在其中存储了 user_id、模块、控制器和他们可以访问的操作,但是我从未给他们一个组。因此,每个用户、每个模块、每个控制器、每个操作都基于他们可以访问的内容。

所以!我想知道我是否想减少组的限制,我应该给用户一个组并默认设置这些组权限。然后加载我的用户特定角色并覆盖默认组设置的角色:你们会这样做吗?

0 投票
0 回答
273 浏览

zend-acl - 我如何构造 Zend_Controller_Router_Route 来处理相同位置的动作和参数键?

这是我在 JSON 中的路线:

这允许像下面这样的 URI,并且到目前为止运行良好:

但是,我希望:action位置也允许以下 URI:

到目前为止,我在App_Controller_Action::__call()中完成了这项工作。它可以工作,但是很混乱,因为在发送请求之前,该操作在技术上仍被列为“搜索”或“术语”,并且这些键的值被分配给 id。

这导致我在前端控制器插件中执行的 Zend_Acl 检查出现问题。作为一种解决方法,我添加了“搜索”和“类型”作为我的 ACL 的权限,但同样,这很混乱。ACL 应该保持这些语义的清洁。我希望在请求到达 ACL 插件之前对其进行修改。

0 投票
2 回答
3553 浏览

php - 使用 Zend Auth 和 Zend ACL 进行 PHP 单元测试

我有一个在登录后使用 zend_acl 和 zend_auth 的应用程序。

在预调度期间,我有一个 ACL 插件,可以为 ACL 创建所有规则。我还有一个 Auth 插件,用于检查您是否已登录,如果已登录,您是否可以根据 ACL 访问所请求的资源。

由于应用程序完全在登录之后,因此只有在您登录时才会创建 ACL。

单元测试这似乎是不可能的,或者更可能我错过了一些明显的东西。

在我的单元测试设置方法中,我模拟了返回 zend_auth 实例的成功登录。确实通过的测试表明此登录成功。

但是,如果我随后通过测试尝试分派到另一个位置,或评估登录用户是否有权访问给定资源,则插件始终拒绝它,因为他们仍未登录。我不确定这是为什么,有人可以建议吗?

例如,这通过:

这失败了,因为它被插件拒绝了:

我发现这似乎仍然重定向回登录页面,因为插件不知道用户已登录。

非常感谢任何帮助。

0 投票
1 回答
281 浏览

zend-framework - ACL是如何实现的

我正在使用Zend_AclPHP,并且想知道如何实现 shld ACL。

shld 每个页面都是一个资源,我总是查询 acl 以查看用户是否被授权?如果我想使用控制器插件(可以设置为在每个请求上运行)来检查是否允许用户,我想我必须使用它?

还是我只是将查询代码放在我需要的地方?例如。在页面顶部我需要查询acl?然后在公开可用的页面中,我只是跳过它?如果应用程序变大可能会很麻烦?