1

我正在使用 AuthzPolicy-plugin 来管理 trac-env 中的权限。现在我想设置一个权限,禁止除管理员以外的所有用户查看具有特定状态的工单。

我尝试了很多,例如 authzpolicy.conf 中的以下条目:

[ticket:*/status:new]
@administrators = TICKET_VIEW
* =

AuthzPolicy 插件是否为具有特定状态、所有者或其他内容的票证提供权限设置?

静音

4

2 回答 2

0

TracFineGrainedPermissions可以使用资源路径中表示的任何属性。

修订版可以,因此您会找到一个示例,解释为“John 仅在 trunk/src/some/location 对 'somefile' 的修订版 1 具有 BROWSER_VIEW 和 FILE_VIEW 访问权限”

所以你的问题的直接答案是不,你不能根据票证状态做同样的事情,因为无论他们的状态如何,所有票证从资源 URL 看起来都是一样的,抱歉。

我同意,作为最后的手段,您可以诉诸实施 bta 已经概述的自定义政策。

于 2012-10-07T19:05:06.427 回答
0

Trac 的权限系统专注于组件级别。您可以打开或关闭对整个组件的访问,但不能访问该组件内的子内容。

话虽如此,您可以创建一个模拟更细粒度权限系统的插件。该插件需要IRequestFilter在加载页面时实现和检查页面的 URL。它将从 URL 中提取票号,在数据库中查找票的详细信息,并确定当前用户是否应该查看该页面。如果用户没有权限,插件会将请求重定向到错误页面。这并不太难做到(我以前为了保护特定的 wiki 页面做过),但很难维护,因为它是一个完全独立于 Trac 权限系统的单独权限机制。

于 2012-10-05T23:28:38.673 回答