iro/user.py
changeset 67 d1912509f375
parent 63 3df3da063cff
child 70 a9ee0fe847a8
equal deleted inserted replaced
66:eabb8ead183d 67:d1912509f375
    29 
    29 
    30 class User: 
    30 class User: 
    31     '''
    31     '''
    32     class for a xmlrpc user
    32     class for a xmlrpc user
    33     '''
    33     '''
    34     def __init__(self,jobqueue):
    34     def __init__(self, name, jobqueue):
    35         self.jobqueue=jobqueue
    35         self.jobqueue=jobqueue
    36         self.jobs={}
    36         self.jobs={}
       
    37         self.name=name
    37         self.features=["mail", "sms", "fax", ]
    38         self.features=["mail", "sms", "fax", ]
    38 
    39 
    39     def status(self,id=None,detailed=False):
    40     def status(self,id=None,detailed=False):
    40         '''
    41         '''
    41         gets the status for a job
    42         gets the status for a job
    80         '''
    81         '''
    81         starts the SMS with message to recipients
    82         starts the SMS with message to recipients
    82         '''
    83         '''
    83         if not "sms" in self.features:
    84         if not "sms" in self.features:
    84             raise NotSupportedFeature("sms")
    85             raise NotSupportedFeature("sms")
    85         id = self.jobqueue.newSMS(message,recipients,provider)
    86         id = self.jobqueue.newSMS(message,recipients,provider,user=self)
    86         self.jobs[id]=self.jobqueue[id]
    87         self.jobs[id]=self.jobqueue[id]
    87         return id
    88         return id
    88     
    89     
    89     
    90     
    90     def startFAX(self, subject, fax, recipients, provider="default"):
    91     def startFAX(self, subject, fax, recipients, provider="default"):
    97         
    98         
    98         if type(fax) != list:
    99         if type(fax) != list:
    99             fax=[fax]
   100             fax=[fax]
   100         f=[i.data for i in fax]
   101         f=[i.data for i in fax]
   101 
   102 
   102         id = self.jobqueue.newFAX(subject, f,recipients,provider)
   103         id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self)
   103         self.jobs[id]=self.jobqueue[id]
   104         self.jobs[id]=self.jobqueue[id]
   104         return id
   105         return id
   105 
   106 
   106     def startMail(self, subject,  body, recipients, frm, provider="default"):
   107     def startMail(self, subject,  body, recipients, frm, provider="default"):
   107         if not "mail" in self.features:
   108         if not "mail" in self.features:
   108             raise NotSupportedFeature("mail")
   109             raise NotSupportedFeature("mail")
   109         logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider))
   110         logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider))
   110         id = self.jobqueue.newMail(subject, body, recipients, frm,  provider)
   111         id = self.jobqueue.newMail(subject, body, recipients, frm,  provider,user=self)
   111         self.jobs[id]=self.jobqueue[id]
   112         self.jobs[id]=self.jobqueue[id]
   112         return id    
   113         return id    
   113        
   114        
   114     def getProvider(self, name):
   115     def getProvider(self, name):
   115         if not name in self.features:
   116         if not name in self.features:
   122             raise NotSupportedFeature(name)
   123             raise NotSupportedFeature(name)
   123        
   124        
   124         return self.jobqueue.providerlist.getDefault(name)["name"]
   125         return self.jobqueue.providerlist.getDefault(name)["name"]
   125         
   126         
   126 class Admin(User):
   127 class Admin(User):
   127     def __init__(self,jobqueue):
   128     def __init__(self, name, jobqueue):
   128         User.__init__(self, jobqueue)
   129         User.__init__(self, name, jobqueue)
   129         self.jobs=jobqueue.jobs
   130         self.jobs=jobqueue.jobs