Skip to content

Commit 441679c

Browse files
authored
fix: DIA-1935: fix JWT feature flag (#7128)
1 parent db6754a commit 441679c

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

label_studio/jwt_auth/middleware.py

+14-20
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,21 @@ def __call__(self, request):
1818
from rest_framework_simplejwt.authentication import JWTAuthentication
1919
from rest_framework_simplejwt.exceptions import AuthenticationFailed, InvalidToken, TokenError
2020

21-
JWT_ACCESS_TOKEN_ENABLED = flag_set('fflag__feature_develop__prompts__dia_1829_jwt_token_auth')
22-
if JWT_ACCESS_TOKEN_ENABLED:
23-
try:
24-
user_and_token = JWTAuthentication().authenticate(request)
25-
if not user_and_token:
26-
logger.debug('JWT auth could not resolve user/token')
27-
return self.get_response(request)
28-
21+
try:
22+
user_and_token = JWTAuthentication().authenticate(request)
23+
if user_and_token:
2924
user = User.objects.get(pk=user_and_token[0].pk)
30-
if user.active_organization.jwt.api_tokens_enabled:
31-
logger.debug('JWT auth resolved user/token')
25+
JWT_ACCESS_TOKEN_ENABLED = flag_set(
26+
'fflag__feature_develop__prompts__dia_1829_jwt_token_auth', user=user
27+
)
28+
if JWT_ACCESS_TOKEN_ENABLED and user.active_organization.jwt.api_tokens_enabled:
3229
request.user = user
3330
request.is_jwt = True
34-
else:
35-
logger.debug('JWT auth resolved user/token, but org does not have jwt enabled')
36-
37-
except User.DoesNotExist:
38-
logger.info('JWT authentication failed: User no longer exists')
39-
return JsonResponse({'detail': 'User not found'}, status=status.HTTP_401_UNAUTHORIZED)
40-
except (AuthenticationFailed, InvalidToken, TokenError) as e:
41-
logger.info('JWT authentication failed: %s', e)
42-
# don't raise 401 here, fallback to other auth methods (in case token is valid for them)
43-
# (have unit tests verifying that this still results in a 401 if other auth mechanisms fail)
31+
except User.DoesNotExist:
32+
logger.info('JWT authentication failed: User no longer exists')
33+
return JsonResponse({'detail': 'User not found'}, status=status.HTTP_401_UNAUTHORIZED)
34+
except (AuthenticationFailed, InvalidToken, TokenError) as e:
35+
logger.info('JWT authentication failed: %s', e)
36+
# don't raise 401 here, fallback to other auth methods (in case token is valid for them)
37+
# (have unit tests verifying that this still results in a 401 if other auth mechanisms fail)
4438
return self.get_response(request)

0 commit comments

Comments
 (0)