"""UI utilities""" from flask import render_template from .client import oauth2_get def render_ui(templatepath: str, **kwargs): """Handle repetitive UI rendering stuff.""" roles = kwargs.get("roles", tuple()) # Get roles if not roles: roles = oauth2_get("auth/system/roles").either( lambda _err: roles, lambda auth_roles: auth_roles) user_privileges = tuple( privilege["privilege_id"] for role in roles for privilege in role["privileges"]) kwargs = { **kwargs, "roles": roles, "user_privileges": user_privileges, } return render_template(templatepath, **kwargs)