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)
Beispiel #2
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)
Beispiel #3
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)
Beispiel #4
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)
Beispiel #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:
        """

        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'])
Beispiel #6
0
def verify_email():
    token = base64.b64decode(request.json['data']['token'])
    s = get_serializer()

    try:
        data = s.loads(token)
    except Exception:
        return BadRequestError({'source': ''}, 'Invalid Token').respond()

    try:
        user = User.query.filter_by(email=data[0]).one()
    except Exception:
        return BadRequestError({'source': ''}, 'Invalid Token').respond()
    else:
        user.is_verified = True
        save_to_db(user)
        return make_response(jsonify(message="Email Verified"), 200)
Beispiel #7
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'])
Beispiel #8
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(),
        ),
    )
Beispiel #9
0
def verify_email():
    token = base64.b64decode(request.json['data']['token'])
    s = get_serializer()

    try:
        data = s.loads(token)
    except Exception:
        return abort(
            make_response(jsonify(error="Invalid Token"), 400)
        )

    try:
        user = User.query.filter_by(email=data[0]).one()
    except Exception:
        return abort(
            make_response(jsonify(error="Invalid Token"), 400)
        )
    else:
        user.is_verified = True
        save_to_db(user)
        return make_response(jsonify(message="Email Verified"), 200)
Beispiel #10
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,
    )
Beispiel #11
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)
Beispiel #12
0
 def rocket_chat_password(self):
     return get_serializer().dumps(f'rocket_chat_user_{self.id}')
Beispiel #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)