From: Kevin C. <ke...@us...> - 2005-04-25 14:27:33
|
Update of /cvsroot/mailmanager/mailmanager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23870 Modified Files: Tag: db-backend MMUserFolder.py Log Message: Now deals with customers also Index: MMUserFolder.py =================================================================== RCS file: /cvsroot/mailmanager/mailmanager/Attic/MMUserFolder.py,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- MMUserFolder.py 23 Apr 2005 07:28:06 -0000 1.1.2.3 +++ MMUserFolder.py 25 Apr 2005 14:27:24 -0000 1.1.2.4 @@ -48,12 +48,20 @@ def getUserNames(self): """Return a list of usernames""" - return [u.username for u in self.sql.listUsers(username='')] + users = [u.username for u in self.sql.listUsers(username='')] + users.extend([u.username for u in self.sql.listCustomers(username='')]) + return users + + def getCustomerNames(self): + """Return a list of customers (used internally to discern between users and customers)""" + users = [u.username for u in self.sql.listCustomers(username='')] + return users def getUsers(self): """Return a list of user objects""" - return [self.getUser(u.username) - for u in self.sql.listUsers(username='')] + users = [self.getUser(u.username) for u in self.sql.listUsers(username='')] + users.extend([self.getUser(u.username) for u in self.sql.listCustomers(username='')]) + return users def getUser(self, name): """Return the name's user object or None""" @@ -77,7 +85,22 @@ signature=result[0].signature, email=result[0].email) else: - return None + try: + result = self.sql.listCustomers(username=name) + except: + # Bare except is ugly but each DA has its own exceptions. + # Something's gone wrong, return None so that Zope will try the + # next user folder up. + result = None + if result: + roles = ['Customer'] + return MMUser(result[0].username, result[0].password, roles, '', + real_name=result[0].real_name, + signature=result[0].signature, + email=result[0].email) + else: + return None + def userFolderAddUser(self, name, password, roles, domains, **kw): pass @@ -120,15 +143,23 @@ if 'Settings' in roles: settings = 't' - self.sql.editUser(username = name, - password = password, - real_name = kw['real_name'], - signature = kw['signature'], - email = kw['email'], - tickets = tickets, - reports = reports, - settings = settings - ) + if name in self.getCustomerNames(): + self.sql.editCustomer(username = name, + password = password, + real_name = kw['real_name'], + signature = kw['signature'], + email = kw['email'] + ) + else: + self.sql.editUser(username = name, + password = password, + real_name = kw['real_name'], + signature = kw['signature'], + email = kw['email'], + tickets = tickets, + reports = reports, + settings = settings + ) def _doDelUsers(self, names): """Delete one or more users. This should be implemented by subclasses |