File size: 2,812 Bytes
0a3fd1d
628cc1b
0a3fd1d
7afc158
1872732
7afc158
 
e95ce1e
7afc158
 
1872732
7afc158
 
 
63137e4
 
7afc158
 
c73dbd6
7afc158
c73dbd6
7afc158
 
 
 
 
 
 
 
 
 
0a3fd1d
 
60686d3
0a3fd1d
 
 
 
 
 
 
 
 
 
239d89f
 
 
319e034
0a3fd1d
 
239d89f
 
84150a6
239d89f
 
 
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
0a3fd1d
c73dbd6
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
d29cbfa
c73dbd6
 
0a3fd1d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import streamlit as st
from home import Dashboard
from streamlit_option_menu import option_menu
import pymongo
# from dotenv import load_dotenv
import os
import re
import google.generativeai as genai


# load_dotenv()

from pymongo.mongo_client import MongoClient

# uri = os.environ["MONGO_CONNECTION_STRING"]
uri =  "mongodb+srv://cluster0.j2p0gjo.mongodb.net/?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority"

# Create a new client and connect to the server
client = MongoClient(uri, tlsCertificateKeyFile="cert.pem")

db = client["mydata"]

col = db["Users"]

# Send a ping to confirm a successful connection
try:
    client.admin.command('ping')
    print("Pinged your deployment. You successfully connected to MongoDB!")
except Exception as e:
    print(e)



# st.set_page_config(page_title="Authentication", page_icon=":guardsman:", layout="wide")

# st.title("Authentication")



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 = "logged"
            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! You can now login.")  
            st.snow() 
            st.cache_data.clear()
        else:
            st.error("Passwords do not match")
        
def main():
    # st.title("Authentication")
    if "user" not in st.session_state:
        st.session_state["user"] = "visitor"



    if st.session_state["user"] == "visitor":
   
        option = option_menu(
            menu_title="Authentication",
            options=["Login", "Signup"],
            icons=["house", "activity"],
            menu_icon="cast",
            default_index=0,
            orientation="horizontal",

        )
        if option == "Login":
            login()
        elif option == "Signup":
            signup()
    elif st.session_state["user"] == "logged":
        Dashboard()

    


main()