From 8af88022cd91df9b87921b64e36e026f11b6b7dc Mon Sep 17 00:00:00 2001 From: Ben Arc Date: Sat, 29 May 2021 13:42:14 +0100 Subject: [PATCH] Updated usermanager Made use of the email and password fields in db --- lnbits/extensions/usermanager/crud.py | 12 ++++++--- .../templates/usermanager/_api_docs.html | 6 +++-- .../templates/usermanager/index.html | 25 +++++++++++++++++-- lnbits/extensions/usermanager/views_api.py | 18 ++++++++++--- 4 files changed, 49 insertions(+), 12 deletions(-) diff --git a/lnbits/extensions/usermanager/crud.py b/lnbits/extensions/usermanager/crud.py index 6470c413a..dbee287c9 100644 --- a/lnbits/extensions/usermanager/crud.py +++ b/lnbits/extensions/usermanager/crud.py @@ -17,7 +17,11 @@ from .models import Users, Wallets async def create_usermanager_user( - user_name: str, wallet_name: str, admin_id: str + user_name: str, + wallet_name: str, + admin_id: str, + email: Optional[str] = None, + password: Optional[str] = None, ) -> Users: account = await create_account() user = await get_user(account.id) @@ -27,10 +31,10 @@ async def create_usermanager_user( await db.execute( """ - INSERT INTO users (id, name, admin) - VALUES (?, ?, ?) + INSERT INTO users (id, name, admin, email, password) + VALUES (?, ?, ?, ?, ?) """, - (user.id, user_name, admin_id), + (user.id, user_name, admin_id, email, password), ) await db.execute( diff --git a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html index fbd13e725..2bb7e92c1 100644 --- a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html +++ b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html @@ -114,7 +114,8 @@ {"admin_id": <string>, "user_name": <string>, - "wallet_name": <string>}
Returns 201 CREATED (application/json) @@ -128,7 +129,8 @@ curl -X POST {{ request.url_root }}api/v1/users -d '{"admin_id": "{{ g.user.id }}", "wallet_name": <string>, "user_name": - <string>}' -H "X-Api-Key: {{ g.user.wallets[0].inkey }}" -H + <string>, "email": <Optional string>, "password": < + Optional string>}' -H "X-Api-Key: {{ g.user.wallets[0].inkey }}" -H "Content-type: application/json" diff --git a/lnbits/extensions/usermanager/templates/usermanager/index.html b/lnbits/extensions/usermanager/templates/usermanager/index.html index 44837a547..a75140894 100644 --- a/lnbits/extensions/usermanager/templates/usermanager/index.html +++ b/lnbits/extensions/usermanager/templates/usermanager/index.html @@ -157,6 +157,18 @@ v-model.trim="userDialog.data.walname" label="Initial wallet name" > + + ", methods=["GET"]) +@api_check_wallet_key(key_type="invoice") +async def api_usermanager_user(user_id): + user = await get_usermanager_user(user_id) + return ( + jsonify(user._asdict()), + HTTPStatus.OK, + ) + + @usermanager_ext.route("/api/v1/users", methods=["POST"]) @api_check_wallet_key(key_type="invoice") @api_validate_post_request( schema={ - "admin_id": {"type": "string", "empty": False, "required": True}, "user_name": {"type": "string", "empty": False, "required": True}, "wallet_name": {"type": "string", "empty": False, "required": True}, + "admin_id": {"type": "string", "empty": False, "required": True}, + "email": {"type": "string", "required": False}, + "password": {"type": "string", "required": False}, } ) async def api_usermanager_users_create(): - user = await create_usermanager_user( - g.data["user_name"], g.data["wallet_name"], g.data["admin_id"] - ) + user = await create_usermanager_user(**g.data) return jsonify(user._asdict()), HTTPStatus.CREATED