File size: 3,282 Bytes
54f831b
 
 
bc1fd1a
f8d7ccb
 
 
54f831b
e033ca1
 
bc1fd1a
54f831b
 
 
e033ca1
 
 
 
54f831b
 
 
 
 
bc1fd1a
54f831b
 
e033ca1
 
0ffcb00
e033ca1
54f831b
 
 
 
 
 
 
bc1fd1a
54f831b
e033ca1
bc1fd1a
54f831b
 
 
 
 
 
e033ca1
 
 
0ffcb00
bc1fd1a
54f831b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bc1fd1a
54f831b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e033ca1
 
 
 
 
 
 
 
 
 
 
 
 
54f831b
 
 
 
 
 
 
e033ca1
 
 
 
54f831b
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
109
110
111
112
113
114
115
116
117
import gradio as gr
from simple_salesforce import Salesforce

# Salesforce Connection
sf = Salesforce(username='[email protected]', 
                password='Lavanyanaga@123', 
                security_token='z7Wvk6mys7n8XjqbYKf3bwBh7')



# Signup Function
def signup(name, email, phone, password):
    try:
        sf.User_Login__c.create({
            'Name__c': name.strip(),
            'Email__c': email.strip(),
            'Phone__c': phone.strip(),
            'Password__c': password.strip()  # Store plain-text password
        })
        return "Signup successful! You can now login."
    except Exception as e:
        return f"Error during signup: {str(e)}"

# Login Function
def login(email, password):
    try:
        email = email.strip()
        password = password.strip()

        # Query Salesforce for user details
        query = f"SELECT Name__c, Email__c, Phone__c, Password__c FROM User_Login__c WHERE Email__c = '{email}'"
        result = sf.query(query)

        if len(result['records']) == 0:
            return "Invalid email or password.", None, None, None

        user = result['records'][0]
        stored_password = user['Password__c']

        # Compare plain-text passwords
        if password == stored_password:
            return "Login successful!", user['Name__c'], user['Email__c'], user['Phone__c']
        else:
            return "Invalid email or password.", None, None, None
    except Exception as e:
        return f"Error during login: {str(e)}", None, None, None

# Home Page Function
def home_page(name, email, phone):
    return f"Welcome, {name}! Your email is {email} and your phone number is {phone}."

# Gradio Signup Page
def signup_page(name, email, phone, password):
    response = signup(name, email, phone, password)
    return response

signup_interface = gr.Interface(
    fn=signup_page,
    inputs=[
        gr.Textbox(label="Name"),
        gr.Textbox(label="Email"),
        gr.Textbox(label="Phone"),
        gr.Textbox(label="Password", type="password"),
    ],
    outputs=gr.Textbox(label="Signup Status"),
    title="Signup Page"
)

# Gradio Login Page
def login_page(email, password):
    login_status, name, email, phone = login(email, password)
    if login_status == "Login successful!":
        return login_status, name, email, phone
    else:
        return login_status, "Error", "Error", "Error"

login_interface = gr.Interface(
    fn=login_page,
    inputs=[
        gr.Textbox(label="Email"),
        gr.Textbox(label="Password", type="password"),
    ],
    outputs=[
        gr.Textbox(label="Login Status"),
        gr.Textbox(label="Name"),
        gr.Textbox(label="Email"),
        gr.Textbox(label="Phone"),
    ],
    title="Login Page"
)

# Gradio Home Page
home_interface = gr.Interface(
    fn=home_page,
    inputs=[
        gr.Textbox(label="Name"),
        gr.Textbox(label="Email"),
        gr.Textbox(label="Phone"),
    ],
    outputs=gr.Textbox(label="Welcome Message"),
    title="Home Page"
)

# Combine All Pages in Gradio
with gr.Blocks() as app:
    with gr.Tab("Signup"):
        signup_interface.render()

    with gr.Tab("Login"):
        login_interface.render()

    with gr.Tab("Home"):
        home_interface.render()

# Launch the Gradio App
app.launch()