Advertisement
Guest User

Untitled

a guest
Feb 25th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. @flask_app.route('/<api_version>/login', methods=['POST'])
  2. def login(api_version):
  3. print(f'login', request.form)
  4. response = None
  5. try:
  6. username = request.form['username']
  7. password = request.form['password']
  8.  
  9. if not username:
  10. return jsonify({"msg": "Missing username parameter"}), 400
  11. if not password:
  12. return jsonify({"msg": "Missing password parameter"}), 400
  13.  
  14. user = User.get_with_password(username, password)
  15.  
  16. if (not user):
  17. e1 = Unauthorized(
  18. 'Invalid username or password. Please try again.')
  19. e1.status = 401
  20. raise e1
  21.  
  22. """ flask_login.login_user(user, remember=True) """
  23. access_token = create_access_token(identity=username)
  24. response = json.dumps({"token": access_token}, cls=CustomJSONEncoder)
  25. except Exception as e:
  26. errMsg = f'Error Logging in user {username if username else ""}: {e}'
  27. status = e.status if hasattr(e, 'status') else 500
  28. print(f'{errMsg}')
  29. traceback.print_exc()
  30. return Response(
  31. json.dumps({"message": errMsg, "status": status, "stack": traceback.format_exc() }), status=status, mimetype='application/json')
  32.  
  33.  
  34. resp = Response(response, status=200, mimetype='application/json')
  35. return resp
  36.  
  37. @flask_app.route('/<api_version>/add-user', methods=['POST'])
  38. @jwt_required
  39. def add_user(api_version):
  40. print(f'add-user', request)
  41. response = None
  42. username = None
  43. password = None
  44. allow_admin = None
  45. try:
  46. data = request.get_json()
  47. print(f'add-user data', data)
  48.  
  49. if 'username' in data:
  50. username = data['username']
  51. else:
  52. return jsonify({"msg": "Missing username parameter"}), 400
  53. if 'password' in data:
  54. password = data['password']
  55. else:
  56. return jsonify({"msg": "Missing password parameter"}), 400
  57. if 'allow_admin' in data:
  58. allow_admin = data['allow_admin']
  59.  
  60. """ user = User.get_with_password(username, password)"""
  61. user = get_jwt_identity()
  62. print('user',user)
  63.  
  64. if (not user):
  65. e1 = Unauthorized(
  66. 'Invalid username or password. Please try again.')
  67. e1.status = 401
  68. raise e1
  69.  
  70. response = json.dumps({"user": user}, cls=CustomJSONEncoder)
  71. except Exception as e:
  72. errMsg = f'Error Adding User {username}: {e}'
  73. status = e.status if hasattr(e, 'status') else 500
  74. print(f'{errMsg}')
  75. traceback.print_exc()
  76. return Response(
  77. json.dumps({"message": errMsg, "status": status, "stack": traceback.format_exc() }), status=status, mimetype='application/json')
  78.  
  79.  
  80. resp = Response(response, status=200, mimetype='application/json')
  81. return resp
  82.  
  83. class User():
  84. @classmethod
  85. def get_with_password(cls, username, password):
  86. print(f'User get_with_password {username} with password')
  87. user_db = account.get_account(username)
  88. print(f'User returned from DB: {user_db}')
  89.  
  90. user = User()
  91. if not user_db or not len(user_db) or (not 'password' in user_db):
  92. return None
  93. user.username = username
  94. user.id = username
  95.  
  96. if bcrypt.check_password_hash(user_db['password'], password):
  97.  
  98. user.role = user_db['role']
  99. #user.is_authenticated = True
  100. print(
  101. f'loginUser returning {vars(user)} ')
  102. return user
  103. return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement