def get_password_reset_email(
        user,
        reset_url,
        subject_template_name='registration/password_reset_subject.txt',  # noqa
        email_template_name='api_password_reset_email.html',  # noqa
        token_generator=default_token_generator,
        email_subject=None):
    """Creates the subject and email body for password reset email."""
    result = urlparse(reset_url)
    site_name = domain = result.hostname
    encoded_username = urlsafe_base64_encode(b(user.username.encode('utf-8')))
    c = {
        'email': user.email,
        'domain': domain,
        'path': result.path,
        'site_name': site_name,
        'uid': urlsafe_base64_encode(force_bytes(user.pk)),
        'username': user.username,
        'encoded_username': encoded_username,
        'token': token_generator.make_token(user),
        'protocol': result.scheme if result.scheme != '' else 'http',
    }
    # if subject email provided don't load the subject template
    subject = email_subject or loader.render_to_string(subject_template_name,
                                                       c)
    # Email subject *must not* contain newlines
    subject = ''.join(subject.splitlines())
    email = loader.render_to_string(email_template_name, c)

    return subject, email
예제 #2
0
def get_password_reset_email(user, reset_url,
                             subject_template_name='registration/password_reset_subject.txt',  # noqa
                             email_template_name='api_password_reset_email.html',  # noqa
                             token_generator=default_token_generator,
                             email_subject=None):
    """Creates the subject and email body for password reset email."""
    result = urlparse(reset_url)
    site_name = domain = result.hostname
    encoded_username = urlsafe_base64_encode(
        b(user.username.encode('utf-8')))
    c = {
        'email': user.email,
        'domain': domain,
        'path': result.path,
        'site_name': site_name,
        'uid': urlsafe_base64_encode(force_bytes(user.pk)),
        'username': user.username,
        'encoded_username': encoded_username,
        'token': token_generator.make_token(user),
        'protocol': result.scheme if result.scheme != '' else 'http',
    }
    # if subject email provided don't load the subject template
    subject = email_subject or loader.render_to_string(subject_template_name,
                                                       c)
    # Email subject *must not* contain newlines
    subject = ''.join(subject.splitlines())
    email = loader.render_to_string(email_template_name, c)

    return subject, email
예제 #3
0
파일: xform.py 프로젝트: jdugh/onadata
 def get_survey(self):
     if not hasattr(self, "_survey"):
         try:
             builder = SurveyElementBuilder()
             self._survey = \
                 builder.create_survey_element_from_json(self.json)
         except ValueError:
             xml = b(bytearray(self.xml, encoding='utf-8'))
             self._survey = create_survey_element_from_xml(xml)
     return self._survey
예제 #4
0
파일: xform.py 프로젝트: onaio/onadata
 def get_survey(self):
     if not hasattr(self, "_survey"):
         try:
             builder = SurveyElementBuilder()
             self._survey = \
                 builder.create_survey_element_from_json(self.json)
         except ValueError:
             xml = b(bytearray(self.xml, encoding='utf-8'))
             self._survey = create_survey_element_from_xml(xml)
     return self._survey