예제 #1
0
def get_db_conn(db):
    if backend == 'ldap' and db in ['ldap', 'vmail']:
        from libs.ldaplib.auth import verify_bind_dn_pw
        qr = verify_bind_dn_pw(dn=settings.ldap_bind_dn,
                               password=settings.ldap_bind_password,
                               close_connection=False)
        if qr[0]:
            return qr[1]
        else:
            return None

    try:
        conn = web.database(dbn=sql_dbn,
                            host=settings.__dict__[db + '_db_host'],
                            port=int(settings.__dict__[db + '_db_port']),
                            db=settings.__dict__[db + '_db_name'],
                            user=settings.__dict__[db + '_db_user'],
                            pw=settings.__dict__[db + '_db_password'])

        conn.supports_multiple_insert = True
        return conn
    except Exception, e:
        print_error(e)
예제 #2
0
web.config.debug = ira_tool_lib.debug
logger = ira_tool_lib.logger

# Check database name to make sure it's Cluebringer
if settings.policyd_db_name != 'cluebringer':
    sys.exit('Error: not a Cluebringer database.')

logger.info('Query all mail domains (including alias domains).')
all_domains = []
if settings.backend == 'ldap':
    import ldap
    from libs.ldaplib.auth import verify_bind_dn_pw

    # Initialize LDAP connection.
    qr = verify_bind_dn_pw(dn=settings.ldap_bind_dn,
                           password=settings.ldap_bind_password,
                           close_connection=False)
    if qr[0]:
        ldap_conn = qr[1]

    # Query mail domains
    qr = ldap_conn.search_s(settings.ldap_basedn, ldap.SCOPE_SUBTREE,
                            "(objectClass=mailDomain)",
                            ['domainName', 'domainAliasName'])

    for r in qr:
        entry = r[1]
        all_domains += entry.get('domainName', [])
        all_domains += entry.get('domainAliasName', [])

else:
web.config.debug = ira_tool_lib.debug
logger = ira_tool_lib.logger

# Check database name to make sure it's Cluebringer
if settings.policyd_db_name != "cluebringer":
    sys.exit("Error: not a Cluebringer database.")

logger.info("Query all mail domains (including alias domains).")
all_domains = []
if settings.backend == "ldap":
    import ldap
    from libs.ldaplib.auth import verify_bind_dn_pw

    # Initialize LDAP connection.
    qr = verify_bind_dn_pw(dn=settings.ldap_bind_dn, password=settings.ldap_bind_password, close_connection=False)
    if qr[0]:
        ldap_conn = qr[1]

    # Query mail domains
    qr = ldap_conn.search_s(
        settings.ldap_basedn, ldap.SCOPE_SUBTREE, "(objectClass=mailDomain)", ["domainName", "domainAliasName"]
    )

    for r in qr:
        entry = r[1]
        all_domains += entry.get("domainName", [])
        all_domains += entry.get("domainAliasName", [])

else:
    conn = ira_tool_lib.get_db_conn("vmail")