- Add InviteToken model and Alembic migration (core.invite_tokens)
- Add invites module: DTOs, service (create/validate/consume), routes
- Register invites router in core router
- Extend auth register endpoint to support invite_token flow:
- Validate local token, create user via Hub admin API (service account),
handle existing user (link instead of duplicate), create UserTenant, consume token
- Add GET /auth/register/check endpoint to validate token without consuming
- Add HUB_ADMIN_EMAIL, HUB_ADMIN_PASSWORD, APP_PUBLIC_URL to config
- Frontend: add invite() method and types to users.ts API client
- Frontend: add invite dialog with real roles dropdown to users page
- Frontend: update register page to handle invite flow and user-exists case
25 lines
1.4 KiB
Python
25 lines
1.4 KiB
Python
from .auth.routes import router as auth_router
|
|
from .invites.routes import router as invites_router
|
|
from .licenses.routes import router as licenses_router
|
|
from .permissions.routes import router as permissions_router
|
|
from .tenants.routes import router as tenants_router
|
|
from .user_tenant.routes import router as user_tenant_router
|
|
from .users.routes import router as users_router
|
|
from .dashboard.routes import router as dashboard_router
|
|
from .help_center.routes import router as help_center_router
|
|
from .tasks_tracking.routes import router as tasks_tracking_router
|
|
from fastapi import APIRouter
|
|
|
|
router = APIRouter()
|
|
|
|
router.include_router(auth_router)
|
|
router.include_router(invites_router, prefix="/core", tags=["core / invites"])
|
|
router.include_router(tenants_router, prefix="/core", tags=["core / tenants"])
|
|
router.include_router(user_tenant_router, prefix="/core", tags=["core / user-tenants"])
|
|
router.include_router(users_router, prefix="/core", tags=["core / users"])
|
|
router.include_router(licenses_router, prefix="/core", tags=["core / licenses"])
|
|
router.include_router(permissions_router, prefix="/core", tags=["core / permissions"])
|
|
router.include_router(dashboard_router, prefix="/core", tags=["core / dashboard"])
|
|
router.include_router(help_center_router, prefix="/core", tags=["core / help-center"])
|
|
router.include_router(tasks_tracking_router, prefix="/core", tags=["core / tasks"])
|