fix: check if email belong to another user before update the current user email

master
adriano 2025-06-24 16:25:44 -03:00
parent 0444ca949e
commit 18e4b8d116
1 changed files with 8 additions and 5 deletions

View File

@ -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):