+ def send_initiate_password_reset_email(self):
+ # email user next step instructions
+ to_addr = {}
+ to_addr[self['email']] = "%s %s" % \
+ (self['first_name'], self['last_name'])
+ from_addr = {}
+ from_addr[self.api.config.PLC_MAIL_SUPPORT_ADDRESS] = \
+ "%s %s" % ('Planetlab', 'Support')
+
+ # fill in template
+ messages = Messages(self.api, ['ASSWORD_RESET_INITIATE'])
+ if not messages:
+ print >> log, "No such message template"
+ return 1
+
+ message = messages[0]
+ subject = message['subject']
+ template = message['template'] % \
+ (self.api.config.PLC_WWW_HOST,
+ self['verification_key'], self['person_id'],
+ self.api.config.PLC_MAIL_SUPPORT_ADDRESS,
+ self.api.config.PLC_WWW_HOST)
+
+ self.api.mailer.mail(to_addr, None, from_addr, subject, template)
+
+ def send_account_registered_email(self, site):
+
+ to_addr = {}
+ cc_addr = {}
+ from_addr = {}
+ from_addr[self.api.config.PLC_MAIL_SUPPORT_ADDRESS] = \
+ "%s %s" % ('Planetlab', 'Support')
+
+ # email user
+ user_full_name = "%s %s" % (self['first_name'], self['last_name'])
+ to_addr[self['email']] = "%s" % user_full_name
+
+ # if the account had a admin role or a pi role, email support.
+ if set(['admin', 'pi']).intersection(self['roles']):
+ to_addr[self.api.config.PLC_MAIL_SUPPORT_ADDRESS] = \
+ "%s %s" % ('Planetlab', 'Support')
+
+ # cc site pi's
+ site_persons = Persons(self.api, site['person_ids'])
+ for person in site_persons:
+ if 'pi' in person['roles'] and not person['email'] in to_addr.keys():
+ cc_addr[person['email']] = "%s %s" % \
+ (person['first_name'], person['last_name'])
+
+ # fill in template
+ messages = Messages(self.api, ['ACCOUNT_REGISTERED'])
+ if not messages:
+ print >> log, "No such message template"
+ return 1
+
+ message = messages[0]
+ subject = message['subject'] % (user_full_name, site['name'])
+ template = message['template'] % \
+ (user_full_name, site['name'], ", ".join(self['roles']),
+ self.api.config.PLC_WWW_HOST, self['person_id'],
+ self.api.config.PLC_MAIL_SUPPORT_ADDRESS,
+ self.api.config.PLC_WWW_HOST)
+
+ self.api.mailer.mail(to_addr, cc_addr, from_addr, subject, template)
+