这个模块提供了用python处理ldap内容的简单方法。
afpy.ldap的Python项目详细描述
afpy.ldap
此模块在http://www.afpy.org上积极用于管理法国python comunity成员。
以下示例显示了包的所有功能。如果你只是想 以最快的方式尝试一下从狮身人面像中读取Installation and configuration 文档。
获取连接(此自定义afpy连接获取来自 ~/.ldap.ini文件。见Installation and configuration):
>>> from afpy.ldap import custom as ldap >>> conn = ldap.get_conn()
通过is dn:
获取节点>>> dn = 'uid=gawel,ou=members,dc=afpy,dc=org' >>> node = conn.get_node(dn) >>> node <Node at uid=gawel,ou=members,dc=afpy,dc=org> >>> print node.birthDate 19750410000000Z
您还可以使用模式定义自己的节点类:
>>> from afpy.ldap.node import Node >>> from afpy.ldap import schema >>> class User(Node): ... uid=schema.StringProperty('uid') ... birthDate = schema.DateProperty('birthDate', title='Date de naissance') >>> node = conn.get_node(dn, node_class=User) >>> node <User at uid=gawel,ou=members,dc=afpy,dc=org>
然后将数据转换为python对象:
>>> node.birthDate datetime.date(1975, 4, 10)
这也允许生成带有FormAlchemy:
的表单>>> from afpy.ldap import forms >>> fs = forms.FieldSet(User) >>> user = User() >>> fs.rebind(user) >>> print fs.render().strip() # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE <div> <label class="field_opt" for="User--uid">Uid</label> <input id="User--uid" name="User--uid" type="text" /> </div> ... <div> <label class="field_opt" for="User--birthDate">Date de naissance</label> ...
源代码可以在AFPy repository
有漏洞,功能请求?你喜欢送啤酒吗?发送一个 在gawel@afpy.org发送电子邮件,或在freenode上的afpy频道加入我们。
新闻
0.8.2
- 添加listofGroups和listofPerms属性。允许设置user.groups=[]
0.8.1
- 当UID不存在时,修复身份验证失败
0.8
- 小修补程序
- 添加不连续的组
0.7
- 添加repoze.what插件
- 允许通过配置文件设置节点类
- 使用最新的python ldap修复compat
0.5
- 需要dataflake.ldapconnection>;=1.0b1,python ldap>;=2.3.10
0.1
- 初始版本