Files
co_app/app/ui/sidebar.py
2025-12-03 22:03:15 +01:00

55 lines
1.7 KiB
Python

import streamlit as st
from auth import get_fullname_for_user, get_role_for_user
def build_sidebar():
if st.session_state.get("authentication_status") != True:
return
authenticator = st.session_state.get("authenticator")
username = st.session_state.get("username")
if not authenticator or not username:
return
role = get_role_for_user(username)
fullname = get_fullname_for_user(username)
with st.sidebar:
st.logo("app/images/GMN_Logo_neu_rgb.png", size="small")
st.write(f"**{fullname}** ({role})")
col1, col2 = st.columns(2)
with col1:
if st.button("Logout", use_container_width=True):
authenticator.logout("Logout", "unrendered")
st.rerun()
with col2:
if st.button("Home", use_container_width=True):
st.switch_page("pages/home.py")
st.divider()
st.markdown("## Menü")
st.page_link("pages/Benutzer.py", label="Benutzer anlegen")
# Damit die leere Sidebar komplett verschwindet nach dem Logout
def hide_sidebar_if_logged_out():
if st.session_state.get("authentication_status") != True:
st.markdown("""
<style>
/* komplette Sidebar + Toggle ausblenden */
[data-testid="stSidebar"] {display: none;}
[data-testid="stSidebarNav"] {display: none;}
[data-testid="collapsedControl"] {display: none;}
/* Content wieder ganz nach links */
[data-testid="stAppViewContainer"] {
margin-left: 0;
}
</style>
""", unsafe_allow_html=True)