fix(auth/users): corregir edicion de contraseñas de usuarios, cambio de contraseña y evitar pantalla en blanco

This commit is contained in:
2026-09-23 15:38:48 -03:00
parent b540015b7e
commit 6ecaef9b9d
8 changed files with 428 additions and 21 deletions
+32
View File
@@ -444,6 +444,38 @@ def get_document_types():
'document_types': DOCUMENT_TYPES
}), 200
@api_admin_bp.route('/users/<int:id>/password', methods=['POST', 'PUT'])
@jwt_required
def reset_user_password(id):
"""
Permite a los administradores restablecer la contraseña de acceso de cualquier usuario.
"""
if not g.jwt_user.is_admin():
return jsonify({
'error': 'Forbidden',
'message': 'Solo los administradores institucionales pueden restablecer contraseñas.'
}), 403
user = User.query.get_or_404(id)
data = request.get_json(silent=True) or request.form.to_dict() or {}
new_password = (data.get('password') or data.get('new_password') or '').strip()
if not new_password or len(new_password) < 6:
return jsonify({
'error': 'BadRequest',
'message': 'La nueva contraseña debe contener al menos 6 caracteres.'
}), 400
user.set_password(new_password)
db.session.commit()
return jsonify({
'status': 'success',
'message': f'Contraseña restablecida exitosamente para {user.name}.',
'user_id': user.id
}), 200
@api_admin_bp.route('/users/<int:id>/toggle', methods=['POST'])
@jwt_required
def toggle_user(id):