Files
RoleForge/app/templates/cluster-rbac.xhtml
Sergey Antropoff 1d2301fb09 first commit
2026-04-30 08:59:31 +03:00

59 lines
2.9 KiB
HTML

{% extends "base.xhtml" %}
{% from "macros/page-hero.xhtml" import page_hero %}
{% block content %}
{% set rbac_titles = {
"users": "Cluster Users",
"namespaces": "Namespace Users",
"reconcile": "RBAC Reconcile"
} %}
{% set rbac_desc = {
"users": "Manage cluster-wide role bindings for users.",
"namespaces": "Manage namespace-scoped role bindings for users.",
"reconcile": "Synchronize RBAC resources and inspect reconciliation logs."
} %}
{% set rbac_title = rbac_titles.get(rbac_sub, "Cluster RBAC") %}
{{ page_hero("Access control", rbac_title, rbac_desc.get(rbac_sub, "Cluster-wide and namespace-scoped users, roles, and time-bound access.")) }}
<pre id="cluster-detail-output" class="form-output hidden" data-cluster-id="{{ cluster_id }}"></pre>
<section class="card crbac-sec" data-crbac="users">
<h2>Cluster Users</h2>
<form id="cluster-user-form" class="toolbar-row form-modern toolbar-form">
<input id="cluster-user-id" type="number" min="1" placeholder="user id" required="required" />
<select id="cluster-user-role"></select>
<input id="cluster-user-expires-at" type="datetime-local" />
<button type="submit">Add user</button>
</form>
<form id="cluster-user-filters" class="toolbar-row form-modern toolbar-form">
<input id="cluster-user-search" type="text" placeholder="search username/email" />
<select id="cluster-user-role-filter"><option value="">all roles</option></select>
</form>
<div id="cluster-users-table"></div>
<pre id="cluster-users-output" class="form-output"></pre>
</section>
<section class="card crbac-sec" data-crbac="namespaces">
<h2>Namespace Users</h2>
<form id="namespace-user-form" class="toolbar-row form-modern toolbar-form">
<input id="namespace-user-id" type="number" min="1" placeholder="user id" required="required" />
<select id="namespace-user-role"></select>
<select id="namespace-user-namespaces" multiple="multiple"></select>
<input id="namespace-user-expires-at" type="datetime-local" />
<button type="submit">Grant roles</button>
</form>
<form id="namespace-user-filters" class="toolbar-row form-modern toolbar-form">
<input id="namespace-user-search" type="text" placeholder="search username/email" />
<input id="namespace-filter" type="text" placeholder="namespace filter" />
<select id="namespace-user-role-filter"><option value="">all roles</option></select>
</form>
<div id="namespace-users-table"></div>
<pre id="namespace-users-output" class="form-output"></pre>
</section>
<section class="card crbac-sec" data-crbac="reconcile">
<h2>RBAC Reconcile</h2>
<form id="rbac-sync-form" class="toolbar-row form-modern toolbar-form">
<button id="rbac-sync-btn" type="submit">Reconcile RBAC</button>
</form>
<div id="rbac-sync-status" class="muted">idle</div>
<pre id="rbac-sync-output" class="form-output"></pre>
<pre id="rbac-sync-logs" class="terminal"></pre>
</section>
{% endblock %}