def _reset(self): """ Manages submissions to the password reset form. """ log.debug('Form validated successfully') try: u = meta.session.query(User).filter_by( email=self.form_result['email']).one() except: log.debug('Invalid email address somehow') c.message = _('We do not have an account with that email address') return self.index(get=True) # If that worked, then we send the user an email with a temporary URL # they can use to have our system generate a new password for them. log.debug('Sending activation email') email = Email('password_reset') password_reset_data = PasswordReset.create_for_user(u) meta.session.add(password_reset_data) meta.session.commit() recipient = u.email password_reset_url = 'http://' + config[ 'debexpo.sitename'] + url.current( action='actually_reset_password', id=password_reset_data.temporary_auth_key) email.send([recipient], password_reset_url=password_reset_url) # FIXME: This should be a HTTP redirect return render('/password_recover/_reset.mako')
def _reset(self): """ Manages submissions to the password reset form. """ log.debug('Form validated successfully') try: u = meta.session.query(User).filter_by(email=self.form_result['email']).one() except: log.debug('Invalid email address somehow') c.message = _('We do not have an account with that email address') return self.index(get=True) # If that worked, then we send the user an email with a temporary URL # they can use to have our system generate a new password for them. log.debug('Sending activation email') email = Email('password_reset') password_reset_data = PasswordReset.create_for_user(u) meta.session.add(password_reset_data) meta.session.commit() recipient = u.email password_reset_url = 'http://' + config['debexpo.sitename'] + url.current( action='actually_reset_password', id=password_reset_data.temporary_auth_key) email.send([recipient], password_reset_url=password_reset_url) # FIXME: This should be a HTTP redirect return render('/password_recover/_reset.mako')
def _comment_submit(self, packagename): """ Comment submission. ``packagename`` Package name to look at. """ log.debug("Comment form validation successful") if 'user_id' not in session: log.debug('Requires authentication') session['path_before_login'] = request.path_info session.save() redirect(url('login')) package = self._get_package(packagename) status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED if self.form_result['status']: status = constants.PACKAGE_COMMENT_STATUS_UPLOADED comment = PackageComment( user_id=session['user_id'], package_version_id=self.form_result['package_version'], text=self.form_result['text'], time=datetime.now(), outcome=self.form_result['outcome'], status=status) meta.session.add(comment) meta.session.commit() subscribers = meta.session.query(PackageSubscription).filter_by( package=packagename).filter(PackageSubscription.level <= constants. SUBSCRIPTION_LEVEL_COMMENTS).all() user = meta.session.query(User).filter_by(id=session['user_id']).one() if len(subscribers) > 0: email = Email('comment_posted') email.send([s.user.email for s in subscribers], package=packagename, comment=self.form_result['text'], user=user) version = package = meta.session.query(PackageVersion).filter_by( id=self.form_result['package_version']).first() data = version.publish_data data['author_email'] = user.email data['author_name'] = user.name data['content'] = comment.text data['outcome'] = comment.outcome publish(topic="package.comment", msg=data) redirect(url('package', packagename=packagename))
def _comment_submit(self, packagename): """ Comment submission. ``packagename`` Package name to look at. """ log.debug("Comment form validation successful") if 'user_id' not in session: log.debug('Requires authentication') session['path_before_login'] = request.path_info session.save() redirect(url('login')) package = self._get_package(packagename) status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED if self.form_result['status']: status = constants.PACKAGE_COMMENT_STATUS_UPLOADED comment = PackageComment(user_id=session['user_id'], package_version_id=self.form_result['package_version'], text=self.form_result['text'], time=datetime.now(), outcome=self.form_result['outcome'], status=status) meta.session.add(comment) meta.session.commit() subscribers = meta.session.query(PackageSubscription).filter_by( package=packagename).filter( PackageSubscription.level <= constants.SUBSCRIPTION_LEVEL_COMMENTS).all() user = meta.session.query(User).filter_by(id=session['user_id']).one() if len(subscribers) > 0: email = Email('comment_posted') email.send([s.user.email for s in subscribers], package=packagename, comment=self.form_result['text'], user=user) version = package = meta.session.query(PackageVersion).filter_by(id=self.form_result['package_version']).first() data = version.publish_data data['author_email'] = user.email data['author_name'] = user.name data['content'] = comment.text data['outcome'] = comment.outcome publish(topic="package.comment", msg=data) redirect(url('package', packagename=packagename))
def _comment_submit(self, packagename): """ Comment submission. ``packagename`` Package name to look at. """ log.debug("Comment form validation successful") if "user_id" not in session: log.debug("Requires authentication") session["path_before_login"] = request.path_info session.save() redirect(url("login")) package = self._get_package(packagename) status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED if self.form_result["status"]: status = constants.PACKAGE_COMMENT_STATUS_UPLOADED comment = PackageComment( user_id=session["user_id"], package_version_id=self.form_result["package_version"], text=self.form_result["text"], time=datetime.now(), outcome=self.form_result["outcome"], status=status, ) meta.session.add(comment) meta.session.commit() subscribers = ( meta.session.query(PackageSubscription) .filter_by(package=packagename) .filter(PackageSubscription.level <= constants.SUBSCRIPTION_LEVEL_COMMENTS) .all() ) if len(subscribers) > 0: user = meta.session.query(User).filter_by(id=session["user_id"]).one() email = Email("comment_posted") email.send( [s.user.email for s in subscribers], package=packagename, comment=self.form_result["text"], user=user ) redirect(url("package", packagename=packagename))
def _send_activate_email(self, key, recipient): """ Sends an activation email to the potential new user. ``key`` Activation key that's already stored in the database. ``recipient`` Email address to send to. """ log.debug('Sending activation email') email = Email('register_activate') url = 'http://' + request.host + h.url_for(action='activate', id=key) email.send([recipient], activate_url=url)
def _send_activate_email(self, key, recipient): """ Sends an activation email to the potential new user. ``key`` Activation key that's already stored in the database. ``recipient`` Email address to send to. """ log.debug('Sending activation email') email = Email('register_activate') activate_url = 'http://' + config['debexpo.sitename'] + url.current(action='activate', id=key) email.send([recipient], activate_url=activate_url)
def test_send_mail(self): """ Send mail to changes list. """ log.debug('Sending mail to changes list') if not pylons.config.get('debexpo.changes_list', None): return if pylons.config['debexpo.changes_list'] == '': return email = Email('changes_list') to = pylons.config['debexpo.changes_list'] email.send([to], changes=self.changes, changes_contents=self.changes_contents.decode('ascii', 'ignore'), dest=self.changes.get_pool_path())
def test_send_mail(self): """ Send mail to changes list. """ log.debug('Sending mail to changes list') if not config.get('debexpo.changes_list', None): return if config['debexpo.changes_list'] == '': return email = Email('changes_list') to = config['debexpo.changes_list'] email.send([to], changes=self.changes, changes_contents=self.changes_contents.decode('ascii', 'ignore'), dest=self.changes.get_pool_path())
def comment(self, packagename): """ Comment submission. ``packagename`` Package name to look at. """ package = self._get_package(packagename) if not isinstance(package, Package): return package status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED if "status" in request.POST and request.POST["status"]: status = constants.PACKAGE_COMMENT_STATUS_UPLOADED comment = PackageComment( user_id=session["user_id"], package_version_id=request.POST["package_version"], text=request.POST["text"], time=datetime.now(), outcome=request.POST["outcome"], status=status, ) meta.session.save(comment) meta.session.commit() subscribers = ( meta.session.query(PackageSubscription) .filter_by(package=packagename) .filter(PackageSubscription.level <= constants.SUBSCRIPTION_LEVEL_COMMENTS) .all() ) if len(subscribers) > 0: user = meta.session.query(User).filter_by(id=session["user_id"]).one() email = Email("comment_posted") email.send( [s.user.email for s in subscribers], package=packagename, comment=request.POST["text"], user=user ) return h.rails.redirect_to("package", packagename=packagename)
def comment(self, packagename): """ Comment submission. ``packagename`` Package name to look at. """ package = self._get_package(packagename) if not isinstance(package, Package): return package status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED if 'status' in request.POST and request.POST['status']: status = constants.PACKAGE_COMMENT_STATUS_UPLOADED comment = PackageComment( user_id=session['user_id'], package_version_id=request.POST['package_version'], text=request.POST['text'], time=datetime.now(), outcome=request.POST['outcome'], status=status) meta.session.save(comment) meta.session.commit() subscribers = meta.session.query(PackageSubscription).filter_by(package=packagename).filter(\ PackageSubscription.level <= constants.SUBSCRIPTION_LEVEL_COMMENTS).all() if len(subscribers) > 0: user = meta.session.query(User).filter_by( id=session['user_id']).one() email = Email('comment_posted') email.send([s.user.email for s in subscribers], package=packagename, comment=request.POST['text'], user=user) return h.rails.redirect_to('package', packagename=packagename)