每个项目是否可以拥有独立的 trac 用户?

每个项目是否可以拥有独立的 trac 用户?

我正在为多个项目运行独立的 tracd:

 tracd -p 8080 --basic-auth="*,/path/to/projects/.htpasswd, mycompany.com" -e /path/to/projects

项目环境是在/路径/到/项目并将用户添加到/路径/到/项目/.htpasswd. 这使得用户可以跨项目共享,即任何用户都可以访问任何项目。

有没有简单的方法可以使用独立设置进行基于每个项目的用户身份验证?我正在寻找这样的解决方案:

tracd -p 8080 --basic-auth="*,.htpasswd, mycompany.com" -e /path/to/projects

其中 .htpasswd 的路径与项目环境相关,即每个环境都有自己的 .htpasswd,并且用户不会跨项目交叉。

答案1

我不认为您可以在单个 Trac 安装中为每个项目使用不同的 .htpasswd 文件来管理用户(当使用 Trac 的内部 Web 服务器时)。我知道 Trac 社区正在考虑这个问题(请参阅多个项目的综合解决方案了解更多信息)。

话虽如此,你确实可以选择通过 Apache 和 Python 运行 Trac 来托管多个项目,这为项目提供了一些便利。请参阅通过 Apache 在 Trac 中实现多个项目简而言之,在 Apache 中,您将执行以下操作:

ScriptAlias /project /path/to/trac.cgi

<Location "/project">
    SetEnv TRAC_ENV "/path/to/trac/project"
</Location>

<Location "/project/login">
    AuthType basic
    AuthName "project - trac"
    AuthUserFile "/path/to/svn-auth-file"
    Require valid-user
</Location>

如果您需要将 Trac 保留为自己的 Web 服务器,那么即使所有 Trac 项目共享相同的 .htpasswd 文件,您也可以为不同的项目设置不同的权限。这样,用户可以是某个 Trac 项目的 TRAC_ADMIN 或 WIKI_ADMIN,而在另一个 Trac 项目中则不具有这些权限。您可以使用 trac-admin 工具从命令行执行此操作。例如:

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

或者您可以从 GUI 完成相同的操作(当以具有特定项目的 TRAC_ADMIN 权限的用户身份登录时,转到 Admin->Privileges)。

有关使用命令行 trac-admin 工具设置权限(用户和组)的更多信息,请参阅Trac 权限。有关使用权限策略管理权限的更精细的选项,请参阅Trac 权限政策

相关内容