关于 pySvnManager 的回复
关于软件安装
问:看到你开发的这个pysvnmanager很不错,比较适合于svn的 账户 权限管理,我的操作系统是centos,用easy_install安装的是0.4版本,不知道 哪里 有0.5版本下载呢?
答:直接从 sourceforge.net 上下载源代码安装吧
安装出错
问:我下载了源码,按照README中 的指导进行安装
$ cd config $ make $ python setup.py compile_catalog $ paster serve --reload develogment.ini 运行却报错如下: /usr/lib/python2.4/site-packages/PasteScript-1.7.3-py2.4.egg/paste/script/pluginlib.py:81: UserWarning: Unbuilt egg for pySvnManager [unknown version] (/usr/local/pysvnmanager) pkg_resources.require(plugin) Traceback (most recent call last): File "/usr/bin/paster", line 7, in ? .....
应该是依赖的 pylons 框 架未安装。
其实有源代码,你可以编译出 egg 包哇。
$ python setup.py bdist_egg
然后,就可以安装 dist 目录 下的 egg 包,安装 egg 包会自动安装依赖的 pylons 框架。 你看到 Readme 并执行的指 令是直接运行源码,为调试而用的。
关于认证
问:还有一个问题想请交一下,我想从LDAP服务器同步帐号来做认证。现在单独从本地密码文件,或者单独LDAP服务登录都可以。但是两个一起用,好像不行。因为看到localconfig.py文件里面说可以二者都用。因为我想把root管理帐号认证放在本地,其他帐号放在LDAP服务器,不知道这样可不可以?谢谢!
答复:同时用两种认证,就需要在 auth 数组同时加入两种认证方式,如下:
from pysvnmanager.model.auth.http import htpasswd_login import ldap from pysvnmanager.model.auth.ldap_login import ldap_login auth = [htpasswd_login, ldap_login] ## LDAP login parameters ldap_uri = 'ldap://localhost' ldap_binddn = 'cn=ldapreader,dc=foo,dc=bar' ldap_bindpw = 'guess' ldap_base = 'dc=foo,dc=bar'
关于 LDAP 用户组授权
问:我还有一个问题关于LDAP账户同步的问题。我先在LDAP服务器上建立了一个svnusers用户组,把有权限使用svn的用户都加到这个组里面来;然后在apache里面读取svnusers组里面的memberUid来实现svn对特定组的账户读取。所以我就想问不知道能否在pysvnmanager里面实现这样的功能,也就是读取属于某一个组的用户帐号?
答复:我的 LDAP 授权模型和你的不同,不是通过用户组而是为用户设置名为 authorizedService 多值属性进行授权。可以通过设置 ldap_filter 加以判断:
ldap_filter = '(&(uid=%(username)s)(authorizedService=svn)(ossxpConfirmed=TRUE))'
我的方案要新增 LDAP schema,可以配合我们公司的统一管理平台进行图形化的用户授权。
你的方案也很好,不过在认证过程增加了一次查询(用户组匹配),会影响执行效率。