Multitenant implementation with custom Domain, theme per vendor
This commit is contained in:
@@ -16,6 +16,7 @@ Routes:
|
||||
- GET /vendors/create → Create vendor form (auth required)
|
||||
- GET /vendors/{vendor_code} → Vendor details (auth required)
|
||||
- GET /vendors/{vendor_code}/edit → Edit vendor form (auth required)
|
||||
- GET /vendors/{vendor_code}/domains → Vendor domains management (auth required)
|
||||
- GET /users → User management page (auth required)
|
||||
- GET /imports → Import history page (auth required)
|
||||
- GET /settings → Settings page (auth required)
|
||||
@@ -166,6 +167,55 @@ async def admin_vendor_edit_page(
|
||||
)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# VENDOR DOMAINS ROUTES
|
||||
# ============================================================================
|
||||
|
||||
@router.get("/vendors/{vendor_code}/domains", response_class=HTMLResponse, include_in_schema=False)
|
||||
async def admin_vendor_domains_page(
|
||||
request: Request,
|
||||
vendor_code: str = Path(..., description="Vendor code"),
|
||||
current_user: User = Depends(get_current_admin_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
Render vendor domains management page.
|
||||
Shows custom domains, verification status, and DNS configuration.
|
||||
"""
|
||||
return templates.TemplateResponse(
|
||||
"admin/vendor-domains.html",
|
||||
{
|
||||
"request": request,
|
||||
"user": current_user,
|
||||
"vendor_code": vendor_code,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# VENDOR THEMES ROUTES
|
||||
# ============================================================================
|
||||
|
||||
@router.get("/vendors/{vendor_code}/theme", response_class=HTMLResponse, include_in_schema=False)
|
||||
async def admin_vendor_theme_page(
|
||||
request: Request,
|
||||
vendor_code: str = Path(..., description="Vendor code"),
|
||||
current_user: User = Depends(get_current_admin_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
Render vendor theme customization page.
|
||||
"""
|
||||
return templates.TemplateResponse(
|
||||
"admin/vendor-theme.html",
|
||||
{
|
||||
"request": request,
|
||||
"user": current_user,
|
||||
"vendor_code": vendor_code,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# USER MANAGEMENT ROUTES
|
||||
# ============================================================================
|
||||
@@ -257,6 +307,7 @@ async def admin_components_page(
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@router.get("/icons", response_class=HTMLResponse, include_in_schema=False)
|
||||
async def admin_icons_page(
|
||||
request: Request,
|
||||
@@ -275,6 +326,7 @@ async def admin_icons_page(
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@router.get("/testing", response_class=HTMLResponse, include_in_schema=False)
|
||||
async def admin_testing_hub(
|
||||
request: Request,
|
||||
|
||||
Reference in New Issue
Block a user