Oauth_test / app.py
Chris Addis
more tests
ef9edfd
import gradio as gr
import os
#from huggingface_hub import HfApi, hf_hub_url, whoami
import json
# Get authorized users from environment variable/secret
authorized_users_str = os.environ.get("AUTHORIZED_USER_IDS", "")
AUTHORIZED_USER_IDS = set(authorized_users_str.split(',') if authorized_users_str and authorized_users_str.strip() else [])
# Function to check authorization
def check_authorization(profile: gr.OAuthProfile | None):
if profile is None:
return False, "Not logged in. Please Login for full access.", False
is_authorized = profile.username in AUTHORIZED_USER_IDS
if is_authorized:
message = f"Welcome {profile.username}! You are authorized."
else:
message = f"Sorry {profile.username}, you are not authorized."
return is_authorized, message
# Initialize UI components
with gr.Blocks() as demo:
# Create a State component to store authentication status
auth_state = gr.State(False)
login_button = gr.LoginButton()
# Message component to show auth status
auth_message = gr.Textbox(label="Authorization Status", interactive=False)
status_message = gr.Textbox(label="Status", interactive=False)
demo.load(check_authorization, inputs=None, outputs=[auth_state,status_message])
def test_func(auth_state):
return auth_state
login_button.click(fn=test_func,inputs=auth_state,outputs=auth_message)
demo.launch()