diff --git a/app/modules/hosting/routes/pages/public.py b/app/modules/hosting/routes/pages/public.py index fb7104ef..673f429d 100644 --- a/app/modules/hosting/routes/pages/public.py +++ b/app/modules/hosting/routes/pages/public.py @@ -26,19 +26,75 @@ async def poc_site_viewer( site_id: int = Path(..., description="Hosted Site ID"), db: Session = Depends(get_db), ): - """Render POC site viewer with HostWizard preview banner.""" + """Render POC site viewer with HostWizard preview banner. + + Renders CMS content directly (not via iframe to storefront) to + bypass the subscription access gate for pre-launch POC sites. + """ + from app.modules.cms.models.content_page import ContentPage + from app.modules.cms.models.store_theme import StoreTheme from app.modules.hosting.models import HostedSite, HostedSiteStatus + from app.modules.tenancy.models import StorePlatform site = db.query(HostedSite).filter(HostedSite.id == site_id).first() # Only allow viewing for poc_ready or proposal_sent sites - if not site or site.status not in (HostedSiteStatus.POC_READY, HostedSiteStatus.PROPOSAL_SENT): + if not site or site.status not in ( + HostedSiteStatus.POC_READY, + HostedSiteStatus.PROPOSAL_SENT, + HostedSiteStatus.ACCEPTED, + ): return HTMLResponse(content="