98 lines
2.9 KiB
Plaintext
98 lines
2.9 KiB
Plaintext
<div class="sidebar">
|
|
<div class="logo">🩺 Praxis System</div>
|
|
|
|
<%
|
|
const role = user?.role || null;
|
|
|
|
// ✅ Regeln:
|
|
// Arztbereich: NUR arzt
|
|
const canDoctorArea = role === "arzt";
|
|
|
|
// Verwaltung: NUR admin
|
|
const canAdminArea = role === "admin";
|
|
|
|
function hrefIfAllowed(allowed, href) {
|
|
return allowed ? href : "#";
|
|
}
|
|
|
|
function lockClass(allowed) {
|
|
return allowed ? "" : "locked";
|
|
}
|
|
|
|
function lockClick(allowed) {
|
|
return allowed ? "" : 'onclick="return false;"';
|
|
}
|
|
%>
|
|
|
|
<!-- Patienten -->
|
|
<a
|
|
href="<%= hrefIfAllowed(canDoctorArea, '/patients') %>"
|
|
class="nav-item <%= active === 'patients' ? 'active' : '' %> <%= lockClass(canDoctorArea) %>"
|
|
<%- lockClick(canDoctorArea) %>
|
|
title="<%= canDoctorArea ? '' : 'Nur Arzt' %>"
|
|
>
|
|
<i class="bi bi-people"></i> Patienten
|
|
<% if (!canDoctorArea) { %>
|
|
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
|
<% } %>
|
|
</a>
|
|
|
|
<!-- Medikamente -->
|
|
<a
|
|
href="<%= hrefIfAllowed(canDoctorArea, '/medications') %>"
|
|
class="nav-item <%= active === 'medications' ? 'active' : '' %> <%= lockClass(canDoctorArea) %>"
|
|
<%- lockClick(canDoctorArea) %>
|
|
title="<%= canDoctorArea ? '' : 'Nur Arzt' %>"
|
|
>
|
|
<i class="bi bi-capsule"></i> Medikamente
|
|
<% if (!canDoctorArea) { %>
|
|
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
|
<% } %>
|
|
</a>
|
|
|
|
<!-- Offene Leistungen -->
|
|
<a
|
|
href="<%= hrefIfAllowed(canDoctorArea, '/services/open') %>"
|
|
class="nav-item <%= active === 'services' ? 'active' : '' %> <%= lockClass(canDoctorArea) %>"
|
|
<%- lockClick(canDoctorArea) %>
|
|
title="<%= canDoctorArea ? '' : 'Nur Arzt' %>"
|
|
>
|
|
<i class="bi bi-receipt"></i> Offene Leistungen
|
|
<% if (!canDoctorArea) { %>
|
|
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
|
<% } %>
|
|
</a>
|
|
|
|
<!-- Abrechnung -->
|
|
<a
|
|
href="<%= hrefIfAllowed(canDoctorArea, '/admin/invoices') %>"
|
|
class="nav-item <%= active === 'billing' ? 'active' : '' %> <%= lockClass(canDoctorArea) %>"
|
|
<%- lockClick(canDoctorArea) %>
|
|
title="<%= canDoctorArea ? '' : 'Nur Arzt' %>"
|
|
>
|
|
<i class="bi bi-cash-coin"></i> Abrechnung
|
|
<% if (!canDoctorArea) { %>
|
|
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
|
<% } %>
|
|
</a>
|
|
|
|
<!-- Verwaltung (nur Admin) -->
|
|
<a
|
|
href="<%= hrefIfAllowed(canAdminArea, '/admin/users') %>"
|
|
class="nav-item <%= active === 'admin' ? 'active' : '' %> <%= lockClass(canAdminArea) %>"
|
|
<%- lockClick(canAdminArea) %>
|
|
title="<%= canAdminArea ? '' : 'Nur Admin' %>"
|
|
>
|
|
<i class="bi bi-gear"></i> Verwaltung
|
|
<% if (!canAdminArea) { %>
|
|
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
|
<% } %>
|
|
</a>
|
|
|
|
<div class="spacer"></div>
|
|
|
|
<a href="/logout" class="nav-item">
|
|
<i class="bi bi-box-arrow-right"></i> Logout
|
|
</a>
|
|
</div>
|