| import streamlit as st |
| from streamlit_option_menu import option_menu |
| import json |
| from Home import dashboard |
| import pymongo |
|
|
|
|
| st.page_config(page_title="Auth", page_icon=":lock:") |
|
|
|
|
|
|
|
|
| def loadfile(): |
| with open("database/users.json") as file: |
| data = json.load(file) |
| return data |
|
|
| def savefile(data): |
| with open("database/users.json", "w") as file: |
| json.dump(data, file, indent=4) |
|
|
|
|
|
|
| def login(): |
| st.write("Login") |
| username = st.text_input("Username") |
| password = st.text_input("Password", type="password") |
| if st.button("Login"): |
| data = loadfile() |
| if username in data: |
| if data[username]["password"] == password: |
| st.success("Logged In as {}".format(username)) |
| st.session_state.user = username |
| else: |
| st.error("Wrong Password") |
| else: |
| st.error("User not found") |
| |
| |
| def register(): |
| st.write("Register") |
| username = st.text_input("Username") |
| password = st.text_input("Password", type="password") |
| if st.button("Register"): |
| data = loadfile() |
| if username in data: |
| st.error("User already exists") |
| else: |
| data[username] = {} |
| data[username]["password"] = password |
| savefile(data) |
| st.success("User created") |
|
|
|
|
|
|
|
|
| def main(): |
| if 'user' not in st.session_state: |
| st.session_state.user = None |
| |
| if st.session_state.user is None: |
| with st.sidebar: |
| selected = option_menu(None, ['Login', 'Register']) |
| if selected == 'Login': |
| login() |
| elif selected == 'Register': |
| register() |
| else: |
| dashboard() |