39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
import streamlit as st
|
|
from streamlit_authenticator import Authenticate
|
|
|
|
# Imports from this module
|
|
from streamlit_constants import ADMIN_ROLE_NAME
|
|
from streamlit_constants import USDA_API_KEY, CENSUS_YEAR
|
|
from page_classes.naics_report_page_class import NaicsReportPage
|
|
from page_classes.report_comparer_page_class import ComparerPage
|
|
from page_classes.page_class_constants import REPORT_CONFIGS
|
|
from page_classes.admin_panel_page_class import AdminPanelPage
|
|
|
|
authenticator:Authenticate = st.session_state.get('authenticator')
|
|
|
|
st.set_page_config(layout='wide')
|
|
|
|
PAGE_CLASS_STATE_KEY = 'admin_page_session_state'
|
|
|
|
if st.session_state.get('authentication_status'):
|
|
user_roles = st.session_state.get('roles', [])
|
|
if user_roles and ADMIN_ROLE_NAME in user_roles:
|
|
authenticator.logout()
|
|
st.write(f'Welcome *{st.session_state.get("name")}*')
|
|
|
|
if PAGE_CLASS_STATE_KEY in st.session_state:
|
|
admin_page = st.session_state[PAGE_CLASS_STATE_KEY]
|
|
else:
|
|
admin_page = AdminPanelPage()
|
|
st.session_state[PAGE_CLASS_STATE_KEY] = admin_page
|
|
|
|
admin_page.render(st.container())
|
|
else:
|
|
authenticator.logout()
|
|
st.write(f"You do not have the '{ADMIN_ROLE_NAME}' role required to access this page.")
|
|
st.write(f"See https://github.com/mkhorasani/Streamlit-Authenticator?tab=readme-ov-file#3-creating-a-config-file for how to modify the authentication config file to add this role to an account.")
|
|
elif st.session_state.get('authentication_status') is False:
|
|
st.error('Username/password is incorrect')
|
|
elif st.session_state.get('authentication_status') is None:
|
|
st.warning('Please enter your username and password')
|