【发布时间】:2013-08-18 19:23:11
【问题描述】:
是否有存储 web2py 应用程序配置设置的好方法?
我编写了一个小应用程序,其中包含一个从 LDAP 查找用户属性(姓名、电子邮件地址等)的脚本。我们的公司 LDAP 服务器需要绑定,然后才能搜索用户详细信息。
我想从 GitHub 存储库共享我的应用程序,但在我删除用于绑定的凭据之前。
来自 .Net 背景,我习惯于将这样的配置放入 app|web.config 文件中。但是这个 seems to be frowned on 在 web2py 中。
什么是 Pythonic 或 web2pyonic 方式?
def user_info(username):
#todo: move these parameters to config
ldap_host = 'example.com'
ldap_port = 389
ldap_base_dn = 'OU=DK,DC=example,DC=com'
ldap_bind_dn = 'CN=<removed>,OU=DK,DC=example,DC=com'
ldap_bind_pw = '<removed>'
ldap_attr_uid = 'sAMAccountName'
ldap_attr_forename = 'givenName'
ldap_attr_surname = 'sn'
ldap_attr_display_name = 'displayName'
ldap_attr_department = 'department'
ldap_attr_employee_type = 'employeeType'
ldap_attr_email = 'mail'
l = ldap.initialize('ldap://%s:%s' % (ldap_host, ldap_port))
l.simple_bind_s(ldap_bind_dn, ldap_bind_pw)
r = l.search_s(base=ldap_base_dn,
scope=ldap.SCOPE_SUBTREE,
filterstr='(%s=%s)' % (ldap_attr_uid, username),
attrlist=[
ldap_attr_forename,
ldap_attr_surname,
ldap_attr_email,
ldap_attr_display_name,
ldap_attr_employee_type,
ldap_attr_department])
if r:
dn, e = r[0]
return {
'dn': dn,
'forename': e[ldap_attr_forename][0],
'surname': e[ldap_attr_surname][0],
'email': e[ldap_attr_email][0],
'display_name': e[ldap_attr_display_name][0],
'department': e[ldap_attr_department][0],
'employee_type': e[ldap_attr_employee_type][0]}
return None
【问题讨论】:
-
我对 web2py 不是很熟悉,但是在 Django 中,这可以通过一个单独的、未版本化的
local_settings.py文件来实现——例如stackoverflow.com/questions/4909958/django-local-settings.
标签: python configuration ldap web2py