|
5 | 5 | from makefun import with_signature
|
6 | 6 |
|
7 | 7 | from polar.auth.scope import RESERVED_SCOPES, Scope
|
8 |
| -from polar.config import settings |
9 | 8 | from polar.exceptions import NotPermitted, Unauthorized
|
10 |
| -from polar.models import OAuth2Token, PersonalAccessToken |
| 9 | +from polar.models import OAuth2Token, PersonalAccessToken, UserSession |
11 | 10 | from polar.oauth2.dependencies import get_optional_token
|
12 | 11 | from polar.oauth2.exceptions import InsufficientScopeError, InvalidTokenError
|
13 | 12 | from polar.personal_access_token.dependencies import get_optional_personal_access_token
|
|
24 | 23 | User,
|
25 | 24 | is_anonymous,
|
26 | 25 | )
|
27 |
| -from .service import AuthService |
| 26 | +from .service import auth as auth_service |
28 | 27 |
|
29 | 28 |
|
30 |
| -async def _get_cookie_token(request: Request) -> str | None: |
31 |
| - return request.cookies.get(settings.AUTH_COOKIE_KEY) |
| 29 | +async def get_user_session( |
| 30 | + request: Request, session: AsyncSession = Depends(get_db_session) |
| 31 | +) -> UserSession | None: |
| 32 | + return await auth_service.authenticate(session, request) |
32 | 33 |
|
33 | 34 |
|
34 | 35 | async def get_auth_subject(
|
35 |
| - cookie_token: str | None = Depends(_get_cookie_token), |
| 36 | + user_session: UserSession | None = Depends(get_user_session), |
36 | 37 | oauth2_credentials: tuple[OAuth2Token | None, bool] = Depends(get_optional_token),
|
37 | 38 | personal_access_token_credentials: tuple[
|
38 | 39 | PersonalAccessToken | None, bool
|
39 | 40 | ] = Depends(get_optional_personal_access_token),
|
40 |
| - session: AsyncSession = Depends(get_db_session), |
41 | 41 | ) -> AuthSubject[Subject]:
|
42 |
| - if cookie_token is not None: |
43 |
| - user = await AuthService.get_user_from_cookie(session, cookie=cookie_token) |
44 |
| - if user: |
45 |
| - scopes = {Scope.web_default} |
46 |
| - if user.github_username in { |
47 |
| - "birkjernstrom", |
48 |
| - "frankie567", |
49 |
| - "emilwidlund", |
50 |
| - }: |
51 |
| - scopes.add(Scope.admin) |
52 |
| - return AuthSubject(user, scopes, AuthMethod.COOKIE) |
| 42 | + # Web session |
| 43 | + if user_session is not None: |
| 44 | + user = user_session.user |
| 45 | + scopes = {Scope.web_default} |
| 46 | + if user.github_username in { |
| 47 | + "birkjernstrom", |
| 48 | + "frankie567", |
| 49 | + "emilwidlund", |
| 50 | + }: |
| 51 | + scopes.add(Scope.admin) |
| 52 | + return AuthSubject(user, scopes, AuthMethod.COOKIE) |
53 | 53 |
|
54 | 54 | oauth2_token, oauth2_authorization_set = oauth2_credentials
|
55 | 55 | personal_access_token, personal_access_token_authorization_set = (
|
|
0 commit comments