from flask import Blueprint, render_template, session, redirect, url_for, flash portal_services_bp = Blueprint("portal_services", __name__) def _portal_user_is_logged_in() -> bool: return bool( session.get("portal_user_id") or session.get("client_user_id") or session.get("portal_client_id") or session.get("client_id") or session.get("user_id") ) @portal_services_bp.route("/portal/services") def portal_services_home(): if not _portal_user_is_logged_in(): flash("Please sign in to access services.", "warning") return redirect(url_for("portal_login")) client = { "contact_name": session.get("portal_contact_name"), "company_name": session.get("portal_company_name"), "email": session.get("portal_email"), } client_name = ( client.get("contact_name") or client.get("company_name") or client.get("email") or "Client" ) services = [ { "key": "follow_me", "name": "Follow-me Tracker", "summary": "Create and manage your GPS tracking network. Free for up to 2 users.", "status": "beta", "enabled": True, "href": "https://follow-me.outsidethebox.top", "button_text": "Open Follow-me", }, { "key": "video_render", "name": "Video Rendering / Streaming", "summary": "Submit video rendering, conversion, and hosted streaming jobs.", "status": "coming_soon", "enabled": False, "href": "#", "button_text": "Coming Soon", }, { "key": "miner_rentals", "name": "Miner Rentals", "summary": "Rent available OTB hashpower by time or package.", "status": "coming_soon", "enabled": False, "href": "#", "button_text": "Coming Soon", }, ] return render_template( "portal/services_here.html", client=client, client_name=client_name, services=services, )