Beispiel #1
0
 def post(self):
     """ Resource that signs in a user """
     args = user_parser.parse_args()
     email = args['email']
     username = args['username']
     password = args['password']
     if re.match(r"[^@]+@[^@]+\.[^@]+", email) and len(password) > 6:
         user = User.get_by_email(email)
         if user and user.check_password(password):
             token = user.encode_auth_token(user.id)
             result = {
                 'message': 'User has signed in successfully.',
                 'token': token.decode("utf-8"),
                 'userid': user.id
             }
             return result, 200
         result = {'message': 'User does not exist or incorrect password.'}
         return result, 400
     result = {'message': 'Wrong email or password'}
     return result, 400
Beispiel #2
0
 def post(self):
     """
     Post the user's reset email
     :return:
     """
     args = user_parser.parse_args()
     recovery_email = args['email']
     if re.match(r"[^@]+@[^@]+\.[^@]+", recovery_email):
         user = User.get_by_email(recovery_email)
         if user:
             token = user.encode_recovery_token(recovery_email)
             recovery_token = token.decode("utf-8")
             recover_url = api.url_for(UserPasswordResetResource,
                                       token=token,
                                       _external=True)
             try:
                 msg = Message("Reset password Token",
                               sender="*****@*****.**",
                               recipients=[recovery_email])
                 msg.html = "<h3> Hi there, </h3>" \
                         "<hr/>" \
                         "<p>Click on this link to reset your password" \
                         "Recover url: " '<p>''<strong>' + recover_url +'</strong>''</p>' \
                         '<p> You will not be able to use this url in the next 24 Hours.' \
                         'Please reset your password before then.</p>' \
                         "<hr/>" \
                         "<h5>Yummy recipes password.</h5>"
                 with current_app.app_context():
                     mail.send(msg)
                 result = {'message': 'Recovery email has been sent.'}
                 return result, 200
             except Exception as e:
                 return {"error": str(e)}, 400
         result = {
             'message':
             'User with email {} does not exist.'.format(recovery_email)
         }
         return result, 400
     result = {'message': 'Wrong email entered.'}
     return result, 400
Beispiel #3
0
 def put(self, token):
     """
     Get the user's reset email
     :return:
     """
     args = user_parser.parse_args()
     password = args['password']
     if len(password) > 6:
         email = User.decode_auth_token(token)
         user = User.get_by_email(email)
         if user:
             try:
                 user.update(**args)
             except IndexError:
                 result = {'message': 'Server error on resetting password.'}
                 return result, 500
             result = {'message': 'Password has been reset successfully.'}
             return result, 200
         result = {'message': 'User does not exist anymore.'}
         return result, 400
     result = {'message': 'Password should not be less than 6 characters.'}
     return result, 400