コード例 #1
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #2
0
ファイル: views.py プロジェクト: unistra/rfpportal-frcsxb
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)
コード例 #3
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #4
0
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,)))
コード例 #5
0
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, )))
コード例 #6
0
ファイル: tests.py プロジェクト: justquick/django-urlcrypt
 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")
コード例 #7
0
 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
コード例 #8
0
 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
コード例 #9
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #10
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #11
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #12
0
ファイル: views.py プロジェクト: unistra/rfpportal-frcsxb
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)
コード例 #13
0
ファイル: models.py プロジェクト: unistra/rfpportal-frcsxb
    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)
コード例 #14
0
ファイル: tests.py プロジェクト: unistra/rfpportal-frcsxb
 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')
コード例 #15
0
ファイル: tests.py プロジェクト: justquick/django-urlcrypt
 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')
コード例 #16
0
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,))