VirtualBox

Trac 权限

Trac 使用一个简单且区分大小写的权限系统来控制用户可以和不可以访问的内容。

权限可以通过 trac-admin 工具或在 Web 界面的管理选项卡中的通用 / 权限面板进行管理。

除了本页描述的默认权限策略之外,还可以通过启用插件并将其列在 [trac] permission_policies 中来激活其他权限策略。详见 TracFineGrainedPermissions

访问系统的未认证用户被分配名称 anonymous。为 anonymous 用户分配权限可设置匿名/访客用户的特权。用户没有权限的 Trac 部分将不会在导航中显示。除了这些特权外,用户在认证并登录系统后还可以获得额外的个人权利。所有登录用户都属于虚拟组 authenticated,该组继承 anonymous 的权限。

图形管理选项卡

要访问此选项卡,用户必须拥有以下权限之一:TRAC_ADMINPERMISSION_ADMINPERMISSION_GRANTPERMISSION_REVOKE。权限可以使用 trac-admin 命令授予,详情见下文

$ trac-admin /path/to/projenv permission add bob TRAC_ADMIN

然后,用户 bob 将能够看到管理选项卡,并可以访问权限菜单。此菜单将允许您执行所有以下操作,但通过浏览器而不是需要服务器的 root 权限。用户名中至少使用一个小写字符,因为全大写名称保留给权限使用。

admin.png

admin-permissions.png

admin-permissions-TICKET_ADMIN.png

在图形管理选项卡中,拥有 PERMISSION_GRANT 权限的用户只能授予其自身拥有的权限,而拥有 PERMISSION_REVOKE 权限的用户只能撤销其自身拥有的权限。例如,用户除非拥有 PERMISSION_GRANTMILESTONE_ADMIN 权限,否则无法授予 MILESTONE_ADMIN;除非拥有 PERMISSION_REVOKEMILESTONE_ADMIN 权限,否则无法撤销 MILESTONE_ADMINPERMISSION_ADMIN 仅仅授予用户 PERMISSION_GRANTPERMISSION_REVOKE 两种权限,而拥有 TRAC_ADMIN 权限的用户可以授予或撤销任何权限。

可用权限

要为用户启用所有权限,请使用 TRAC_ADMIN 权限。此权限就像在 *NIX 系统上拥有 root 权限一样:它将允许您执行任何操作。

否则,可以为用户分配 Trac 不同功能区域的单独权限,并请注意,权限名称为大写

仓库浏览器

BROWSER_VIEW 仓库浏览器中查看目录列表
FILE_VIEW 仓库浏览器中查看文件
CHANGESET_VIEW 查看仓库签入
LOG_VIEW 仓库浏览器中查看文件和目录的修订日志

工单系统

TICKET_VIEW 查看现有工单并执行工单查询
TICKET_CREATE 创建新工单
TICKET_APPEND 工单添加评论和附件,并编辑用户创建的工单描述
TICKET_CHGPROP 修改工单属性(优先级、指派、关键词等),但有以下例外:编辑他人创建的工单描述,登录后在抄送字段中添加/移除其他用户
TICKET_MODIFY 包含 TICKET_APPENDTICKET_CHGPROP 两种权限,此外,还允许在默认工作流中解决工单。当可能的负责人列表受限时,可以通过下拉列表将工单分配给用户。
TICKET_EDIT_CC 完全修改抄送字段
TICKET_EDIT_DESCRIPTION 修改描述字段。拥有 TICKET_APPENDTICKET_CHGPROP 权限的用户可以修改其创建的工单描述。
TICKET_EDIT_COMMENT 修改其他用户的评论。任何用户默认都可以修改自己的评论。
TICKET_BATCH_MODIFY 批量修改工单
TICKET_ADMIN 所有 TICKET_* 权限,删除工单附件以及修改报告者字段,这允许代表另一个用户创建工单,并看起来像是另一个用户创建的工单。它还允许通过网络管理模块管理工单属性。

路线图

MILESTONE_VIEW 查看里程碑并将工单分配给里程碑。
MILESTONE_CREATE 创建新里程碑
MILESTONE_MODIFY 修改里程碑
MILESTONE_DELETE 删除里程碑
MILESTONE_ADMIN 所有 MILESTONE_* 权限
ROADMAP_VIEW 查看路线图页面,这与 MILESTONE_VIEW 权限尚不相同,详见 #4292
ROADMAP_ADMIN 将随 #3022 一并移除,由 MILESTONE_ADMIN 替代。

报告

REPORT_VIEW 查看报告,即查看工单链接。
REPORT_SQL_VIEW 查看报告的 SQL 查询
REPORT_CREATE 创建新报告
REPORT_MODIFY 修改报告
REPORT_DELETE 删除报告
REPORT_ADMIN 所有 REPORT_* 权限

维基系统

WIKI_VIEW 查看维基页面
WIKI_CREATE 创建新维基页面
WIKI_MODIFY 修改维基页面
WIKI_RENAME 重命名维基页面
WIKI_DELETE 删除维基页面和附件
WIKI_ADMIN 所有 WIKI_* 权限,以及 只读 页面的管理。

权限

PERMISSION_GRANT 添加/授予权限
PERMISSION_REVOKE 移除/撤销权限
PERMISSION_ADMIN 所有 PERMISSION_* 权限

其他

TIMELINE_VIEW 查看时间线页面
SEARCH_VIEW 查看并执行搜索查询
CONFIG_VIEW 关于 Trac中启用额外部分,显示当前配置和已安装插件列表
EMAIL_VIEW 显示电子邮件地址,即使 trac show_email_addresses 配置选项为 false

附件权限

附件权限由 LegacyAttachmentPolicy 处理,与目前讨论的权限不同,LegacyAttachmentPolicy 提供的权限并非直接授予。相反,创建、查看和删除附件的能力由附件的父领域以及用户在该领域拥有的权限决定。

附件操作由工单、维基和里程碑领域中的以下权限决定

授予者工单维基里程碑
ATTACHMENT_CREATE TICKET_APPEND WIKI_MODIFY MILESTONE_MODIFY
ATTACHMENT_VIEW TICKET_VIEW WIKI_VIEW MILESTONE_VIEW
ATTACHMENT_DELETE TICKET_ADMIN WIKI_DELETE MILESTONE_DELETE

已认证用户可以删除他们添加的附件,而无需拥有授予 ATTACHMENT_DELETE 的权限。

如果首选显式附件权限,可以使用 ExtraPermissionsProvider 创建 ATTACHMENT_CREATEATTACHMENT_DELETEATTACHMENT_VIEW 权限。最简单的实现是仅定义操作。

[extra-permissions]
_perms = ATTACHMENT_CREATE, ATTACHMENT_DELETE, ATTACHMENT_VIEW

另一种配置是添加一个 ATTACHMENT_ADMIN 元权限,该权限授予其他 3 种权限。

[extra-permissions]
ATTACHMENT_ADMIN = ATTACHMENT_CREATE, ATTACHMENT_DELETE, ATTACHMENT_VIEW

显式权限可以与 LegacyAttachmentPolicy 结合使用,或者可以将 LegacyAttachmentPolicypermission_policies 中移除,在这种情况下,只有被显式授予相应附件操作权限的用户才能创建、删除和查看附件。

授予权限

您可以使用 trac-admin 向用户授予权限。当前的权限集可以通过以下命令列出

$ trac-admin /path/to/projenv permission list

此命令将允许用户 bob 删除报告

$ trac-admin /path/to/projenv permission add bob REPORT_DELETE

permission add 命令也接受多个权限名称

$ trac-admin /path/to/projenv permission add bob REPORT_DELETE WIKI_CREATE

或添加所有权限

$ trac-admin /path/to/projenv permission add bob TRAC_ADMIN

权限组

有两个内置组:authenticatedanonymous。任何未登录的用户都会自动加入 anonymous 组。任何已登录的用户也属于 authenticated 组。authenticated 组继承 anonymous 组的权限。例如,如果 anonymous 组拥有 WIKI_MODIFY 权限,则无需再将 WIKI_MODIFY 权限添加到 authenticated 组。

可以定义继承这两个内置组权限的自定义组。

权限可以组合起来形成角色,例如 developeradmin 等。

$ trac-admin /path/to/projenv permission add developer WIKI_ADMIN
$ trac-admin /path/to/projenv permission add developer REPORT_ADMIN
$ trac-admin /path/to/projenv permission add developer TICKET_MODIFY
$ trac-admin /path/to/projenv permission add bob developer
$ trac-admin /path/to/projenv permission add john developer

组的成员身份可以通过不带额外参数的 permission list 命令进行检查;结果输出将包含组的成员身份。组名中至少使用一个小写字符,因为全大写名称保留给权限使用

添加新组和权限

权限组可以通过将用户分配到您希望创建的组来创建,然后为该组分配权限。

以下操作会将 bob 添加到名为 beta_testers 的新组,然后将 WIKI_ADMIN 权限分配给该组。因此,bob 将继承 WIKI_ADMIN 权限。

$ trac-admin /path/to/projenv permission add bob beta_testers
$ trac-admin /path/to/projenv permission add beta_testers WIKI_ADMIN

移除权限

权限可以使用“remove”命令移除。

此命令将阻止用户 bob 删除报告

$ trac-admin /path/to/projenv permission remove bob REPORT_DELETE

就像 permission add 命令一样,此命令接受多个权限名称。

您还可以移除特定用户的所有权限

$ trac-admin /path/to/projenv permission remove bob '*'

或为所有用户移除一个权限

$ trac-admin /path/to/projenv permission remove '*' REPORT_ADMIN

创建新权限

要创建自定义权限(例如用于自定义工作流),请在“插件”管理面板中启用可选的 tracopt.perm.config_perm_provider.ExtraPermissionsProvider 组件,并将所需的权限添加到您的 trac.ini 文件中的 [extra-permissions] 部分。更多信息,请在启用该组件后参考 TracIni 页面的文档。

默认权限

默认情况下,在新 Trac 安装中,anonymous 用户将拥有 Trac 中所有内容的查看权限,但无法创建或修改任何内容。另一方面,authenticated 用户将拥有创建和修改工单和维基页面的权限。

anonymous

BROWSER_VIEW
CHANGESET_VIEW
FILE_VIEW
LOG_VIEW
MILESTONE_VIEW
REPORT_SQL_VIEW
REPORT_VIEW
ROADMAP_VIEW
SEARCH_VIEW
TICKET_VIEW
TIMELINE_VIEW
WIKI_VIEW

authenticated

TICKET_CREATE
TICKET_MODIFY
WIKI_CREATE
WIKI_MODIFY

另请参阅:TracAdminTracFineGrainedPermissions

上次修改 2 年前 上次修改时间:2023/06/02 上午 10:32:55
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私 / 请勿出售我的信息 使用条款 商标政策 自动化访问礼仪