为 TestLink 增加从 LDAP 同步用户的功能
管理员在配置 TestLink 时,经常会问我们一个问题:用户管理平台(使用LDAP)中创建的用户,并没有出现在 testlink 的用户数据库中,如何为用户指派权限?
之前我们的实现是这样的:
- 用户帐号已经在 LDAP 中存在了
- 用户访问 testlink,点击“登录”则跳转到“单点登录系统”
- 在“单点登录系统”认证成功后,浏览器重定向,跳转到 TestLink
- TestLink 发现用户已经登录,但是内置帐号不存在,会自动从 LDAP 中查询登录用户的信息,自动为该用户创建 TestLink 内置帐号,并设置缺省权限(缺省是游客,管理员可配置)。
- TestLink 实现 “LDAP用户同步” 功能: 增加了 365 行
$ tg patch t/ldap_account_sync | grep "^+" | wc -l 365
- Redmine 实现同样功能,只用了不到一半的代码量:141 行
$ tg patch t/synchronization_account_from_ldap | grep "^+" | wc -l 141