python/commands.py
changeset 0 6f7a81934006
child 2 b3afb9f1e801
equal deleted inserted replaced
-1:000000000000 0:6f7a81934006
       
     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)