Compare commits
1 Commits
hotfix/sso
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
073f24f851 |
@@ -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("Локальная учётная запись отключена.")
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user