Commit 557ab6f2 authored by Guillermo Sanz López's avatar Guillermo Sanz López
Browse files

delete invokers and provider when you delete the user owner

parent e207c51a
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
from flask import Blueprint, jsonify, request
from flask_jwt_extended import JWTManager, create_access_token, create_refresh_token, get_jwt_identity, jwt_required
from flask_cors import cross_origin
from datetime import timedelta

# create blueprint backoffice_routes
access_routes = Blueprint("acces_routes", __name__)
@@ -20,9 +21,13 @@ def login():
            print("Bad username or password")   
            return jsonify({"msg": "Bad username or password"}), 401
        
        # Configurar la expiración del token a 24 horas
        expires = timedelta(hours=8)
        exprires_refresh = timedelta(days=30)

        # identity is a data that can be serialized in json -> username = superadmin
        access_token = create_access_token(identity=username, expires_delta=False)
        refresh_token = create_refresh_token(identity=username)
        access_token = create_access_token(identity=username, expires_delta=expires)
        refresh_token = create_refresh_token(identity=username, expires_delta=exprires_refresh)

        return jsonify(access_token=access_token, refresh_token=refresh_token)
    
@@ -31,10 +36,14 @@ def login():

@cross_origin()
@access_routes.route('/refresh', methods=["POST"])
@jwt_required
@jwt_required(refresh=True)
def refresh():
    current_user = get_jwt_identity()
    new_access_token = create_access_token(identity=current_user)

    # Configurar la expiración del nuevo token de acceso a 8 horas
    expires = timedelta(hours=8)
    new_access_token = create_access_token(identity=current_user, expires_delta=expires)

    return jsonify(access_token=new_access_token)

# al hacer F5 en la página, si hay un JWT en las cookies tienes que saber si ese JWT es válido, y traerte los datos del usuario que te puedan interesar del backend
+32 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import os
import json
import copy
import pymongo
import sys


class Operations:
@@ -700,6 +701,37 @@ class Operations:
            responses = []

            for user in users:
                print(f"Buscando al usuario: {user['username']}")
                search_result = self.search_users(user['username'], 1, 1)
                print(f"Resultado de la búsqueda: {search_result}")
                sys.stdout.flush()

                # search_result = ({'data': [
                #     {'username': 'ROBOT_TESTING_PROVIDER_3', 
                #      'password': 'password', 
                #      'role': 'provider', 
                #      'description': 'Testing', 
                #      'cn': 'ROBOT_TESTING_PROVIDER_3', 
                #      'list_invokers': [], 
                #      'list_providers': ['fcc6342ad3151878f92865d2d546fa'], 
                #      'onboarding_date': datetime.datetime(2024, 3, 15, 8, 23, 6, 978000)
                #     }
                # ]}, 200)

                if search_result:
                    user1 = search_result[0]['data'][0]  # Accediendo al primer elemento de la lista bajo la clave 'data'

                    if 'list_invokers' in user1:
                        for invoker in user1['list_invokers']:
                            self.delete_invoker(invoker)

                    if 'list_providers' in user1:
                        for provider in user1['list_providers']:
                            self.delete_provider(provider)
                else:
                    responses.append({'username': user['username'], 'message': 'Invalid user.'})
                    continue

                if not user:
                    responses.append({'username': user['username'], 'message': 'Invalid user.'})
                    continue