trac中特定故障单的AuthzPolicy权限

时间:2012-10-03 14:44:27

标签: trac

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

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

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

AuthzPolicy-plugin是否为具有特定状态,所有者或其他内容的故障单提供权限设置?

mutetella

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

修改确实如此,所以你会发现一个例子解释为“John只有BROWSER_VIEW和FILE_VIEW只能访问trunk / src / some / location中'somefile'的修订版1”

因此,对您的问题的直接回答是否定的,取决于故障单状态,您不能这样做,因为无论状态如何,所有故障单看起来都与资源URL相同,抱歉。

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