Пример #1
0
def test_str_generator():
    """Method to test str_generator."""

    generated_string = str_generator()
    assert len(generated_string) == 6
    assert re.match(r'^[A-Z0-9]+$', generated_string) is not None
    assert re.match(r'^[a-z]+$', generated_string) is None

    generated_string = str_generator(8, chars=string.ascii_lowercase)
    assert len(generated_string) == 8
    assert re.match(r'^[A-Z0-9]+$', generated_string) is None
    assert re.match(r'^[a-z]+$', generated_string) is not None

    generated_string = str_generator(chars='ABC253')
    assert re.match(r'^[ABC253]+$', generated_string) is not None
Пример #2
0
    def test_str_generator(self):
        """Method to test str_generator."""

        generated_string = str_generator()
        self.assertEqual(len(generated_string), 6)
        self.assertRegex(generated_string, r'^[A-Z0-9]+$')
        self.assertNotRegex(generated_string, r'^[a-z]+$')

        generated_string = str_generator(8, chars=string.ascii_lowercase)
        self.assertEqual(len(generated_string), 8)
        self.assertRegex(generated_string, r'^[a-z]+$')
        self.assertNotRegex(generated_string, r'^[A-Z0-9]+$')

        generated_string = str_generator(chars='ABC253')
        self.assertRegex(generated_string, r'^[ABC253]+$')
Пример #3
0
def resend_verification_email():
    try:
        email = request.json['data']['email']
    except TypeError:
        logging.error('Bad Request')
        raise BadRequestError({'source': ''}, 'Bad Request Error')

    try:
        user = User.query.filter_by(email=email).one()
    except NoResultFound:
        logging.info('User with email: ' + email + ' not found.')
        raise UnprocessableEntityError(
            {'source': ''}, 'User with email: ' + email + ' not found.'
        )
    else:
        serializer = get_serializer()
        hash_ = str(
            base64.b64encode(
                str(serializer.dumps([user.email, str_generator()])).encode()
            ),
            'utf-8',
        )
        link = make_frontend_url('/verify', {'token': hash_})
        send_email_confirmation(user.email, link)
        logging.info('Verification email resent')
        return make_response(jsonify(message="Verification email resent"), 200)
Пример #4
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = str(
            base64.b64encode(
                str(s.dumps([user.email, str_generator()])).encode()), 'utf-8')
        link = make_frontend_url('/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user,
                               USER_REGISTER_WITH_PASSWORD,
                               app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            try:
                uploaded_images = create_save_image_sizes(
                    data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'},
                    'Invalid Image URL')
            uploaded_images['small_image_url'] = uploaded_images[
                'thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(
                id=user.id).update(uploaded_images)
Пример #5
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = str(base64.b64encode(str(s.dumps([user.email, str_generator()])).encode()), 'utf-8')
        link = make_frontend_url('/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user, USER_REGISTER_WITH_PASSWORD, app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            try:
                uploaded_images = create_save_image_sizes(data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'}, 'Invalid Image URL'
                )
            uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(id=user.id).update(uploaded_images)
    def test_str_generator(self):
        """Method to test str_generator."""

        with app.test_request_context():
            generated_string = str_generator()
            self.assertEqual(len(generated_string), 6)
            self.assertRegex(generated_string, r'^[A-Z0-9]+$')
            self.assertNotRegex(generated_string, r'^[a-z]+$')

            generated_string = str_generator(8, chars=string.ascii_lowercase)
            self.assertEqual(len(generated_string), 8)
            self.assertRegex(generated_string, r'^[a-z]+$')
            self.assertNotRegex(generated_string, r'^[A-Z0-9]+$')

            generated_string = str_generator(chars='ABC253')
            self.assertRegex(generated_string, r'^[ABC253]+$')
Пример #7
0
def send_email_change_user_email(user, email):
    serializer = get_serializer()
    hash_ = str(
        base64.b64encode(bytes(serializer.dumps([email, str_generator()]), 'utf-8')),
        'utf-8',
    )
    link = make_frontend_url('/email/verify', {'token': hash_})
    send_email_with_action(user.email, USER_CONFIRM, email=user.email, link=link)
    send_email_with_action(email, USER_CHANGE_EMAIL, email=email, new_email=user.email)
Пример #8
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """

        if user.was_registered_with_order:
            link = make_frontend_url('/reset-password',
                                     {'token': user.reset_password})
            send_email_with_action(
                user,
                PASSWORD_RESET_AND_VERIFY,
                app_name=get_settings()['app_name'],
                email=user.email,
                link=link,
            )
        else:
            s = get_serializer()
            hash = str(
                base64.b64encode(
                    str(s.dumps([user.email, str_generator()])).encode()),
                'utf-8',
            )
            link = make_frontend_url('/verify'.format(id=user.id),
                                     {'token': hash})
            send_email_with_action(
                user,
                USER_REGISTER_WITH_PASSWORD,
                app_name=get_settings()['app_name'],
                email=user.email,
            )
            send_email_confirmation(user.email, link)
        # TODO Handle in a celery task
        # if data.get('original_image_url'):
        #     try:
        #         uploaded_images = create_save_image_sizes(data['original_image_url'], 'speaker-image', user.id)
        #     except (urllib.error.HTTPError, urllib.error.URLError):
        #         raise UnprocessableEntityError(
        #             {'source': 'attributes/original-image-url'}, 'Invalid Image URL'
        #         )
        #     uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
        #     del uploaded_images['large_image_url']
        #     self.session.query(User).filter_by(id=user.id).update(uploaded_images)

        if data.get('avatar_url'):
            start_image_resizing_tasks(user, data['avatar_url'])
Пример #9
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """

        s = get_serializer()
        hash = str(
            base64.b64encode(
                str(s.dumps([user.email, str_generator()])).encode()),
            'utf-8',
        )
        link = make_frontend_url('/verify', {'token': hash})
        settings = get_settings()
        send_email(
            to=user.email,
            action=USER_REGISTER,
            subject=MAILS[USER_REGISTER]['subject'].format(
                app_name=settings['app_name']),
            html=render_template(
                'email/user_register.html',
                email=user.email,
                link=link,
                settings=get_settings(),
            ),
        )
        # TODO Handle in a celery task
        # if data.get('original_image_url'):
        #     try:
        #         uploaded_images = create_save_image_sizes(data['original_image_url'], 'speaker-image', user.id)
        #     except (urllib.error.HTTPError, urllib.error.URLError):
        #         raise UnprocessableEntityError(
        #             {'source': 'attributes/original-image-url'}, 'Invalid Image URL'
        #         )
        #     uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
        #     del uploaded_images['large_image_url']
        #     self.session.query(User).filter_by(id=user.id).update(uploaded_images)

        if data.get('avatar_url'):
            start_image_resizing_tasks(user, data['avatar_url'])
Пример #10
0
def send_user_register_email(user):
    s = get_serializer()
    hash = str(
        base64.b64encode(str(s.dumps([user.email, str_generator()])).encode()),
        'utf-8',
    )
    link = make_frontend_url('/verify', {'token': hash})
    settings = get_settings()
    action = MailType.USER_REGISTER
    mail = MAILS[action]
    send_email(
        to=user.email,
        action=action,
        subject=mail['subject'].format(app_name=settings['app_name']),
        html=render_template(
            mail['template'],
            email=user.email,
            link=link,
            settings=get_settings(),
        ),
    )
Пример #11
0
def send_email_change_user_email(user, email):
    serializer = get_serializer()
    hash_ = str(
        base64.b64encode(
            bytes(serializer.dumps([email, str_generator()]), 'utf-8')),
        'utf-8',
    )
    app_name = get_settings()['app_name']
    link = make_frontend_url('/email/verify', {'token': hash_})
    send_email_with_action(user.email,
                           MailType.USER_CONFIRM,
                           'user_confirm',
                           email=user.email,
                           link=link,
                           app_name=app_name)
    send_email_with_action(
        email,
        MailType.USER_CHANGE_EMAIL,
        'user_change_email',
        email=email,
        new_email=user.email,
    )
Пример #12
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = base64.b64encode(s.dumps([user.email, str_generator()]))
        link = make_frontend_url('/email/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user, USER_REGISTER_WITH_PASSWORD, app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            uploaded_images = create_save_image_sizes(data['original_image_url'], 'user', user.id)
            uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(id=user.id).update(uploaded_images)
Пример #13
0
def send_email_change_user_email(user, email):
    serializer = get_serializer()
    hash_ = str(base64.b64encode(bytes(serializer.dumps([email, str_generator()]), 'utf-8')), 'utf-8')
    link = make_frontend_url('/email/verify'.format(id=user.id), {'token': hash_})
    send_email_with_action(user.email, USER_CONFIRM, email=user.email, link=link)
    send_email_with_action(email, USER_CHANGE_EMAIL, email=email, new_email=user.email)
def send_email_change_user_email(user, email):
    s = get_serializer()
    hash = base64.b64encode(s.dumps([email, str_generator()]))
    link = make_frontend_url('/email/verify'.format(id=user.id), {'token': hash})
    send_email_with_action(user.email, USER_CONFIRM, email=user.email, link=link)
    send_email_with_action(email, USER_CHANGE_EMAIL, email=email, new_email=user.email)