From f10299347d13202ee61094335712a9e051c66462 Mon Sep 17 00:00:00 2001
From: Mart van Santen <mart@greenhost.nl>
Date: Tue, 21 Feb 2023 12:27:59 +0800
Subject: [PATCH] End-points to generate a recovery link

---
 backend/areas/users/user_service.py | 8 ++++++++
 backend/areas/users/users.py        | 7 +++++++
 2 files changed, 15 insertions(+)

diff --git a/backend/areas/users/user_service.py b/backend/areas/users/user_service.py
index 0e982eb7..eeb8e53a 100644
--- a/backend/areas/users/user_service.py
+++ b/backend/areas/users/user_service.py
@@ -34,6 +34,14 @@ class UserService:
         res = KratosApi.get("/admin/identities/{}".format(id)).json()
         return UserService.__insertAppRoleToUser(id, res)
 
+    @staticmethod
+    def get_recovery(id):
+        kratos_data = {
+            "identity_id": id
+        }
+        res = KratosApi.post("/admin/recovery/link", kratos_data).json()
+        return res
+
     @staticmethod
     def post_user(data):
         kratos_data = {
diff --git a/backend/areas/users/users.py b/backend/areas/users/users.py
index 08f22c6f..0d4bf0ee 100644
--- a/backend/areas/users/users.py
+++ b/backend/areas/users/users.py
@@ -28,6 +28,13 @@ def get_user(id):
     res = UserService.get_user(id)
     return jsonify(res)
 
+@api_v1.route("/users/<string:id>/recovery", methods=["GET"])
+@jwt_required()
+@cross_origin()
+@admin_required()
+def get_user_recovery(id):
+    res = UserService.get_recovery(id)
+    return jsonify(res)
 
 @api_v1.route("/users", methods=["POST"])
 @jwt_required()
-- 
GitLab