Source code for univention.portal.handlers.portal_resource

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

import tornado.web

from univention.portal.log import get_logger


[docs] class PortalResource(tornado.web.RequestHandler):
[docs] def initialize(self, portals): self.portals = portals
[docs] def prepare(self, *args, **kwargs): super().prepare(*args, **kwargs) if self.request.headers.get('X-UMC-HTTPS') == 'on': self.request.protocol = 'https'
[docs] def write_error(self, status_code, **kwargs): if "exc_info" in kwargs: get_logger("server").exception("Error during service") return super().write_error(status_code, **kwargs)
[docs] def find_portal(self): best_score = 0 best_portal = None for portal in self.portals.values(): score = portal.score(self.request) if score > best_score: best_score = score best_portal = portal return best_portal
[docs] def reverse_abs_url(self, name, args=None): if args is None: args = self.path_args return self.request.protocol + "://" + self.request.host + self.reverse_url(name, *args)