Пример #1
0
    def post(self):
        url = request.host_url + 'reset/'
        try:
            body = request.get_json()
            email = body.get('email')
            if not email:
                raise SchemaValidationError

            user = User.objects.get(email=email)
            if not user:
                raise EmailDoesnotExistsError

            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(str(user.id),
                                              expires_delta=expires)

            send_email('[Movie-bag] Reset Your Password',
                       sender='*****@*****.**',
                       recipients=[user.email],
                       text_body=render_template('email/reset_password.txt',
                                                 url=url + reset_token),
                       html_body=render_template('email/reset_password.html',
                                                 url=url + reset_token))

            return {'Send Link Reset': str(email)}, 200

        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesnotExistsError:
            raise EmailDoesnotExistsError
        except Exception as e:
            raise InternalServerError
Пример #2
0
    def reset_password(self, data):

        try:

            reset_token = data.get('reset_token')
            password = data.get('password')

            if not reset_token or not password:
                raise auth_error.SchemaValidationError

            user_id = decode_token(reset_token)['identity']
            user = operation.updateUserPassword(user_id, password)

            html = render_template('email/successful_reset.html')
            plain = render_template('email/successful_reset.txt')

            message = MIMEMultipart('alternative')
            message.attach(MIMEText(plain, 'plain'))
            message.attach(MIMEText(html, 'html'))

            send_email(user.Email, message, 'Şifrenizi Başarıyla sıfırlandı')

        # except SchemaValidationError:
        #     raise SchemaValidationError
        except ExpiredSignatureError:
            raise auth_error.ExpiredTokenError

        except (DecodeError, InvalidTokenError):
            raise auth_error.BadTokenError

        except Exception as e:
            raise auth_error.InternalServerError
    def post(self):
        url = request.host_url + 'reset/'
        try:
            body = request.get_json()
            reset_token = body.get('reset_token')
            password = body.get('password')

            if not reset_token or not password:
                raise SchemaValidationError

            user_id = decode_token(reset_token)['identity']

            user = User.objects.get(id=user_id)

            user.modify(password=password)
            user.hash_password()
            user.save()

            return send_email('[Movie-bag] Password reset successful',
                              sender='*****@*****.**',
                              recipients=[user.email],
                              text_body='Password reset was successful',
                              html_body='<p>Password reset was successful</p>')

        except SchemaValidationError:
            raise SchemaValidationError
        except ExpiredSignatureError:
            raise ExpiredTokenError
        except (DecodeError, InvalidTokenError):
            raise BadTokenError
        except Exception as e:
            raise InternalServerError
Пример #4
0
 def post(self):
     url = request.host_url + 'verify/'
     try:
         body = request.get_json()
         user = User(**body)
         user.hash_password()
         user.save()
         id = user.id
         #return {'id': str(id)}, 200
         expires = datetime.timedelta(hours=24)
         access_token = create_access_token(str(id), expires_delta=expires)
         return send_email(
             'Login verification',
             sender='*****@*****.**',
             recipients=[user.email],
             text_body=render_template('auth/login_email.txt',
                                       url=url + access_token),
             html_body=render_template('auth/login_email.html',
                                       url=url + access_token))
     except FieldDoesNotExist:
         raise SchemaValidationError
     except NotUniqueError:
         raise EmailAlreadyExistsError
     except Exception as e:
         raise InternalServerError
    def post(self):
        url = request.host_url + "reset/"
        try:
            body = request.get_json()
            reset_token = body.get("reset_token")
            password = body.get("password")

            if not reset_token or not password:
                raise SchemaValidationError

            user_id = decode_token(reset_token)["identity"]

            user = User.objects.get(id=user_id)

            user.modify(password=password)
            user.hash_password()
            user.save()

            return send_email(
                "[Movie-bag] Password reset successful",
                sender="*****@*****.**",
                recipients=[user.email],
                text_body="Password reset was successful",
                html_body="<p>Password reset was successful</p>",
            )

        except SchemaValidationError:
            raise SchemaValidationError
        except ExpiredSignatureError:
            raise ExpiredTokenError
        except (DecodeError, InvalidTokenError):
            raise BadTokenError
        except Exception:
            raise InternalServerError
    def post(self):
        url = request.host_url + "reset/"
        try:
            body = request.get_json()
            email = body.get("email")
            if not email:
                raise SchemaValidationError

            user = User.objects.get(email=email)
            if not user:
                raise EmailDoesnotExistsError

            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(str(user.id),
                                              expires_delta=expires)

            return send_email(
                "[Movie-bag] Reset Your Password",
                sender="*****@*****.**",
                recipients=[user.email],
                text_body=render_template("email/reset_password.txt",
                                          url=url + reset_token),
                html_body=render_template("email/reset_password.html",
                                          url=url + reset_token),
            )
        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesnotExistsError:
            raise EmailDoesnotExistsError
        except Exception:
            raise InternalServerError
Пример #7
0
    def post(self):
        url = request.host_url + 'reset_password/'
        try:
            body = request.get_json()
            reset_token = body.get('reset_token')
            password = body.get('password')

            if not reset_token or not password:
                raise SchemaValidationError

            user_email = decode_token(reset_token)['identity']

            users = mongo.db.users
            hashed_password = hash_password(body['password'])
            output = users.update({'email': user_email}, {"$set": {'password': hashed_password}})
            return send_email('[Proposal-Management] Password reset successful',
                              sender='*****@*****.**',
                              recipients=[user_email],
                              text_body='Password reset was successful',
                              html_body='<p>Password reset was successful</p>')

        except SchemaValidationError:
            raise SchemaValidationError
        except ExpiredSignatureError:
            raise ExpiredTokenError
        except (DecodeError, InvalidTokenError):
            raise BadTokenError
Пример #8
0
    def post(self):
        url = request.host_url + 'reset_password/'
        try:
            body = request.get_json()
            email = body.get('email')
            if not email:
                raise SchemaValidationError
            users = mongo.db.users
            user_found = users.find_one({'email': email})
            if not user_found:
                raise EmailDoesNotExistsError

            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(email, expires_delta=expires)

            return send_email(
                subject='[Proposal-Management] Reset Your Password',
                sender='*****@*****.**',
                recipients=[email],
                text_body=render_template('email/reset_password.txt', url=url + reset_token),
                html_body=render_template('email/reset_password.html', url=url + reset_token)
            )
        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesNotExistsError:
            raise EmailDoesNotExistsError
Пример #9
0
    def pot(self):
        url = request.host_url + 'reset/'
        try:
            body.request.get_json()
            email = body.get('email')
            if not email:
                raise SchemaValidationError
            user = User.objects.get(email=email)
            if not user:
                raise EmailDoesnotExistsError

            expires = datetime.timedelta(minutes=30)
            reset_token = create_access_token(str(user.id), expires_delta=expires)

            return send_email('[ettranslate] Reset Your Password',
            sender = '*****@*****.**',
            recipients = [user.email],
            text_body=render_template('email/reset_password.txt',
            url=url + reset_token),
            html_body = render_template('email/reset_password.html'),
            url=url+reset_token)

        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesnotExistsError:
            raise EmailDoesnotExistsError
        except Exception as e:
            raise InternalServerError
Пример #10
0
    def post(self):
        url = request.host_url + 'reset/'

        try:
            body = request.get_json()
            email = body.get('email')
            if not email:
                raise SchemaValidationError
            
            user = User.objects.get(email=email)
            if not user:
                raise EmailDoesnotExistsError
            
            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(str(user.id), expires_delta=expires)
            
            return  send_email(
                '[ToDoer] Reset Your Password',
                sender='*****@*****.**',
                recipients=[user.email],
                text_body=render_template(
                    'email/reset_password.txt',
                    url=url+reset_token
                ),
                html_body=render_template('email/reset_password.html', url=url+reset_token)
            )
        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesnotExistsError:
            raise EmailDoesnotExistsError
        except Exception as e:
            raise InternalServerError
Пример #11
0
    def post(self):
        url = 'http://127.0.0.1:3000/reset/'
        try:
            body = request.get_json()
            email = body.get('email')
            if not email:
                raise SchemaValidationError
            try:
                user = User.objects.get(email=email)
            except:
                user = None

            if not user:
                raise EmailDoesNotExistsError

            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(str(user.id), expires_delta=expires)

            return send_email('[Demo] Reset Your Password',
                              sender='*****@*****.**',
                              recipients=[user.email],
                              text_body=render_template('email/reset_password.txt',
                                                        url=url + reset_token),
                              html_body=render_template('email/reset_password.html',
                                                        url=url + reset_token))
        except SchemaValidationError:
            raise SchemaValidationError
        except EmailDoesNotExistsError:
            raise EmailDoesNotExistsError
        except Exception as e:
            raise InternalServerError
Пример #12
0
    def forget_password(self, data, url):

        try:
            email = data.get('Email')
            user = operation.getUserFromEmail(email)

            if not user:
                raise auth_error.EmailDoesnotExists

            expires = datetime.timedelta(hours=24)
            reset_token = create_access_token(str(user.UserID), expires_delta=expires)

            html = render_template('email/reset_password.html', url=url + reset_token)
            plain = render_template('email/reset_password.txt', url=url + reset_token)

            message = MIMEMultipart('alternative')
            message.attach(MIMEText(plain, 'plain'))
            message.attach(MIMEText(html, 'html'))
            send_email(email, message, 'Şifrenizi Sıfırlayın')
            return '', 200

        except auth_error.EmailDoesnotExists as e:
            raise auth_error.EmailDoesnotExists
Пример #13
0
 def send_mail(self):
     send_email('Volunteer Signup: ' + self.name + ' -- ' + self.subject,
                sender=app.config.get('MAIL_USERNAME'),
                recipients=[self.email],
                txt_body=render_template('email/volunteer_signup.txt',
                                          message=self))
Пример #14
0
 def send_mail(self):
     send_email('PROGRAM QUESTION: ' + self.name + ' -- ' + self.subject,
                sender=app.config.get('MAIL_USERNAME'),
                recipients=[self.email],
                txt_body=render_template('email/send_message.txt',
                                          message=self))
Пример #15
0
 def send_email(self, subject, sender, template, **kwargs):
     send_email(subject, sender, [self.email], template, **kwargs)
     self.last_email_sent = datetime.now(timezone.utc)