Skip to content

Commit fc6e216

Browse files
committed
Fix lint errors
1 parent f7fed4f commit fc6e216

File tree

5 files changed

+30
-19
lines changed

5 files changed

+30
-19
lines changed

backend/app/api/deps.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from typing import Annotated
33

44
import jwt
5-
from fastapi import Depends, HTTPException, status, Cookie
6-
from fastapi.security import OAuth2PasswordBearer, APIKeyCookie
5+
from fastapi import Depends, HTTPException, status
6+
from fastapi.security import APIKeyCookie, OAuth2PasswordBearer
77
from jwt.exceptions import InvalidTokenError
88
from pydantic import ValidationError
99
from sqlmodel import Session
@@ -18,6 +18,7 @@
1818
)
1919
cookie_scheme = APIKeyCookie(name="http_only_auth_cookie")
2020

21+
2122
def get_db() -> Generator[Session, None, None]:
2223
with Session(engine) as session:
2324
yield session
@@ -28,8 +29,8 @@ def get_db() -> Generator[Session, None, None]:
2829

2930

3031
def get_current_user(
31-
session: SessionDep,
32-
http_only_auth_cookie: str = Depends(cookie_scheme),
32+
session: SessionDep,
33+
http_only_auth_cookie: str = Depends(cookie_scheme),
3334
) -> User:
3435
if not http_only_auth_cookie:
3536
raise HTTPException(
@@ -39,9 +40,7 @@ def get_current_user(
3940

4041
try:
4142
payload = jwt.decode(
42-
http_only_auth_cookie,
43-
settings.SECRET_KEY,
44-
algorithms=[security.ALGORITHM]
43+
http_only_auth_cookie, settings.SECRET_KEY, algorithms=[security.ALGORITHM]
4544
)
4645
token_data = TokenPayload(**payload)
4746
except (InvalidTokenError, ValidationError):
@@ -61,6 +60,7 @@ def get_current_user(
6160

6261
CurrentUser = Annotated[User, Depends(get_current_user)]
6362

63+
6464
def get_current_active_superuser(current_user: CurrentUser) -> User:
6565
if not current_user.is_superuser:
6666
raise HTTPException(

backend/app/api/routes/items.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def delete_item(
100100
Delete an item.
101101
"""
102102
item = session.get(Item, id)
103+
print(current_user)
103104
if not item:
104105
raise HTTPException(status_code=404, detail="Item not found")
105106
if not current_user.is_superuser and (item.owner_id != current_user.id):

backend/app/api/routes/login.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
from fastapi import APIRouter, Depends, HTTPException
55
from fastapi.responses import HTMLResponse, JSONResponse
66
from fastapi.security import OAuth2PasswordRequestForm
7+
78
from app import crud
8-
from app.api.deps import CurrentUser, SessionDep, get_current_active_superuser, get_current_user
9+
from app.api.deps import (
10+
CurrentUser,
11+
SessionDep,
12+
get_current_active_superuser,
13+
get_current_user,
14+
)
915
from app.core import security
1016
from app.core.config import settings
1117
from app.core.security import get_password_hash
12-
from app.models import Message, NewPassword, Token, UserPublic
18+
from app.models import Message, NewPassword, UserPublic
1319
from app.utils import (
1420
generate_password_reset_token,
1521
generate_reset_password_email,
@@ -22,7 +28,7 @@
2228

2329
@router.post("/login/access-token")
2430
def login_access_token(
25-
session: SessionDep, form_data: Annotated[OAuth2PasswordRequestForm, Depends()]
31+
session: SessionDep, form_data: Annotated[OAuth2PasswordRequestForm, Depends()]
2632
) -> JSONResponse:
2733
"""
2834
OAuth2-compatible token login: get an access token for future requests (sent in an HTTP-only cookie)
@@ -35,7 +41,9 @@ def login_access_token(
3541
elif not user.is_active:
3642
raise HTTPException(status_code=400, detail="Inactive user")
3743
access_token_expires = timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
38-
return security.set_auth_cookie(user.id, access_token_expires)
44+
r = security.set_auth_cookie(user.id, access_token_expires)
45+
print(r)
46+
return r
3947

4048

4149
@router.post("/login/test-token", response_model=UserPublic)

backend/app/api/routes/users.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
CurrentUser,
1010
SessionDep,
1111
get_current_active_superuser,
12+
get_current_user,
1213
)
1314
from app.core.config import settings
1415
from app.core.security import get_password_hash, verify_password
@@ -117,15 +118,16 @@ def update_password_me(
117118
return Message(message="Password updated successfully")
118119

119120

120-
@router.get("/me", response_model=UserPublic)
121+
@router.get("/me", response_model=UserPublic, dependencies=[Depends(get_current_user)])
121122
def read_user_me(current_user: CurrentUser) -> Any:
122123
"""
123124
Get current user.
124125
"""
126+
print(current_user)
125127
return current_user
126128

127129

128-
@router.delete("/me", response_model=Message)
130+
@router.delete("/me", response_model=Message, dependencies=[Depends(get_current_user)])
129131
def delete_user_me(session: SessionDep, current_user: CurrentUser) -> Any:
130132
"""
131133
Delete own user.

backend/app/core/security.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import os
21
from datetime import datetime, timedelta, timezone
32
from typing import Any
3+
44
import jwt
5-
from passlib.context import CryptContext
6-
from fastapi.responses import JSONResponse
75
from fastapi import Response
6+
from fastapi.responses import JSONResponse
7+
from passlib.context import CryptContext
8+
89
from app.core.config import settings
910

1011
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
@@ -21,9 +22,7 @@ def create_access_token(subject: str | Any, expires_delta: timedelta) -> str:
2122

2223
def set_auth_cookie(subject: str | Any, expires_delta: timedelta) -> Response:
2324
access_token = create_access_token(subject, expires_delta)
24-
response = JSONResponse(
25-
content={"message": "Login successful"}
26-
)
25+
response = JSONResponse(content={"message": "Login successful"})
2726
# Note: The secure flag on cookies ensures they're only sent over encrypted HTTPS connections. For local development (HTTP) set it to False
2827
response.set_cookie(
2928
key="http_only_auth_cookie",
@@ -33,6 +32,7 @@ def set_auth_cookie(subject: str | Any, expires_delta: timedelta) -> Response:
3332
expires=3600,
3433
samesite="lax",
3534
secure=True,
35+
domain=None,
3636
)
3737
return response
3838

0 commit comments

Comments
 (0)