34 lines
1.3 KiB
Python

import app.container as container
from app.core.audit import AuditLogger
from app.core.config import Settings, validate_settings
from app.factory import create_app
from app.providers.cli_provider import CliSystemProvider, CommandExecutor
from app.services.user_group_service import UserGroupService
from app.state import AppState
settings = Settings()
validate_settings(settings)
executor = CommandExecutor(sudo_path=settings.sudo_path, timeout_seconds=settings.command_timeout_seconds)
provider = CliSystemProvider(executor=executor)
service = UserGroupService(
provider=provider,
home_base_dir=settings.home_base_dir,
link_home_dir=settings.link_home_dir or None,
default_shell=settings.default_shell,
hidden_users=settings.hidden_user_list,
hidden_groups=settings.hidden_group_list,
whitelist_users=settings.whitelist_user_list,
whitelist_groups=settings.whitelist_group_list,
locked_users=settings.locked_user_list,
user_uid_min=settings.user_uid_min,
user_uid_max=settings.user_uid_max,
group_gid_min=settings.group_gid_min,
group_gid_max=settings.group_gid_max,
)
audit = AuditLogger(log_path=settings.log_path)
container.app_state = AppState(settings=settings, service=service, audit=audit)
app_state = container.app_state
app = create_app()