36 self.jobs={} |
36 self.jobs={} |
37 self.name=name |
37 self.name=name |
38 self.features=["mail", "sms", "fax", ] |
38 self.features=["mail", "sms", "fax", ] |
39 |
39 |
40 def status(self,id=None,detailed=False): |
40 def status(self,id=None,detailed=False): |
41 ''' |
41 u'''Gibt den aktuellen Status eines Auftrages zurück. |
42 gets the status for a job |
42 |
43 if the id is None all Jobs of an user are given back |
43 Keywords: |
|
44 id[hash]: Eine Auftragsnummer |
|
45 default - alle Aufträge ausgeben |
|
46 detailed[boolean]: Details ausgeben |
|
47 default - False |
|
48 |
|
49 Return: |
|
50 jobs[list]: Eine Liste der Aufträge. |
|
51 job.name[string]: Angebener Name |
|
52 job.status[string]: Status des Auftrages |
|
53 |
|
54 |
44 ''' |
55 ''' |
45 try: |
56 try: |
46 jobs={} |
57 jobs={} |
47 if id==None: |
58 if id==None: |
48 jobs=self.jobs |
59 jobs=self.jobs |
64 except: |
75 except: |
65 logger.exception("Fehler in iro.user.status") |
76 logger.exception("Fehler in iro.user.status") |
66 return {} |
77 return {} |
67 |
78 |
68 def stop(self,id): |
79 def stop(self,id): |
69 ''' |
80 u'''Stoppt den angegeben Auftrag. |
70 stops an job with id |
81 |
|
82 Keywords: |
|
83 id[hash]: Eine Auftragsnummer |
|
84 |
|
85 Return: |
|
86 |
71 ''' |
87 ''' |
72 try: |
88 try: |
73 job=self.jobs[id] |
89 job=self.jobs[id] |
74 job.stop() |
90 job.stop() |
75 except: |
91 except: |
76 raise NoID(id) |
92 raise NoID(id) |
77 job.stop() |
93 job.stop() |
78 |
94 |
79 |
95 |
80 def startSMS(self, message, recipients, provider="default"): |
96 def startSMS(self, message, recipients, provider="default"): |
81 ''' |
97 u'''Versendet eine SMS. |
82 starts the SMS with message to recipients |
98 |
|
99 Keywords: |
|
100 message[string]: Nachricht |
|
101 recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) |
|
102 provider[string]: Provider über den geschickt werden soll; |
|
103 default - verschickt über den Standardprovider |
|
104 |
|
105 Return: |
|
106 id[hash]: Die ID des Auftrages |
|
107 |
83 ''' |
108 ''' |
84 if not "sms" in self.features: |
109 if not "sms" in self.features: |
85 raise NotSupportedFeature("sms") |
110 raise NotSupportedFeature("sms") |
86 id = self.jobqueue.newSMS(message,recipients,provider,user=self.name) |
111 id = self.jobqueue.newSMS(message,recipients,provider,user=self.name) |
87 self.jobs[id]=self.jobqueue[id] |
112 self.jobs[id]=self.jobqueue[id] |
88 return id |
113 return id |
89 |
114 |
90 |
115 |
91 def startFAX(self, subject, fax, recipients, provider="default"): |
116 def startFAX(self, subject, fax, recipients, provider="default"): |
92 ''' |
117 u'''Versendet ein FAX. |
93 starts the FAX with the pdf file fax and the subject |
118 |
|
119 Keywords: |
|
120 subject[string]: der Betreff |
|
121 fax[string]: das pdf base64 kodiert |
|
122 recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) |
|
123 provider[string]: Provider über den geschickt werden soll; |
|
124 default - verschickt über den Standardprovider |
|
125 |
|
126 Return: |
|
127 id[hash]: Die ID des Auftrages |
|
128 |
94 ''' |
129 ''' |
95 logger.debug("startFAX(%s,%s,%s,%s)"%(subject, fax, recipients, provider)) |
130 logger.debug("startFAX(%s,%s,%s,%s)"%(subject, fax, recipients, provider)) |
96 if not "fax" in self.features: |
131 if not "fax" in self.features: |
97 raise NotSupportedFeature("fax") |
132 raise NotSupportedFeature("fax") |
98 |
133 |
103 id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self.name) |
138 id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self.name) |
104 self.jobs[id]=self.jobqueue[id] |
139 self.jobs[id]=self.jobqueue[id] |
105 return id |
140 return id |
106 |
141 |
107 def startMail(self, subject, body, recipients, frm, provider="default"): |
142 def startMail(self, subject, body, recipients, frm, provider="default"): |
|
143 u'''Versendet eine Email. |
|
144 |
|
145 Keywords: |
|
146 subject[string]: der Betreff |
|
147 body[string]: der Email Body |
|
148 recipients[list]: eine Liste von Emailadressen |
|
149 frm[string]: Die Absender Emailadresse |
|
150 provider[string]: Provider über den geschickt werden soll; |
|
151 default - verschickt über den Standardprovider |
|
152 |
|
153 Return: |
|
154 id[hash]: Die ID des Auftrages |
|
155 |
|
156 ''' |
108 if not "mail" in self.features: |
157 if not "mail" in self.features: |
109 raise NotSupportedFeature("mail") |
158 raise NotSupportedFeature("mail") |
110 logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider)) |
159 logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider)) |
111 id = self.jobqueue.newMail(subject, body, recipients, frm, provider,user=self.name) |
160 id = self.jobqueue.newMail(subject, body, recipients, frm, provider,user=self.name) |
112 self.jobs[id]=self.jobqueue[id] |
161 self.jobs[id]=self.jobqueue[id] |
113 return id |
162 return id |
114 |
163 |
115 def getProvider(self, name): |
164 def getProvider(self, typ): |
116 if not name in self.features: |
165 u'''Gibt eine Liste aller verfügbaren Provider zurück. |
117 raise NotSupportedFeature(name) |
166 |
|
167 Keywords: |
|
168 typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll |
|
169 Einer der Liste ["sms","fax","mail"] |
|
170 |
|
171 Return: |
|
172 providerlist[list]: Eine Liste aller möglichen Provider |
|
173 |
|
174 ''' |
|
175 if not typ in self.features: |
|
176 raise NotSupportedFeature(typ) |
118 |
177 |
119 return self.jobqueue.providerlist.getProviderlist(name) |
178 return self.jobqueue.providerlist.getProviderlist(typ) |
120 |
179 |
121 def getDefaultProvider(self, name): |
180 def getDefaultProvider(self, typ): |
122 if not name in self.features: |
181 u'''Gibt den Standardprovider zurück. |
123 raise NotSupportedFeature(name) |
182 |
|
183 Keywords: |
|
184 typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll |
|
185 Einer der Liste ["sms","fax","mail"] |
|
186 |
|
187 Return: |
|
188 provider[string]: Der Standardprovider für den angeben Typ |
|
189 |
|
190 |
|
191 ''' |
|
192 if not typ in self.features: |
|
193 raise NotSupportedFeature(typ) |
124 |
194 |
125 return self.jobqueue.providerlist.getDefault(name)["name"] |
195 return self.jobqueue.providerlist.getDefault(typ)["name"] |
126 |
196 |
127 class Admin(User): |
197 class Admin(User): |
128 def __init__(self, name, jobqueue): |
198 def __init__(self, name, jobqueue): |
129 User.__init__(self, name, jobqueue) |
199 User.__init__(self, name, jobqueue) |
130 self.jobs=jobqueue.jobs |
200 self.jobs=jobqueue.jobs |