about: show only sections the account's groups actually permit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -123,7 +123,7 @@
|
|||||||
|
|
||||||
<section id="s-admins" class="hidden">
|
<section id="s-admins" class="hidden">
|
||||||
<h2>Administration</h2>
|
<h2>Administration</h2>
|
||||||
<p class="lead">You are in <code>admins</code> or <code>authentik Admins</code>. Sections you are not a member of are shown for reference and say so.</p>
|
<p class="lead">You are in <code>admins</code> or <code>authentik Admins</code>.</p>
|
||||||
<div class="links">
|
<div class="links">
|
||||||
<a class="card" id="l-auth" href="#"><b>Authentik admin</b><span>users, groups, Discord source, policies</span></a>
|
<a class="card" id="l-auth" href="#"><b>Authentik admin</b><span>users, groups, Discord source, policies</span></a>
|
||||||
<a class="card" id="l-jfadmin" href="#"><b>Jellyfin dashboard</b><span>libraries, plugin, scheduled tasks</span></a>
|
<a class="card" id="l-jfadmin" href="#"><b>Jellyfin dashboard</b><span>libraries, plugin, scheduled tasks</span></a>
|
||||||
@@ -155,17 +155,15 @@ $('dockurl').textContent = location.origin + '/dock/'; $('gitssh').textContent =
|
|||||||
$('pills').innerHTML = d.groups.map(g => `<span class="pill">${g}</span>`).join('') || '<span class="pill">no groups yet — ask an admin for a role</span>';
|
$('pills').innerHTML = d.groups.map(g => `<span class="pill">${g}</span>`).join('') || '<span class="pill">no groups yet — ask an admin for a role</span>';
|
||||||
const has = g => d.groups.includes(g);
|
const has = g => d.groups.includes(g);
|
||||||
const show = (id, on) => $(id).classList.toggle('hidden', !on);
|
const show = (id, on) => $(id).classList.toggle('hidden', !on);
|
||||||
|
// sections appear only for what this account can actually do (the gates check these same groups)
|
||||||
const isAdmin = has('admins') || has('authentik Admins');
|
const isAdmin = has('admins') || has('authentik Admins');
|
||||||
show('s-streamers', has('streamers') || isAdmin);
|
show('s-streamers', has('streamers'));
|
||||||
show('s-editors', has('editors') || has('media-admins') || isAdmin);
|
show('s-editors', has('editors') || has('media-admins'));
|
||||||
show('s-mediaadmins', has('media-admins') || isAdmin);
|
show('s-mediaadmins', has('media-admins'));
|
||||||
show('s-git', has('git-users') || has('git-admins') || isAdmin);
|
show('s-git', has('git-users') || has('git-admins'));
|
||||||
show('s-bot', has('bot-users') || isAdmin);
|
show('s-bot', has('bot-users'));
|
||||||
show('s-admins', isAdmin);
|
show('s-admins', isAdmin);
|
||||||
document.querySelectorAll('p.lead[data-group]').forEach(p => {
|
document.querySelectorAll('p.lead[data-group]').forEach(p => { p.innerHTML = p.dataset.yes; });
|
||||||
const member = has(p.dataset.group) || (p.dataset.alt && has(p.dataset.alt));
|
|
||||||
p.innerHTML = member ? p.dataset.yes : p.dataset.no;
|
|
||||||
});
|
|
||||||
} catch (e) { $('who').textContent = 'unknown (' + e.message + ')'; }
|
} catch (e) { $('who').textContent = 'unknown (' + e.message + ')'; }
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user