Gagan0141 commited on
Commit
7cbd08c
Β·
verified Β·
1 Parent(s): f48e9bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -10
app.py CHANGED
@@ -53,8 +53,16 @@ def login(username, password):
53
  def logout():
54
  return "βœ… Logged out successfully!", None
55
 
56
- def download_db():
57
- if os.path.exists(DB_PATH):
 
 
 
 
 
 
 
 
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
- # logout clears user
88
- logout_btn.click(logout, outputs=[home_status, current_user])
89
 
90
- # allow admin to download DB
91
- login_btn.click(fn=lambda u: "Welcome Home!" if u else "❌ Please login first.",
92
- inputs=current_user, outputs=home_status)
93
 
94
- login_btn.click(fn=lambda u: download_db() if u == "Admin" else None,
95
- inputs=current_user, outputs=download_btn)
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()