Skip to content

Commit 6af6b3e

Browse files
committed
switch to a single auth provider
1 parent bfdd7d4 commit 6af6b3e

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

llms/extensions/github_auth/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def __init__(self, app):
7171

7272
# Adding an Auth Provider forces Authentication to be enabled
7373
auth_provider = GitHubAuthProvider(g_app)
74-
ctx.add_auth_provider(auth_provider)
74+
ctx.set_auth_provider(auth_provider)
7575

7676
# OAuth handlers
7777
async def github_auth_handler(request):

llms/main.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2911,7 +2911,7 @@ def __init__(self, cli_args: argparse.Namespace, extra_args: Dict[str, Any]):
29112911
self.index_headers = []
29122912
self.index_footers = []
29132913
self.allowed_directories = []
2914-
self.auth_providers = []
2914+
self.auth_provider = None
29152915
self.sessions = {} # OAuth session storage: {session_token: {userId, userName, displayName, profileUrl, email, created}}
29162916
self.oauth_states = {} # CSRF protection: {state: {created, redirect_uri}}
29172917
self.request_args = {
@@ -2991,26 +2991,28 @@ def get_allowed_directories(self) -> List[str]:
29912991
"""Get the list of allowed directories."""
29922992
return self.allowed_directories
29932993

2994-
def add_auth_provider(self, auth_provider: AuthProvider) -> None:
2994+
def set_auth_provider(self, auth_provider: AuthProvider) -> None:
29952995
"""Add an authentication provider."""
2996-
self.auth_providers.append(auth_provider)
2996+
self.auth_provider = auth_provider
29972997

29982998
def is_auth_enabled(self) -> bool:
2999-
return len(self.auth_providers) > 0
2999+
return self.auth_provider is not None
30003000

30013001
def get_session(self, request: web.Request) -> Optional[Dict[str, Any]]:
3002-
for auth_provider in self.auth_providers:
3003-
session = auth_provider.get_session(request)
3004-
if session:
3005-
return session
3002+
if self.auth_provider is None:
30063003
return None
3004+
session = self.auth_provider.get_session(request)
3005+
if session:
3006+
return session
3007+
return None
30073008

30083009
def get_username(self, request: web.Request) -> Optional[str]:
3009-
for auth_provider in self.auth_providers:
3010-
username = auth_provider.get_username(request)
3011-
if username:
3012-
return username
3010+
if self.auth_provider is None:
30133011
return None
3012+
username = self.auth_provider.get_username(request)
3013+
if username:
3014+
return username
3015+
return None
30143016

30153017
def assert_username(self, request: web.Request) -> str:
30163018
if not self.is_auth_enabled():
@@ -3022,13 +3024,12 @@ def assert_username(self, request: web.Request) -> str:
30223024

30233025
def check_auth(self, request: web.Request) -> Tuple[bool, Optional[Dict[str, Any]]]:
30243026
"""Check if request is authenticated. Returns (is_authenticated, user_data)"""
3025-
if len(self.auth_providers) == 0:
3027+
if self.auth_provider is None:
30263028
return True, None
30273029

3028-
for auth_provider in self.auth_providers:
3029-
is_authenticated, user_data = auth_provider.check_auth(request)
3030-
if is_authenticated:
3031-
return True, user_data
3030+
is_authenticated, user_data = self.auth_provider.check_auth(request)
3031+
if is_authenticated:
3032+
return True, user_data
30323033

30333034
return False, None
30343035

@@ -3160,9 +3161,9 @@ def __init__(self, app: AppExtensions, path: str):
31603161
def get_client_timeout(self):
31613162
return self.app.get_client_timeout()
31623163

3163-
def add_auth_provider(self, auth_provider: AuthProvider) -> None:
3164+
def set_auth_provider(self, auth_provider: AuthProvider) -> None:
31643165
"""Add an authentication provider."""
3165-
self.app.add_auth_provider(auth_provider)
3166+
self.app.set_auth_provider(auth_provider)
31663167
self.log(f"Added Auth Provider: {auth_provider.__class__.__name__}, Authentication is now enabled")
31673168

31683169
def is_auth_enabled(self) -> bool:
@@ -4510,7 +4511,6 @@ async def config_handler(request):
45104511
ret["extensions"] = [ext.get("name") for ext in g_app.extensions]
45114512
# Add auth configuration
45124513
ret["requiresAuth"] = g_app.is_auth_enabled()
4513-
ret["authTypes"] = [provider.__class__.__name__ for provider in g_app.auth_providers]
45144514
return web.json_response(ret)
45154515

45164516
app.router.add_get("/config", config_handler)

0 commit comments

Comments
 (0)