import streamlit as st import mysql.connector import os def get_image_as_base64(image_path): import base64 with open(image_path, "rb") as img_file: return base64.b64encode(img_file.read()).decode("utf-8") def navbar(): logo_path = os.path.join(os.path.dirname(__file__), "./asset/logo.png") st.markdown( f"""
""", unsafe_allow_html=True, ) # Fungsi untuk koneksi ke database def connect_to_db(): try: conn = mysql.connector.connect( host=st.secrets["mysql"]["host"], user=st.secrets["mysql"]["user"], password=st.secrets["mysql"]["password"], database=st.secrets["mysql"]["dbname"], port=st.secrets["mysql"]["port"] ) st.success("Koneksi ke database berhasil!") return conn except mysql.connector.Error as e: st.error(f"Koneksi ke database gagal: {e}") return None # Fungsi untuk validasi login def validate_login(username, password): conn = connect_to_db() if conn: cursor = conn.cursor(dictionary=True) query = "SELECT * FROM user WHERE username = %s AND password = %s" cursor.execute(query, (username, password)) user = cursor.fetchone() conn.close() return user return None def show_login(): navbar() st.markdown(""" """, unsafe_allow_html=True) # Input form username = st.text_input("Username", placeholder="Masukkan username") password = st.text_input("Password", type="password", placeholder="Masukkan password") # Validasi tombol login tetap tidak diubah if st.button("Login", key="login_button"): user = validate_login(username, password) if user: st.session_state['logged_in'] = True st.session_state['role'] = user['role'].lower() st.session_state['username'] = user['username'] st.rerun() else: st.error("Username atau password salah.") st.markdown('', unsafe_allow_html=True) # Tutup container st.markdown('', unsafe_allow_html=True) # Footer st.markdown( """ """, unsafe_allow_html=True ) def main(): if 'logged_in' not in st.session_state: st.session_state['logged_in'] = False st.session_state['role'] = None st.session_state['username'] = None if st.session_state['logged_in']: role = st.session_state['role'] if role == 'admin': st.switch_page("pages/prediction.py") elif role == 'karyawan': st.switch_page("pages/karyawan_form.py") elif role == 'pimpinan': st.switch_page("pages/pimpinan_form.py") else: show_login() if __name__ == "__main__": main()