def send_invitation_email_to_reviewer(self): """ Send an invitation to review email including a link. Clicking the link log the user in and redirect to the review survey page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse token_accept = urlcrypt.generate_login_token( self.user, reverse('post_review_waiver', args=[self.id])) token_refuse = urlcrypt.generate_login_token( self.user, reverse('post_review_waiver_refuse', args=[self.id])) url_accept = reverse('urlcrypt_redirect', args=(token_accept, )) url_refuse = reverse('urlcrypt_redirect', args=(token_refuse, )) site = Site.objects.get(id=1) #Set the email template variables c = { 'username': self.user.username, 'reviewer_full_name': self.user.get_full_name(), 'project': self.project.name, 'author': self.project.user.get_full_name(), 'abstract': self.project.abstract, 'keywords': self.project.keywords, 'url_accept': str(str(site.domain) + str(url_accept)), 'url_refuse': str(str(site.domain) + str(url_refuse)) } #Send the Mandrill email template send_mandrill_email(self, self.project.rfp.email_template_review_invitation, c)
def test(request): from django.template.loader import render_to_string from django.core.mail import send_mail context = RequestContext(request) user = request.user from urlcrypt import lib as urlcrypt token = urlcrypt.generate_login_token(user, reverse("user_profile")) encoded_url = reverse("urlcrypt_redirect", args=(token,)) c = {"user": user, "url": encoded_url} msg_plain = render_to_string("rfp/email/invitation_link.txt", c) msg_html = render_to_string("rfp/email/invitation_link.html", c) send_mail( "Your project has been succesfully submitted", msg_plain, "*****@*****.**", ["*****@*****.**"], html_message=msg_html, fail_silently=False, ) print("Email Sent ?") context_dict = {"user": user, "url": encoded_url} return render_to_response("rfp/test.html", context_dict, context)
def send_follow_up_invitation_email_to_reviewer(self): """ Send the follow up email to reviewer including a link. Clicking the link log the user in and redirect to the project details page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse project = Project.objects.get(id=self.project.id) token_accept = urlcrypt.generate_login_token( self.user, reverse('project_detail', args=[project.pk])) url_to_project = reverse('urlcrypt_redirect', args=(token_accept, )) site = Site.objects.get(id=1) #Set the email template variables c = { 'username': self.user.username, 'reviewer_full_name': self.user.first_name + str(" ") + self.user.last_name, 'project': self.project.name, 'author': self.project.user.first_name + str(' ') + self.project.user.last_name, 'abstract': self.project.abstract, 'keywords': self.project.keywords, 'url_to_project': str(str(site.domain) + str(url_to_project)) } #Send the Madrill email template send_mandrill_email(self, self.project.rfp.email_template_review_follow_up, c)
def encode_url_string(user, url): if RUNNING_TESTS: domain = 'testserver' else: domain = Site.objects.get_current().domain protocol, suffix = url.split("://%s" % domain) token = generate_login_token(user, suffix) return "%s://%s" % (protocol, reverse('urlcrypt_redirect', args=(token,)))
def encode_url_string(user, url): if RUNNING_TESTS: domain = 'testserver' else: domain = Site.objects.get_current().domain protocol, suffix = url.split("://%s" % domain) token = generate_login_token(user, suffix) return "%s://%s" % (protocol, reverse('urlcrypt_redirect', args=(token, )))
def test_rate_limiting(self): for i in xrange(100): token = generate_login_token(self.test_user, u'/users/following') response = self.client.get(reverse('urlcrypt_redirect', args=(token,))) if 0 <= i <= URLCRYPT_RATE_LIMIT: self.assertEqual(response.status_code, 302) else: self.assertEqual(response.status_code, 403) self.assertEqual(response.content, "Rate Limit Exceeded")
def render(self, context): url = super(EncodedURLNode, self).render(context) if self.asvar: url = context[self.asvar] user = self.user.resolve(context) token = generate_login_token(user, url) crypt_url = reverse('urlcrypt_redirect', args=(token,)) if self.asvar: context[self.asvar] = crypt_url return '' return crypt_url
def render(self, context): url = super(EncodedURLNode, self).render(context) if self.asvar: url = context[self.asvar] user = self.user.resolve(context) token = generate_login_token(user, url) crypt_url = reverse('urlcrypt_redirect', args=(token, )) if self.asvar: context[self.asvar] = crypt_url return '' return crypt_url
def send_invitation_email_to_reviewer(self): """ Send an invitation to review email including a link. Clicking the link log the user in and redirect to the review survey page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse token_accept = urlcrypt.generate_login_token(self.user, reverse('post_review_waiver', args=[self.id])) token_refuse = urlcrypt.generate_login_token(self.user, reverse('post_review_waiver_refuse', args = [self.id])) url_accept = reverse('urlcrypt_redirect', args=(token_accept,)) url_refuse = reverse('urlcrypt_redirect', args = (token_refuse,)) site = Site.objects.get(id=1) #Set the email template variables c = {'username':self.user.username, 'reviewer_full_name' : self.user.get_full_name(), 'project' : self.project.name, 'author' : self.project.user.get_full_name(), 'abstract' : self.project.abstract, 'keywords':self.project.keywords, 'url_accept' : str(str(site.domain)+str(url_accept)),'url_refuse' : str(str(site.domain)+str(url_refuse))} #Send the Mandrill email template send_mandrill_email(self, self.project.rfp.email_template_review_invitation, c)
def send_results_email(self): """ Send the project result email to PI including a link. Clicking the link log the user in and redirect to the project details page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse project = Project.objects.get(id = self.id) token_accept = urlcrypt.generate_login_token(self.user, reverse('project_detail', args = [project.pk])) url_to_project = reverse('urlcrypt_redirect', args=(token_accept,)) site = Site.objects.get(id=1) #Set the email template variables c = {'full_name' : self.user.first_name + str(" ") + self.user.last_name, 'project' : self.name, 'rfp_name' : self.rfp.name, 'url_to_project' : str(str(site.domain)+str(url_to_project))} #Send the Madrill email template send_mandrill_email(self, self.rfp.email_template_rfp_closed, c)
def send_follow_up_invitation_email_to_reviewer(self): """ Send the follow up email to reviewer including a link. Clicking the link log the user in and redirect to the project details page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse project = Project.objects.get(id = self.project.id) token_accept = urlcrypt.generate_login_token(self.user, reverse('project_detail', args = [project.pk])) url_to_project = reverse('urlcrypt_redirect', args=(token_accept,)) site = Site.objects.get(id=1) #Set the email template variables c = {'username':self.user.username,'reviewer_full_name' : self.user.first_name + str(" ") + self.user.last_name, 'project' : self.project.name, 'author' : self.project.user.first_name + str(' ') + self.project.user.last_name, 'abstract' : self.project.abstract, 'keywords':self.project.keywords, 'url_to_project' : str(str(site.domain)+str(url_to_project))} #Send the Madrill email template send_mandrill_email(self,self.project.rfp.email_template_review_follow_up,c)
def test (request): from django.template.loader import render_to_string from django.core.mail import send_mail context= RequestContext(request) user = request.user from urlcrypt import lib as urlcrypt token = urlcrypt.generate_login_token(user, reverse('user_profile')) encoded_url = reverse('urlcrypt_redirect', args=(token,)) c = {'user' : user, 'url' : encoded_url} msg_plain = render_to_string('rfp/email/invitation_link.txt',c) msg_html = render_to_string('rfp/email/invitation_link.html',c) send_mail('Your project has been succesfully submitted', msg_plain, '*****@*****.**', ['*****@*****.**'], html_message=msg_html, fail_silently=False) print('Email Sent ?') context_dict = {'user' : user, 'url' : encoded_url} return render_to_response('rfp/test.html',context_dict,context)
def send_results_email(self): """ Send the project result email to PI including a link. Clicking the link log the user in and redirect to the project details page. """ #Create the link with credentials from urlcrypt import lib as urlcrypt from django.core.urlresolvers import reverse project = Project.objects.get(id=self.id) token_accept = urlcrypt.generate_login_token( self.user, reverse('project_detail', args=[project.pk])) url_to_project = reverse('urlcrypt_redirect', args=(token_accept, )) site = Site.objects.get(id=1) #Set the email template variables c = { 'full_name': self.user.first_name + str(" ") + self.user.last_name, 'project': self.name, 'rfp_name': self.rfp.name, 'url_to_project': str(str(site.domain) + str(url_to_project)) } #Send the Madrill email template send_mandrill_email(self, self.rfp.email_template_rfp_closed, c)
def test_login_token(self): token = generate_login_token(self.test_user, u'/users/following') data = decode_login_token(token) self.assertEquals(data['user_id'], self.test_user.id) self.assertEquals(data['url'], u'/users/following')
def encode_url_string(user, url): """ Encodes URL passed in directly as string (no url reversal). """ token = generate_login_token(user, url) return reverse('urlcrypt_redirect', args=(token,))