Source code for univention.portal.main

# Univention Portal
#
# SPDX-FileCopyrightText: 2019-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

import tornado.web

from univention.portal.factory import make_portal
from univention.portal.handlers import LoginHandler, LogoutHandler, NavigationHandler, PortalEntriesHandler
from univention.portal.log import get_logger


[docs] def make_app(portal_definitions): portals = {} for name, portal_definition in portal_definitions.items(): get_logger("server").info(f"Building portal {name}") portals[name] = make_portal(portal_definition) routes = build_routes(portals) return tornado.web.Application(routes)
[docs] def build_routes(portals): return [ tornado.web.url(r"/(.+)/login/?", LoginHandler, {"portals": portals}, name='login'), tornado.web.url(r"/(.+)/portal.json", PortalEntriesHandler, {"portals": portals}, name='portal'), tornado.web.url(r"/(.+)/navigation.json", NavigationHandler, {"portals": portals}, name='navigation'), tornado.web.url(r"/(.+)/logout/?", LogoutHandler, {"portals": portals}, name='logout'), tornado.web.url(r"/(.+)/", tornado.web.RequestHandler, name='index'), tornado.web.url(r"/", tornado.web.RequestHandler, name='root'), ]