在 MantisBT 中使用管理员账号修改用户密码
1 再见 Bugfree
最近在本地一直用的缺陷管理工具 bugfree1 没法用了。原因有两点:第一,我们的 IT 管理员最近升级了 PHP 导致依赖老版本的 PHP 的 bugfree 跑不起来了;第二, bugfree 官网说不在继续开发维护了,他们转向开发禅道了,公告如下:
感谢您对BugFree的支持,我们现在向您推荐我们团队全新的产品——禅道项目管理软件。禅道是我们历时三年精心打造的一款完整的项目管理软件,涵盖了需求管理、任务管理、缺陷管理和用例管理,是研发类项目管理的必备软件! BugFree项目以后将不再有任何更新,我们也不再提供任何技术支持。
2 拥抱 MantisBT
所以,开发团队在内部外部都得不到有效的支持,就只好切换了工具了。在浩瀚如烟的缺陷管理工具中寻寻觅觅,终于选定了这只捕虫专家螳螂 MantisBT2。Mantis 简洁高效使用方便,还有一个不错的 changelog 和 milestone 管理界面,实在是难得的一个好工具。请看官网介绍及用户评价:
MantisBT makes collaboration with team members & clients easy, fast, and professional.
"We've come to respect mantis for its powerful simplicity and I go around recommending it to friends and clients alike."
– John Zastrow / Tetra Tech, Inc.
"Great product! We tried 6 different issue trackers before settling on Mantis."
– John Locke / Freelock Computing
"Very flexible great project, exactly what we need for our software development."
– Attila Strba / EnOcean
之所以选择它,还有另外一个原因,就是我一直在用的开源文件管理程序叫 Double Commander(DC)3 也是用 MantisBT 管理缺陷和需求的。
如果想对 MantisBT 有个直观的了解可以点开 DC 的问题单管理页面查看: http://doublecmd.sourceforge.net/mantisbt/view_all_bug_page.php
另外,也你也可以看到 DC 团队是如何用 MantisBT 管理 roadmap 的: http://doublecmd.sourceforge.net/mantisbt/roadmap_page.php
3 安装配置 MantisBT
我下载安装的是 1.3.1 版本的 MantisBT,在安装了 XAMPP4 的机器上安装MantisBT 简直是小菜一碟,只要几下鼠标就可以了。相对来说配置稍微麻烦一些,如果需要简单的定制你得做这些事情:
- 创建项目,MantisBT 支持多个项目
- 添加自定义的输入域,用来支持额外的缺陷信息,比如缺陷发现的阶段等
- 设置并简化缺陷状态变迁表,默认的状态变迁表比较繁琐,有 feedback,acknowledge 等,可以精简掉,只保留 new,assigned,resolved,close
- 添加用户,并将用户关联到项目
4 修改用户密码
但是问题来了,新添加的用户密码不能手动更改,系统会发一封邮件给新用户,让她/他用随机密码登陆自己去设置新密码。但是配置 SMTP 邮箱服务器又很繁琐,只好想办法通过管理员账户手动修改。
参考了以往用户的经验总结之后,修改了两个文件,成功在最新版本的 MantisBT 上实现手动修改用户密码功能。
首先,请确保使用的 MantisBT 版本为 =1.3.1=,不然的话文件内容可能不太一样,但是基本上也差不了多少,我就是参考了 simon-杨5的文章修改的,他是 2013 年 2 月 26 日写的,所以面向的是比较老的版本,有不少差异,感兴趣的朋友可以对比一下。
然后,在 manage_user_edit_page.php
文件中找到 <!-- Access Level -->
,在其上方添加:
<!-- Password --> <div class="field-container"> <label for="edit-password"><span><?php echo "Password (change only)" ?></span></label> <span class="input"><input id="edit-password" type="text" size="32" maxlength="100" name="password" value="" /></span> <span class="label-style"></span> </div> <!-- Access Level -->
接着,在 manage_user_update.php
的 74 行左右的地方找到:
$f_user_id = gpc_get_int( 'user_id' );
在其下方增加 $f_pass = gpc_get_string('password');
$f_user_id = gpc_get_int( 'user_id' ); $f_pass = gpc_get_string('password');
最后,找到
$t_result = db_query( $t_query, $t_query_params );
在这句后面添加几行:
$t_result = db_query( $t_query, $t_query_params ); //Reset the password if specified. if ($f_pass) user_set_password($f_user_id, $f_pass); event_signal( 'EVENT_MANAGE_USER_UPDATE', array( $c_user_id ) );
然后刷新一下用户编辑页面就能修改用户密码啦。