-
Notifications
You must be signed in to change notification settings - Fork 27
/
mailsearch.py
72 lines (56 loc) · 1.77 KB
/
mailsearch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import time
import ldap
import ldif
import tempfile
from dsadmin import DSAdmin, Entry
host1 = "localhost.localdomain"
port1 = 1110
basedn = 'dc=example,dc=com'
os.environ['USE_GDB'] = "1"
srv = DSAdmin.createInstance({
'newrootpw': 'password',
'newhost': host1,
'newport': port1,
'newinst': 'srv',
'newsuffix': basedn,
'no_admin': True
})
del os.environ['USE_GDB']
initfile = ''
if os.environ.has_key('SERVER_ROOT'):
initfile = "%s/slapd-%s/ldif/Example.ldif" % (srv.sroot,srv.inst)
else:
initfile = "%s/share/dirsrv/data/Example.ldif" % os.environ.get('PREFIX', '/usr')
print "import the ldif file"
srv.importLDIF(initfile, '', "userRoot", True)
time.sleep(1)
filt = '([email protected])'
print "see if case insensitive search of mail works", filt
ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, filt)
for ent in ents:
print "found entry", ent
filt = '([email protected])'
print "see if case insensitive search of mail works", filt
ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, filt)
for ent in ents:
print "found entry", ent
#srv.setLogLevel(1)
print "add matching rule for mail case insensitive"
mod = [(ldap.MOD_ADD, 'nsMatchingRule', '1.3.6.1.4.1.1466.115.121.1.15')]
srv.modIndex(basedn, 'mail', mod)
filt = '([email protected])'
print "see if case insensitive search of mail works", filt
ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, filt)
found = False
for ent in ents:
print "found entry", ent
found = True
if not found:
print "no entries found - try re-indexing"
srv.createIndex(basedn, 'mail')
filt = '([email protected])'
print "see if case insensitive search of mail works", filt
ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, filt)
for ent in ents:
print "found entry", ent