mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Add password reset to Crafty Console
This commit is contained in:
parent
7d8515321b
commit
a2b711b5ac
@ -69,11 +69,13 @@ class UsersController:
|
|||||||
elif key == "password":
|
elif key == "password":
|
||||||
if user_data["password"] is not None and user_data["password"] != "":
|
if user_data["password"] is not None and user_data["password"] != "":
|
||||||
up_data["password"] = self.helper.encode_pass(user_data["password"])
|
up_data["password"] = self.helper.encode_pass(user_data["password"])
|
||||||
|
elif key == "lang":
|
||||||
|
up_data["lang"] = user_data["lang"]
|
||||||
|
elif key == "hints":
|
||||||
|
up_data["hints"] = user_data["hints"]
|
||||||
elif base_data[key] != user_data[key]:
|
elif base_data[key] != user_data[key]:
|
||||||
up_data[key] = user_data[key]
|
up_data[key] = user_data[key]
|
||||||
up_data["last_update"] = self.helper.get_time_as_string()
|
up_data["last_update"] = self.helper.get_time_as_string()
|
||||||
up_data["lang"] = user_data["lang"]
|
|
||||||
up_data["hints"] = user_data["hints"]
|
|
||||||
logger.debug(f"user: {user_data} +role:{added_roles} -role:{removed_roles}")
|
logger.debug(f"user: {user_data} +role:{added_roles} -role:{removed_roles}")
|
||||||
for role in added_roles:
|
for role in added_roles:
|
||||||
HelperUsers.get_or_create(user_id=user_id, role_id=role)
|
HelperUsers.get_or_create(user_id=user_id, role_id=role)
|
||||||
|
@ -3,6 +3,7 @@ import cmd
|
|||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
import logging
|
import logging
|
||||||
|
import getpass
|
||||||
from app.classes.shared.console import Console
|
from app.classes.shared.console import Console
|
||||||
|
|
||||||
from app.classes.shared.import3 import Import3
|
from app.classes.shared.import3 import Import3
|
||||||
@ -11,11 +12,13 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class MainPrompt(cmd.Cmd):
|
class MainPrompt(cmd.Cmd):
|
||||||
def __init__(self, helper, tasks_manager, migration_manager):
|
def __init__(self, helper, tasks_manager, migration_manager, main_controller):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.helper = helper
|
self.helper = helper
|
||||||
self.tasks_manager = tasks_manager
|
self.tasks_manager = tasks_manager
|
||||||
self.migration_manager = migration_manager
|
self.migration_manager = migration_manager
|
||||||
|
self.controller = main_controller
|
||||||
|
|
||||||
# overrides the default Prompt
|
# overrides the default Prompt
|
||||||
self.prompt = f"Crafty Controller v{self.helper.get_version_string()} > "
|
self.prompt = f"Crafty Controller v{self.helper.get_version_string()} > "
|
||||||
|
|
||||||
@ -49,6 +52,30 @@ class MainPrompt(cmd.Cmd):
|
|||||||
else:
|
else:
|
||||||
Console.info("Unknown migration command")
|
Console.info("Unknown migration command")
|
||||||
|
|
||||||
|
def do_set_passwd(self, line):
|
||||||
|
|
||||||
|
try:
|
||||||
|
username = str(line).lower()
|
||||||
|
user_id = self.controller.users.get_id_by_name(username)
|
||||||
|
except Exception as e:
|
||||||
|
Console.error(f"User: {line} Not Found")
|
||||||
|
return False
|
||||||
|
new_pass = getpass.getpass(prompt=f"NEW password for: {username} > ")
|
||||||
|
new_pass_conf = getpass.getpass(prompt="Re-enter your password: > ")
|
||||||
|
|
||||||
|
if new_pass != new_pass_conf:
|
||||||
|
Console.error("Passwords do not match. Please try again.")
|
||||||
|
return False
|
||||||
|
|
||||||
|
if len(new_pass) > 512:
|
||||||
|
Console.warning("Password Too Long")
|
||||||
|
return False
|
||||||
|
|
||||||
|
if len(new_pass) < 6:
|
||||||
|
Console.warning("Password Too Short")
|
||||||
|
return False
|
||||||
|
self.controller.users.update_user(user_id, {"password": new_pass})
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def do_threads(_line):
|
def do_threads(_line):
|
||||||
for thread in threading.enumerate():
|
for thread in threading.enumerate():
|
||||||
|
2
main.py
2
main.py
@ -168,7 +168,7 @@ if __name__ == "__main__":
|
|||||||
if not controller.check_system_user():
|
if not controller.check_system_user():
|
||||||
controller.add_system_user()
|
controller.add_system_user()
|
||||||
|
|
||||||
Crafty = MainPrompt(helper, tasks_manager, migration_manager)
|
Crafty = MainPrompt(helper, tasks_manager, migration_manager, controller)
|
||||||
|
|
||||||
project_root = os.path.dirname(__file__)
|
project_root = os.path.dirname(__file__)
|
||||||
controller.set_project_root(project_root)
|
controller.set_project_root(project_root)
|
||||||
|
Loading…
Reference in New Issue
Block a user