def password_reset_request(event): user = get_profile(event.principal_id, "basic") f = open_file('mail/password_reset_request.tmpl', __file__) site = hooks.getSite() site_url = absoluteURL(site, event.req) page_link = u'%s/password_reset' % site_url full_link = u'%s?login=%s&code=%s' % (page_link, event.login, event.code) dc = IZopeDublinCore(site) data = {'name': user.name, 'code': event.code, 'page_link': page_link, 'full_link': full_link, 'site_title': dc.title, 'site_url': site_url} message = Template(file=f, searchList=[data]) subject = u'Password reset request' send_mail(message, subject, user.email, subtype='html', from_header=dc.title, to_header=user.name)
def password_reset_request(event): user = get_profile(event.principal_id, "basic") f = open_file('mail/password_reset_request.tmpl', __file__) site = hooks.getSite() site_url = absoluteURL(site, event.req) page_link = u'%s/password_reset' % site_url full_link = u'%s?login=%s&code=%s' % (page_link, event.login, event.code) dc = IZopeDublinCore(site) data = { 'name': user.name, 'code': event.code, 'page_link': page_link, 'full_link': full_link, 'site_title': dc.title, 'site_url': site_url } message = Template(file=f, searchList=[data]) subject = u'Password reset request' send_mail(message, subject, user.email, subtype='html', from_header=dc.title, to_header=user.name)
def update(self): auth = getUtility(IAuthentication) principalfolder = auth[u'principalfolder'] delete = self.request.get('form.delete.submit') reset = self.request.get('form.delete.reset') if delete: ids = self.request.get('delete') if ids: for i in ids: del principalfolder[i] if self.request.get('form.add.submit'): login = self.request.get('user_login') name = self.request.get('user_name') email = self.request.get('user_email') password = self.request.get('user_password') if login and name and password and email: ip = InternalPrincipal(login, password, login, u'', 'SSHA') principalfolder[login] = ip profile = get_profile("principal.%s" % login, "basic") profile.name = name profile.email = email if reset or delete: self.start = 0 else: self.start = int(self.request.get('start') or self.start) search = self.request.get('search') names = principalfolder.search({'search': search or ''}, self.start, self.batch_size) self.result = [] for x in names: internal_principal = principalfolder[x[len(principalfolder.prefix):]] name = IBasicProfile(auth.getPrincipal(x)).name self.result.append({'intprin': internal_principal, 'name': name}) self.total = len(principalfolder) self.end = self.start + len(self.result) self.more = self.total > self.end and not bool(search)
def send(self, message, subject): for pid in self.subscribers.keys(): profile = get_profile(pid, "basic") send_mail(message, subject, profile.email)