Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from streamlit_option_menu import option_menu | |
| from home import dashboard | |
| import os | |
| from pymongo import MongoClient | |
| if 'user' not in st.session_state: | |
| st.session_state['user'] = 'visitor' | |
| uri = os.environ["MONGO_CONNECTION_STRING"] | |
| client = MongoClient(uri, tlsCertificateKeyFile="cert.pem") | |
| db = client["reshav"] | |
| col=db["mine"] | |
| try: | |
| client.admin.command("ping") | |
| print("Connection Established!") | |
| except Exception as e: | |
| print(e) | |
| def login(): | |
| st.title("Login") | |
| usrname = st.text_input("Username") | |
| password = st.text_input("Password", type="password") | |
| if st.button("Login", key="loginkey"): | |
| document = col.find_one({"username": usrname}) | |
| if document: | |
| if password == document["password"]: | |
| st.session_state.user = "logged" | |
| st.experimental_rerun() | |
| else: | |
| st.error("Incorrect Password") | |
| elif password == "go": | |
| st.session_state.user = usrname | |
| st.experimental_rerun() | |
| else: | |
| st.error("Incorrect Username") | |
| def signup(): | |
| st.title("Signup") | |
| username = st.text_input("Username") | |
| password = st.text_input("Password", type="password") | |
| confirm_password = st.text_input("Confirm Password", type="password") | |
| if st.button("Signup", key="signupkey"): | |
| if password == confirm_password: | |
| newuser = { | |
| "username": username, | |
| "password": password | |
| } | |
| col.insert_one(newuser) | |
| st.success("Account created") | |
| else: | |
| st.error("Passwords do not match") | |
| def main(): | |
| if st.session_state["user"] == "visitor": | |
| option = option_menu( | |
| menu_title="Authentication", | |
| options=["Login", "Signup"], | |
| ) | |
| if option == "Login": | |
| login() | |
| elif option == "Signup": | |
| signup() | |
| elif st.session_state["user"] == "logged": | |
| dashboard() | |
| main() |