equal
deleted
inserted
replaced
40 |
40 |
41 def get_user_sessions(repo, ueid): |
41 def get_user_sessions(repo, ueid): |
42 for session in repo._sessions.values(): |
42 for session in repo._sessions.values(): |
43 if ueid == session.user.eid: |
43 if ueid == session.user.eid: |
44 yield session |
44 yield session |
45 |
45 |
46 |
46 |
47 # mail related ################################################################ |
47 # mail related ################################################################ |
48 |
48 |
49 SMTP_LOCK = Lock() |
49 SMTP_LOCK = Lock() |
50 |
50 |
56 assert recipients |
56 assert recipients |
57 self.to_send = [(msg, recipients)] |
57 self.to_send = [(msg, recipients)] |
58 else: |
58 else: |
59 assert recipients is None |
59 assert recipients is None |
60 self.to_send = [] |
60 self.to_send = [] |
61 super(SendMailOp, self).__init__(session, **kwargs) |
61 super(SendMailOp, self).__init__(session, **kwargs) |
62 |
62 |
63 def register(self, session): |
63 def register(self, session): |
64 previous = super(SendMailOp, self).register(session) |
64 previous = super(SendMailOp, self).register(session) |
65 if previous: |
65 if previous: |
66 self.to_send = previous.to_send + self.to_send |
66 self.to_send = previous.to_send + self.to_send |
67 |
67 |
68 def commit_event(self): |
68 def commit_event(self): |
69 self.repo.threaded_task(self.sendmails) |
69 self.repo.threaded_task(self.sendmails) |
70 |
70 |
71 def sendmails(self): |
71 def sendmails(self): |
72 server, port = self.config['smtp-host'], self.config['smtp-port'] |
72 server, port = self.config['smtp-host'], self.config['smtp-port'] |
73 SMTP_LOCK.acquire() |
73 SMTP_LOCK.acquire() |
74 try: |
74 try: |
75 try: |
75 try: |
76 smtp = SMTP(server, port) |
76 smtp = SMTP(server, port) |
87 self.exception("error sending mail to %s (%s)", |
87 self.exception("error sending mail to %s (%s)", |
88 recipients, ex) |
88 recipients, ex) |
89 smtp.close() |
89 smtp.close() |
90 finally: |
90 finally: |
91 SMTP_LOCK.release() |
91 SMTP_LOCK.release() |
92 |
92 |
93 |
93 |
94 # state related ############################################################### |
94 # state related ############################################################### |
95 |
95 |
96 def previous_state(session, eid): |
96 def previous_state(session, eid): |
97 """return the state of the entity with the given eid, |
97 """return the state of the entity with the given eid, |