feat: allow password change via container CLI (#1863)

* add password change script

* rename file

* add note in FAQ
This commit is contained in:
Hayden 2022-11-27 10:35:21 -09:00 committed by GitHub
parent ac6554efdd
commit 3ad3d92e5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 0 deletions

View File

@ -58,3 +58,13 @@ docker exec -it mealie-next bash
python /app/mealie/scripts/reset_locked_users.py
```
## How can I change my password
You can change your password by going to the user profile page and clicking the "Change Password" button. Alternatively you can use the following script to change your password via the CLI if you are locked out of your account.
```shell
docker exec -it mealie-next bash
python /app/mealie/scripts/change_password.py
```

View File

@ -0,0 +1,40 @@
from getpass import getpass
from mealie.core import root_logger
from mealie.core.security.security import hash_password
from mealie.db.db_setup import session_context
from mealie.repos.repository_factory import AllRepositories
def main():
confirmed = input("Please enter the email of the user you want to reset: ")
logger = root_logger.get_logger()
with session_context() as session:
repos = AllRepositories(session)
user = repos.users.get_one(confirmed, "email")
if not user:
logger.error("no user found")
exit(1)
logger.info(f"changing password for {user.username}")
pw = getpass("Please enter the new password: ")
pw2 = getpass("Please enter the new password again: ")
if pw != pw2:
logger.error("passwords do not match")
hashed_password = hash_password(pw)
repos.users.update_password(user.id, hashed_password)
logger.info("password change successful")
input("press enter to exit ")
exit(0)
if __name__ == "__main__":
main()