iro/user.py
changeset 302 3f4bdea2abbf
parent 90 eb04ac3a8327
parent 301 d5ebbcccc41b
child 303 9708742ff89c
--- a/iro/user.py	Wed Dec 21 22:07:48 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-# -*- coding: utf-8 -*-
-#Copyright (C) 2009  Sandro Knauß <bugs@sandroknauss.de>
-
-#This program is free software; you can redistribute it and/or modify it under the terms
-#of the GNU General Public License as published by the Free Software Foundation;
-#either version 3 of the License, or any later version.
-#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#See the GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with this program; if not, see <http://www.gnu.org/licenses/>.
-import logging
-logger=logging.getLogger("iro.user")
-class NotSupportedFeature (Exception):
-    def __init__(self,name):
-        self.name=name
-    
-    def __str__(self):
-        return ("This is not a supported feature:", self.name)
-
-class NoID(Exception):
-    def __init__(self,i):
-        self.i=i
-    
-    def __str__(self):
-        return ("No Job with id:", self.i)
-
-
-class User: 
-    '''
-    class for a xmlrpc user
-    '''
-    def __init__(self, name, jobqueue):
-        self.jobqueue=jobqueue
-        self.jobs={}
-        self.name=name
-        self.features=["mail", "sms", "fax", ]
-
-    def status(self,id=None,detailed=False):
-        u'''Gibt den aktuellen Status eines Auftrages zurück.
-
-        Keywords:
-        id[hash]: Eine Auftragsnummer
-        detailed[boolean]: Details ausgeben
-
-        Return:
-        jobs[list]: Eine Liste der Aufträge.
-        job.name[string]: Angebener Name
-        job.status[string]: Status des Auftrages
-
-
-        '''
-        try:
-            jobs={}
-            if id==None:
-                jobs=self.jobs
-            else:
-                try:
-                    jobs={id:self.jobs[id]}
-                except:
-                    logger.error("No Job ID %s",id)
-                    #raise NoID(id)
-            ret={}
-            if not jobs:
-                return {}
-
-            for key in jobs:
-                job=jobs[key]
-                ret[key]={"name":job.getName(),"status":job.getStatus(detailed)}
-            
-            return ret
-        except:
-            logger.exception("Fehler in iro.user.status")
-            return {}
-
-    def stop(self,id):
-        u'''Stoppt den angegeben Auftrag.
-
-        Keywords:
-        id[hash]: Eine Auftragsnummer
-
-        Return:
-
-        '''
-        try:
-            job=self.jobs[id]
-            job.stop()
-        except:
-            raise NoID(id)
-        job.stop()
-
-    
-    def startSMS(self, message, recipients, provider="default"):
-        u'''Versendet eine SMS.
-
-        Keywords:
-        message[string]: Nachricht
-        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        if not "sms" in self.features:
-            raise NotSupportedFeature("sms")
-        id = self.jobqueue.newSMS(message,recipients,provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id
-    
-    
-    def startFAX(self, subject, fax, recipients, provider="default"):
-        u'''Versendet ein FAX.
-
-        Keywords:
-        subject[string]: der Betreff
-        fax[string]: das pdf base64 kodiert
-        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        logger.debug("startFAX(%s,%s,%s,%s)"%(subject, fax, recipients, provider))
-        if not "fax" in self.features:
-            raise NotSupportedFeature("fax")
-        
-        if type(fax) != list:
-            fax=[fax]
-        f=[i.data for i in fax]
-
-        id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id
-
-    def startMail(self, subject,  body, recipients, frm, provider="default"):
-        u'''Versendet eine Email.
-
-        Keywords:
-        subject[string]: der Betreff
-        body[string]: der Email Body
-        recipients[list]: eine Liste von Emailadressen
-        frm[string]: Die Absender Emailadresse
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        if not "mail" in self.features:
-            raise NotSupportedFeature("mail")
-        logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider))
-        id = self.jobqueue.newMail(subject, body, recipients, frm,  provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id    
-       
-    def getProvider(self, typ):
-        u'''Gibt eine Liste aller verfügbaren Provider zurück.
-
-        Keywords:
-        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
-                     Einer der Liste ["sms","fax","mail"]
-
-        Return:
-        providerlist[list]: Eine Liste aller möglichen Provider
-
-        '''
-        if not typ in self.features:
-            raise NotSupportedFeature(typ)
-       
-        return self.jobqueue.providerlist.getProviderlist(typ)
-        
-    def getDefaultProvider(self, typ):
-        u'''Gibt den Standardprovider zurück.
- 
-        Keywords:
-        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
-                     Einer der Liste ["sms","fax","mail"]
-
-        Return:
-        provider[string]: Der Standardprovider für den angeben Typ
-
-
-        '''
-        if not typ in self.features:
-            raise NotSupportedFeature(typ)
-       
-        return self.jobqueue.providerlist.getDefault(typ)["name"]
-        
-class Admin(User):
-    def __init__(self, name, jobqueue):
-        User.__init__(self, name, jobqueue)
-        self.jobs=jobqueue.jobs