Add authentication check to event-related API routes
Ensure that all event-related endpoints verify the presence of a valid authenticated user before proceeding. Raise a 401 Unauthorized error if authentication credentials are missing or invalid, enhancing the security of API routes.
This commit is contained in:
@@ -36,6 +36,12 @@ def create_event(
|
|||||||
current_user: User = Depends(get_current_user)
|
current_user: User = Depends(get_current_user)
|
||||||
) -> EventResponse:
|
) -> EventResponse:
|
||||||
"""Create a new event."""
|
"""Create a new event."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
# Check if slug is already taken
|
# Check if slug is already taken
|
||||||
if event.get_by_slug(db, slug=event_in.slug):
|
if event.get_by_slug(db, slug=event_in.slug):
|
||||||
@@ -69,6 +75,12 @@ def get_user_events(
|
|||||||
current_user: User = Depends(get_current_user)
|
current_user: User = Depends(get_current_user)
|
||||||
) -> Dict[str, Any]:
|
) -> Dict[str, Any]:
|
||||||
"""Get all events created by the current user with pagination."""
|
"""Get all events created by the current user with pagination."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
total = event.count_user_events(
|
total = event.count_user_events(
|
||||||
db=db,
|
db=db,
|
||||||
@@ -166,6 +178,12 @@ def get_event(
|
|||||||
current_user: User = Depends(get_current_user)
|
current_user: User = Depends(get_current_user)
|
||||||
) -> EventResponse:
|
) -> EventResponse:
|
||||||
"""Get event by ID."""
|
"""Get event by ID."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
event_obj = event.get(db=db, id=event_id)
|
event_obj = event.get(db=db, id=event_id)
|
||||||
if not event_obj:
|
if not event_obj:
|
||||||
@@ -209,6 +227,12 @@ def get_public_event(
|
|||||||
current_user: Optional[User] = Depends(get_optional_current_user)
|
current_user: Optional[User] = Depends(get_optional_current_user)
|
||||||
) -> EventResponse:
|
) -> EventResponse:
|
||||||
"""Get public event by slug."""
|
"""Get public event by slug."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
event_obj = event.get_public_event(db=db, slug=slug, access_code=access_code)
|
event_obj = event.get_public_event(db=db, slug=slug, access_code=access_code)
|
||||||
if not event_obj:
|
if not event_obj:
|
||||||
@@ -246,6 +270,12 @@ def update_event(
|
|||||||
current_user: User = Depends(get_current_user)
|
current_user: User = Depends(get_current_user)
|
||||||
) -> EventResponse:
|
) -> EventResponse:
|
||||||
"""Update event."""
|
"""Update event."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
event_obj = event.get(db=db, id=event_id)
|
event_obj = event.get(db=db, id=event_id)
|
||||||
if not event_obj:
|
if not event_obj:
|
||||||
@@ -304,6 +334,12 @@ def delete_event(
|
|||||||
hard_delete: bool = Query(False, description="Perform hard delete instead of soft delete")
|
hard_delete: bool = Query(False, description="Perform hard delete instead of soft delete")
|
||||||
):
|
):
|
||||||
"""Delete event (soft delete by default)."""
|
"""Delete event (soft delete by default)."""
|
||||||
|
if current_user is None:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="Invalid authentication credentials",
|
||||||
|
headers={"WWW-Authenticate": "Bearer"},
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
event_obj = event.get(db=db, id=event_id)
|
event_obj = event.get(db=db, id=event_id)
|
||||||
if not event_obj:
|
if not event_obj:
|
||||||
|
|||||||
Reference in New Issue
Block a user