mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-03 06:23:10 -05:00
feat: improved registration signup flow (#1188)
refactored signup flow for entire registration process. Utilized seed data option for optional seeding of Foods, Units, and Labels. Localized registration page.
This commit is contained in:
@@ -4,22 +4,23 @@ from uuid import uuid4
|
||||
from fastapi import HTTPException, status
|
||||
|
||||
from mealie.core.security import hash_password
|
||||
from mealie.lang import local_provider
|
||||
from mealie.lang.providers import Translator
|
||||
from mealie.repos.repository_factory import AllRepositories
|
||||
from mealie.schema.group.group_preferences import CreateGroupPreferences
|
||||
from mealie.schema.user.registration import CreateUserRegistration
|
||||
from mealie.schema.user.user import GroupBase, GroupInDB, PrivateUser, UserIn
|
||||
from mealie.services.group_services.group_service import GroupService
|
||||
from mealie.services.seeder.seeder_service import SeederService
|
||||
|
||||
|
||||
class RegistrationService:
|
||||
logger: Logger
|
||||
repos: AllRepositories
|
||||
|
||||
def __init__(self, logger: Logger, db: AllRepositories):
|
||||
def __init__(self, logger: Logger, db: AllRepositories, t: Translator):
|
||||
self.logger = logger
|
||||
self.repos = db
|
||||
self.t = local_provider()
|
||||
self.t = t
|
||||
|
||||
def _create_new_user(self, group: GroupInDB, new_group: bool) -> PrivateUser:
|
||||
new_user = UserIn(
|
||||
@@ -79,6 +80,14 @@ class RegistrationService:
|
||||
|
||||
user = self._create_new_user(group, new_group)
|
||||
|
||||
if new_group and registration.seed_data:
|
||||
|
||||
seeder_service = SeederService(self.repos, user, group)
|
||||
|
||||
seeder_service.seed_foods(registration.locale)
|
||||
seeder_service.seed_labels(registration.locale)
|
||||
seeder_service.seed_units(registration.locale)
|
||||
|
||||
if token_entry and user:
|
||||
token_entry.uses_left = token_entry.uses_left - 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user