Skip to content

Commit 20d35eb

Browse files
committed
Clean up current-user dependencies
1 parent 783e6e8 commit 20d35eb

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

fractal_server/app/routes/auth/__init__.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,36 @@ def get_jwt_cookie_strategy() -> JWTStrategy:
4949
get_user_manager,
5050
[token_backend, cookie_backend],
5151
)
52+
53+
# Current-user dependencies
5254
current_user_act = fastapi_users.current_user(active=True)
5355
current_user_act_ver = fastapi_users.current_user(
5456
active=True,
5557
verified=True,
5658
)
57-
current_superuser_act = fastapi_users.current_user(
58-
active=True,
59-
superuser=True,
60-
)
61-
62-
current_user = fastapi_users.current_user()
6359

6460

6561
async def current_user_act_ver_prof(
66-
user: UserOAuth = Depends(current_user),
62+
user: UserOAuth = Depends(current_user_act_ver),
6763
) -> UserOAuth:
68-
if any(
69-
(
70-
not user.is_active,
71-
not user.is_verified,
72-
user.profile_id is None,
73-
)
74-
):
64+
"""
65+
Require a active&verified user, with a non-null `profile_id`.
66+
67+
Raises 401 if user does not exist or is not active.
68+
Raises 403 if user is not verified or has null `profile_id`.
69+
"""
70+
if user.profile_id is None:
7571
raise HTTPException(
7672
status_code=status.HTTP_403_FORBIDDEN,
77-
detail="Forbidden access.",
73+
detail=(
74+
f"Forbidden access "
75+
f"({user.is_verified=} {user.profile_id=})."
76+
),
7877
)
7978
return user
79+
80+
81+
current_superuser_act = fastapi_users.current_user(
82+
active=True,
83+
superuser=True,
84+
)

fractal_server/app/routes/auth/current_user.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from fractal_server.app.models import UserGroup
1717
from fractal_server.app.models import UserOAuth
1818
from fractal_server.app.routes.auth import current_user_act
19-
from fractal_server.app.routes.auth import current_user_act_ver_prof
2019
from fractal_server.app.routes.auth._aux_auth import (
2120
_get_single_user_with_groups,
2221
)
@@ -52,7 +51,7 @@ async def get_current_user(
5251
@router_current_user.patch("/current-user/", response_model=UserRead)
5352
async def patch_current_user(
5453
user_update: UserUpdateStrict,
55-
current_user: UserOAuth = Depends(current_user_act_ver_prof),
54+
current_user: UserOAuth = Depends(current_user_act),
5655
user_manager: UserManager = Depends(get_user_manager),
5756
db: AsyncSession = Depends(get_async_db),
5857
):

0 commit comments

Comments
 (0)