Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -53,8 +53,16 @@ def login(username, password):
|
|
| 53 |
def logout():
|
| 54 |
return "β
Logged out successfully!", None
|
| 55 |
|
| 56 |
-
def
|
| 57 |
-
if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
return DB_PATH
|
| 59 |
return None
|
| 60 |
|
|
@@ -62,6 +70,8 @@ def download_db():
|
|
| 62 |
with gr.Blocks() as demo:
|
| 63 |
gr.Markdown("## π Simple Login System with Signup & DB Download")
|
| 64 |
|
|
|
|
|
|
|
| 65 |
with gr.Tab("Signup"):
|
| 66 |
signup_user = gr.Textbox(label="Username")
|
| 67 |
signup_pass = gr.Textbox(label="Password", type="password")
|
|
@@ -75,7 +85,6 @@ with gr.Blocks() as demo:
|
|
| 75 |
login_pass = gr.Textbox(label="Password", type="password")
|
| 76 |
login_btn = gr.Button("Login")
|
| 77 |
login_status = gr.Textbox(label="Login Status", interactive=False)
|
| 78 |
-
current_user = gr.State() # store logged-in user
|
| 79 |
|
| 80 |
login_btn.click(login, inputs=[login_user, login_pass], outputs=[login_status, current_user])
|
| 81 |
|
|
@@ -84,14 +93,13 @@ with gr.Blocks() as demo:
|
|
| 84 |
logout_btn = gr.Button("Logout")
|
| 85 |
download_btn = gr.File(label="Download DB", interactive=False)
|
| 86 |
|
| 87 |
-
#
|
| 88 |
-
|
| 89 |
|
| 90 |
-
#
|
| 91 |
-
|
| 92 |
-
inputs=current_user, outputs=home_status)
|
| 93 |
|
| 94 |
-
|
| 95 |
-
|
| 96 |
|
| 97 |
demo.launch()
|
|
|
|
| 53 |
def logout():
|
| 54 |
return "β
Logged out successfully!", None
|
| 55 |
|
| 56 |
+
def update_home(user):
|
| 57 |
+
if user == "Admin":
|
| 58 |
+
return "π Welcome Admin! You can download the DB."
|
| 59 |
+
elif user:
|
| 60 |
+
return f"π Welcome Home, {user}!"
|
| 61 |
+
else:
|
| 62 |
+
return "β Please login first."
|
| 63 |
+
|
| 64 |
+
def download_db(user):
|
| 65 |
+
if user == "Admin" and os.path.exists(DB_PATH):
|
| 66 |
return DB_PATH
|
| 67 |
return None
|
| 68 |
|
|
|
|
| 70 |
with gr.Blocks() as demo:
|
| 71 |
gr.Markdown("## π Simple Login System with Signup & DB Download")
|
| 72 |
|
| 73 |
+
current_user = gr.State()
|
| 74 |
+
|
| 75 |
with gr.Tab("Signup"):
|
| 76 |
signup_user = gr.Textbox(label="Username")
|
| 77 |
signup_pass = gr.Textbox(label="Password", type="password")
|
|
|
|
| 85 |
login_pass = gr.Textbox(label="Password", type="password")
|
| 86 |
login_btn = gr.Button("Login")
|
| 87 |
login_status = gr.Textbox(label="Login Status", interactive=False)
|
|
|
|
| 88 |
|
| 89 |
login_btn.click(login, inputs=[login_user, login_pass], outputs=[login_status, current_user])
|
| 90 |
|
|
|
|
| 93 |
logout_btn = gr.Button("Logout")
|
| 94 |
download_btn = gr.File(label="Download DB", interactive=False)
|
| 95 |
|
| 96 |
+
# Update home page whenever current_user changes
|
| 97 |
+
current_user.change(update_home, inputs=current_user, outputs=home_status)
|
| 98 |
|
| 99 |
+
# Logout clears user
|
| 100 |
+
logout_btn.click(logout, outputs=[home_status, current_user])
|
|
|
|
| 101 |
|
| 102 |
+
# Enable DB download only for Admin
|
| 103 |
+
current_user.change(download_db, inputs=current_user, outputs=download_btn)
|
| 104 |
|
| 105 |
demo.launch()
|