Commit 3e6f0a4a authored by Guillermo Sanz López's avatar Guillermo Sanz López
Browse files

create user from backoffice

parent 557ab6f2
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -298,6 +298,24 @@ def delete_users_route():
    except Exception as e:
        return jsonify(message="Error deleting users", error=str(e)), 500
    
@backoffice_routes.route("/user", methods=["POST"])
@jwt_required()
def create_user_route():
    try:
        user_data = request.json

        # Verificar que los datos necesarios están presentes
        if not all(key in user_data for key in ['username', 'password', 'cn', 'role', 'description']):
            return jsonify(message="Missing data for user creation."), 400

        response = operations.create_user(user_data)

        return jsonify(response), 201


    except Exception as e:
        return jsonify(message="Error creating user", error=str(e)), 500

@cross_origin()
@backoffice_routes.route("/apis", methods=["GET"])
@jwt_required()
+59 −0
Original line number Diff line number Diff line
@@ -759,6 +759,65 @@ class Operations:
        except Exception as e:
            raise Exception("Error deleting users: " + str(e))
        

    def create_user2(self, user_data):
        try:
            url = 'https://register:8084/register'

            headers = {
                'Content-Type': 'application/json'
            }

            body = {
                "username": user_data['username'],
                "password": user_data['password'],
                "role": user_data['role'],
                "description": user_data['description'],
                "cn": user_data['cn']
            }

            response = requests.post(url, headers=headers, json=body, verify = False)

            if response.status_code == 201:
                return jsonify(message="User created successfully"), 201
            else:
                return jsonify(message=f"Failed to create user: {response.text}"), response.status_code

        except Exception as e:
            return jsonify(message=f"Error creating user: {str(e)}"), 500
        
    def create_user(self, user_data):
        try:
            url = 'https://register:8084/register'

            headers = {
                'Content-Type': 'application/json'
            }

            body = {
                "username": user_data['username'],
                "password": user_data['password'],
                "role": user_data['role'],
                "description": user_data['description'],
                "cn": user_data['cn']
            }

            response = requests.post(url, headers=headers, json=body, verify=False)

            if response.status_code == 201:
                # Retorna directamente un diccionario, Flask lo serializará a JSON
                return {"message": "User created successfully"}, 201
            else:
                # Asegúrate de que response.text sea serializable a JSON, o usa un mensaje genérico
                return {"message": "Failed to create user", "details": response.text}, response.status_code

        except Exception as e:
            # Considera registrar el error para depuración y retornar un mensaje genérico
            # print(e)
            return {"message": "Error creating user"}, 500


        
    def get_apis(self):
        try:   
            mycol = self.db.get_col_by_name(self.db.services)