Refactor/user database models (#775)

* fix build error

* drop frontend.old

* improve auto_init decorator

* purge depreciated site settings

* formatting

* update init function

* fix(backend): 🐛 Fix password reset bug

Co-authored-by: Hayden <hay-kot@pm.me>
This commit is contained in:
Hayden
2021-11-04 14:01:37 -08:00
committed by GitHub
parent 40462a95f1
commit ec3b53cdc3
172 changed files with 430 additions and 12255 deletions

View File

@@ -11,15 +11,7 @@ from mealie.core.config import get_app_dirs
app_dirs = get_app_dirs()
from mealie.db.database import get_database
from mealie.schema.admin import (
CommentImport,
GroupImport,
NotificationImport,
RecipeImport,
SettingsImport,
SiteSettings,
UserImport,
)
from mealie.schema.admin import CommentImport, GroupImport, NotificationImport, RecipeImport, UserImport
from mealie.schema.events import EventNotificationIn
from mealie.schema.recipe import CommentOut, Recipe
from mealie.schema.user import PrivateUser, UpdateGroup
@@ -181,19 +173,7 @@ class ImportDatabase:
return import_notifications
def import_settings(self):
settings_file = self.import_dir.joinpath("settings", "settings.json")
settings = ImportDatabase.read_models_file(settings_file, SiteSettings)
settings = settings[0]
try:
self.db.settings.update(1, settings.dict())
import_status = SettingsImport(name="Site Settings", status=True)
except Exception as inst:
self.session.rollback()
import_status = SettingsImport(name="Site Settings", status=False, exception=str(inst))
return [import_status]
return []
def import_groups(self):
groups_file = self.import_dir.joinpath("groups", "groups.json")

View File

@@ -181,7 +181,7 @@ class MigrationBase(BaseModel):
except Exception as inst:
exception = inst
logger.error(inst)
logger.exception(inst)
self.session.rollback()
import_status = MigrationImport(slug=recipe.slug, name=recipe.name, status=status, exception=str(exception))

View File

@@ -13,7 +13,12 @@ class UserService(UserHttpService[int, str]):
event_func = create_user_event
acting_user: PrivateUser = None
def populate_item(self, item_id: int) -> None:
self.acting_user = self.db.users.get_one(item_id)
return self.acting_user
def assert_existing(self, id) -> PrivateUser:
self.populate_item(id)
self._populate_target_user(id)
self._assert_user_change_allowed()
return self.target_user
@@ -32,7 +37,6 @@ class UserService(UserHttpService[int, str]):
self.target_user = self.acting_user
def change_password(self, password_change: ChangePassword) -> PrivateUser:
""""""
if not verify_password(password_change.current_password, self.target_user.password):
raise HTTPException(status.HTTP_400_BAD_REQUEST)