上一篇中已经搭建了一个可用的Trac系统,本文记录了Trac中账户管理功能的集成。
一、激活Admin管理页面
1. 用命令行为项目指定一个管理员:
sudo trac-admin /var/lib/trac/YourProject permission add fake_admin TRAC_ADMIN
2. 用htpasswd命令(apache2附带工具)生成密码文件:
sudo htpasswd -c trac.htpasswd fake_admin
3. 配置apache中的basic授权:
<LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "Trac" AuthUserFile path_to_pwd_file Require valid-user </LocationMatch>
或者,如果以后要用AccountManager插件的话,干脆就不配置apache2中的授权,运行以下命令后直接跳到下一步【参考】:
tracd -p 8000 –basic-auth=”*,pwd_file_path,local_trac” path_to_project
4. 用fake_admin登陆,便可看见admin菜单。
二、AccountManagerPlugin插件的安装与配置
插件本身的安装就不说了,安装完之后用刚刚的fake_admin重登陆trac便可看见该插件的配置页面。配置本身也很清晰易懂,但是有3个需要注意的地方:
有意思的是,在account管理页面,user列表中并没有最开始创建的admin_user。那么我们是否可以先创建一个临时账户(有admin权限),在配置好accountManager之后删除掉呢?下面做个实验:
所以,通过临时账户来创建真正的admin的思路是可以的。现在的问题是如何删除那个临时账户呢?
首先,删除临时账户的admin权限:
trac-admin testtrac permission remove fakead_min TRAC_ADMIN
其次,由于AuthStore会将用户信息存入数据库中,我们先前指定的trac.htpasswd文件也不会再用,所以现在唯一的问题是:临时账户信息会被导入到数据库中么?那么,我们在不指定trac.htpasswd文件时启动服务,能用临时账户登录进去么?答案是不能。看来,这个临时admin的方法是安全的。