|
1 # Copyright (C) 1999,2000 Bruce Guenter <bruceg@em.ca> |
|
2 # |
|
3 # This program is free software; you can redistribute it and/or modify |
|
4 # it under the terms of the GNU General Public License as published by |
|
5 # the Free Software Foundation; either version 2 of the License, or |
|
6 # (at your option) any later version. |
|
7 # |
|
8 # This program is distributed in the hope that it will be useful, |
|
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
11 # GNU General Public License for more details. |
|
12 # |
|
13 # You should have received a copy of the GNU General Public License |
|
14 # along with this program; if not, write to the Free Software |
|
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
16 |
|
17 import daemon |
|
18 import string |
|
19 import types |
|
20 |
|
21 def execute(command, *args): |
|
22 return daemon.execute(command, args) |
|
23 |
|
24 def check(domain, username, password): |
|
25 return execute('check', domain, username, password) |
|
26 |
|
27 def listdomain(domain, password): |
|
28 conn = daemon.Daemon() |
|
29 response = conn.execute(daemon.Command('listdomain', (domain, password))) |
|
30 users = [] |
|
31 while 1: |
|
32 r = conn.read_response() |
|
33 if not r: |
|
34 break |
|
35 (username,data) = string.split(r, '\0', 1) |
|
36 users.append(types.NamedVUser(username, types.VUser(data))) |
|
37 return users |
|
38 |
|
39 def adduser(domain, newuser, password, newpass, maildir=None, forwards=[]): |
|
40 return daemon.execute('adduser2', |
|
41 (domain, newuser, password, newpass, |
|
42 maildir or '') + tuple(forwards)) |
|
43 |
|
44 def lookup(domain, username, password): |
|
45 return types.VUser(execute('lookup', domain, username, password)) |
|
46 |
|
47 def autoresponse(domain, user, password, action, message=None): |
|
48 cmd = [ domain, user, password, action ] |
|
49 if message: |
|
50 cmd.append(message) |
|
51 return daemon.execute('autoresponse', cmd) |
|
52 |
|
53 def deluser(domain, username, password): |
|
54 return execute('deluser', domain, username, password) |
|
55 |
|
56 def chattr(domain, username, password, attribute, *value): |
|
57 return daemon.execute('chattr', (domain,username,password,attribute)+value) |