1 Commits

Author SHA1 Message Date
Aleksandr Meshchryakov
073f24f851 style(auth): format SSO implementation [skip ci] 2026-09-21 16:44:56 +02:00
3 changed files with 12 additions and 6 deletions

View File

@@ -132,7 +132,9 @@ def verify_sso_token(encoded_token: str) -> SsoClaims:
validate_email(email) validate_email(email)
User._meta.get_field("username").run_validators(username) User._meta.get_field("username").run_validators(username)
except DjangoValidationError as exc: except DjangoValidationError as exc:
raise SsoAuthenticationError("Некорректные данные пользователя в SSO-токене.") from exc raise SsoAuthenticationError(
"Некорректные данные пользователя в SSO-токене."
) from exc
return SsoClaims( return SsoClaims(
issuer=str(payload["iss"]), issuer=str(payload["iss"]),
@@ -191,7 +193,9 @@ def provision_sso_user(claims: SsoClaims):
or len(email_users) != 1 or len(email_users) != 1
or email_users[0].id != username_user.id or email_users[0].id != username_user.id
): ):
raise SsoAuthenticationError("Неоднозначное совпадение локальной учётной записи.") raise SsoAuthenticationError(
"Неоднозначное совпадение локальной учётной записи."
)
user = username_user user = username_user
if not user.is_active: if not user.is_active:
raise SsoAuthenticationError("Локальная учётная запись отключена.") raise SsoAuthenticationError("Локальная учётная запись отключена.")

View File

@@ -76,7 +76,11 @@ class SsoStartView(APIView):
required=False, required=False,
) )
], ],
responses={307: "Переход к провайдеру SSO", 400: "Некорректный путь", 503: "SSO отключён"}, responses={
307: "Переход к провайдеру SSO",
400: "Некорректный путь",
503: "SSO отключён",
},
) )
def get(self, request): def get(self, request):
if not settings.SSO_ENABLED: if not settings.SSO_ENABLED:

View File

@@ -175,9 +175,7 @@ class LogoutView(APIView):
@swagger_auto_schema( @swagger_auto_schema(
tags=[AUTH_TAG], tags=[AUTH_TAG],
operation_summary="Выход", operation_summary="Выход",
operation_description=( operation_description=("Завершение Django-сессии; JWT удаляются на клиенте."),
"Завершение Django-сессии; JWT удаляются на клиенте."
),
responses={200: "Успешный выход"}, responses={200: "Успешный выход"},
) )
def post(self, request): def post(self, request):