From 5f889cfcbd23afb8da139d7e7c76726117548b29 Mon Sep 17 00:00:00 2001 From: hay-kot Date: Sun, 28 Mar 2021 12:54:17 -0800 Subject: [PATCH] add reset default password --- frontend/src/api/users.js | 6 +++++- .../components/Admin/ManageUsers/TheUserTable.vue | 7 +++++++ mealie/routes/users/crud.py | 15 ++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/frontend/src/api/users.js b/frontend/src/api/users.js index aa5c9cacb..c87b44ca3 100644 --- a/frontend/src/api/users.js +++ b/frontend/src/api/users.js @@ -9,12 +9,12 @@ const authURLs = { refresh: `${authPrefix}/refresh`, }; - const usersURLs = { users: `${userPrefix}`, self: `${userPrefix}/self`, userID: id => `${userPrefix}/${id}`, password: id => `${userPrefix}/${id}/password`, + resetPassword: id => `${userPrefix}/${id}/reset-password`, }; export default { @@ -60,4 +60,8 @@ export default { let response = await apiReq.delete(usersURLs.userID(id)); return response.data; }, + async resetPassword(id) { + let response = await apiReq.put(usersURLs.resetPassword(id)); + return response.data; + }, }; diff --git a/frontend/src/components/Admin/ManageUsers/TheUserTable.vue b/frontend/src/components/Admin/ManageUsers/TheUserTable.vue index bad882719..58b8dbbae 100644 --- a/frontend/src/components/Admin/ManageUsers/TheUserTable.vue +++ b/frontend/src/components/Admin/ManageUsers/TheUserTable.vue @@ -93,6 +93,9 @@ + + Reset Password + {{ $t("general.cancel") }} @@ -269,6 +272,10 @@ export default { } await this.initialize(); }, + resetPassword() { + console.log(this.activeId); + api.users.resetPassword(this.editedItem.id ); + }, }, }; diff --git a/mealie/routes/users/crud.py b/mealie/routes/users/crud.py index af16df950..adbf395f7 100644 --- a/mealie/routes/users/crud.py +++ b/mealie/routes/users/crud.py @@ -4,7 +4,7 @@ from datetime import timedelta from fastapi import APIRouter, Depends, File, UploadFile from fastapi.responses import FileResponse from mealie.core import security -from mealie.core.config import USER_DIR +from mealie.core.config import DEFAULT_PASSWORD, USER_DIR from mealie.core.security import get_password_hash, verify_password from mealie.db.database import db from mealie.db.db_setup import generate_session @@ -58,6 +58,19 @@ async def get_user_by_id( return db.users.get(session, id) +@router.put("/{id}/reset-password") +async def reset_user_password( + id: int, + current_user: UserInDB = Depends(get_current_user), + session: Session = Depends(generate_session), +): + + new_password = get_password_hash(DEFAULT_PASSWORD) + db.users.update_password(session, id, new_password) + + return SnackResponse.success("Users Password Reset") + + @router.put("/{id}") async def update_user( id: int,