fix: check if email belong to another user before update the current user email
parent
0444ca949e
commit
18e4b8d116
|
@ -13,7 +13,7 @@ from flask_jwt_extended import jwt_required
|
||||||
class Users(Resource):
|
class Users(Resource):
|
||||||
|
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
@role_required('admin', 'user')
|
@role_required('admin')
|
||||||
def get(self):
|
def get(self):
|
||||||
user_model = UserModel()
|
user_model = UserModel()
|
||||||
users = user_model.list_users()
|
users = user_model.list_users()
|
||||||
|
@ -33,7 +33,7 @@ class User(Resource):
|
||||||
self.user_model = UserModel()
|
self.user_model = UserModel()
|
||||||
|
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
@role_required('admin', 'user')
|
@role_required('admin')
|
||||||
def get(self, user_id):
|
def get(self, user_id):
|
||||||
if user := self.user_model.get_user_by_id(user_id):
|
if user := self.user_model.get_user_by_id(user_id):
|
||||||
|
|
||||||
|
@ -47,12 +47,15 @@ class User(Resource):
|
||||||
|
|
||||||
@user_ns.expect(update_user)
|
@user_ns.expect(update_user)
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
@role_required('admin', 'user')
|
@role_required('admin')
|
||||||
def patch(self, user_id):
|
def patch(self, user_id):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
|
|
||||||
validated = UpdateUserRequest(**data)
|
validated = UpdateUserRequest(**data)
|
||||||
|
|
||||||
|
if exist := self.user_model.find_by_email(validated.email):
|
||||||
|
return {"success": False, 'message': f'Email {exist["email"]} belong to another user'}, 400
|
||||||
|
|
||||||
if not self.user_model.get_user_by_id(user_id):
|
if not self.user_model.get_user_by_id(user_id):
|
||||||
return {"success": False, 'message': 'User not found'}, 404
|
return {"success": False, 'message': 'User not found'}, 404
|
||||||
|
|
||||||
|
@ -64,7 +67,7 @@ class User(Resource):
|
||||||
|
|
||||||
|
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
@role_required('admin', 'user')
|
@role_required('admin')
|
||||||
def delete(self, user_id):
|
def delete(self, user_id):
|
||||||
|
|
||||||
if not self.user_model.get_user_by_id(user_id):
|
if not self.user_model.get_user_by_id(user_id):
|
||||||
|
|
Loading…
Reference in New Issue