fix: login with furl
This commit is contained in:
parent
f90377ac69
commit
90f1ce13cf
@ -7,6 +7,7 @@ import requests
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.backends import BaseBackend
|
from django.contrib.auth.backends import BaseBackend
|
||||||
|
from furl import furl
|
||||||
|
|
||||||
|
|
||||||
class SimpleCASBackend(BaseBackend):
|
class SimpleCASBackend(BaseBackend):
|
||||||
|
|||||||
@ -7,7 +7,7 @@ from django.contrib.auth import authenticate, login, logout
|
|||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.views import View
|
from django.views import View
|
||||||
import urllib.parse
|
from furl import furl
|
||||||
|
|
||||||
|
|
||||||
class SimpleCASLoginView(View):
|
class SimpleCASLoginView(View):
|
||||||
@ -35,8 +35,9 @@ class SimpleCASLoginView(View):
|
|||||||
service_url = request.build_absolute_uri().split("?")[
|
service_url = request.build_absolute_uri().split("?")[
|
||||||
0
|
0
|
||||||
] # Remove query params
|
] # Remove query params
|
||||||
cas_login_url = f"{settings.CAS_SERVER_URL.rstrip('/')}/login?service={urllib.parse.quote(service_url)}"
|
cas_login_url = furl(settings.CAS_SERVER_URL) / "login"
|
||||||
return redirect(cas_login_url)
|
cas_login_url.set(args={"service": service_url})
|
||||||
|
return redirect(cas_login_url.url)
|
||||||
|
|
||||||
|
|
||||||
class SimpleCASLogoutView(View):
|
class SimpleCASLogoutView(View):
|
||||||
|
|||||||
@ -15,6 +15,7 @@ dependencies = [
|
|||||||
"django-shinobi>=1.4.0",
|
"django-shinobi>=1.4.0",
|
||||||
"psycopg>=3.2.13",
|
"psycopg>=3.2.13",
|
||||||
"sentry-sdk[django]>=2.59.0",
|
"sentry-sdk[django]>=2.59.0",
|
||||||
|
"furl>=2.1.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
|
|||||||
29
uv.lock
29
uv.lock
@ -293,6 +293,19 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload-time = "2025-10-08T18:03:48.35Z" },
|
{ url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload-time = "2025-10-08T18:03:48.35Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "furl"
|
||||||
|
version = "2.1.4"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
dependencies = [
|
||||||
|
{ name = "orderedmultidict" },
|
||||||
|
{ name = "six" },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/53/e4/203a76fa2ef46cdb0a618295cc115220cbb874229d4d8721068335eb87f0/furl-2.1.4.tar.gz", hash = "sha256:877657501266c929269739fb5f5980534a41abd6bbabcb367c136d1d3b2a6015", size = 57526, upload-time = "2025-03-09T05:36:21.175Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/61/8c/dce3b1b7593858eba995b2dfdb833f872c7f863e3da92aab7128a6b11af4/furl-2.1.4-py2.py3-none-any.whl", hash = "sha256:da34d0b34e53ffe2d2e6851a7085a05d96922b5b578620a37377ff1dbeeb11c8", size = 27550, upload-time = "2025-03-09T05:36:19.928Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gunicorn"
|
name = "gunicorn"
|
||||||
version = "23.0.0"
|
version = "23.0.0"
|
||||||
@ -498,6 +511,18 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307, upload-time = "2025-07-07T09:14:16.641Z" },
|
{ url = "https://files.pythonhosted.org/packages/fa/80/eb88edc2e2b11cd2dd2e56f1c80b5784d11d6e6b7f04a1145df64df40065/opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2", size = 39000307, upload-time = "2025-07-07T09:14:16.641Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "orderedmultidict"
|
||||||
|
version = "1.0.2"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
dependencies = [
|
||||||
|
{ name = "six" },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/5c/62/61ad51f6c19d495970230a7747147ce7ed3c3a63c2af4ebfdb1f6d738703/orderedmultidict-1.0.2.tar.gz", hash = "sha256:16a7ae8432e02cc987d2d6d5af2df5938258f87c870675c73ee77a0920e6f4a6", size = 13973, upload-time = "2025-11-18T08:00:42.649Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/b2/6c/d8a02ffb24876b5f51fbd781f479fc6525a518553a4196bd0433dae9ff8e/orderedmultidict-1.0.2-py2.py3-none-any.whl", hash = "sha256:ab5044c1dca4226ae4c28524cfc5cc4c939f0b49e978efa46a6ad6468049f79b", size = 11897, upload-time = "2025-11-18T08:00:41.44Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
name = "packaging"
|
||||||
version = "25.0"
|
version = "25.0"
|
||||||
@ -699,11 +724,12 @@ wheels = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "polylan-submitter"
|
name = "polylan-submitter"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = { editable = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "django" },
|
{ name = "django" },
|
||||||
{ name = "django-shinobi" },
|
{ name = "django-shinobi" },
|
||||||
{ name = "django-vite" },
|
{ name = "django-vite" },
|
||||||
|
{ name = "furl" },
|
||||||
{ name = "gunicorn" },
|
{ name = "gunicorn" },
|
||||||
{ name = "opencv-python" },
|
{ name = "opencv-python" },
|
||||||
{ name = "pandas" },
|
{ name = "pandas" },
|
||||||
@ -733,6 +759,7 @@ requires-dist = [
|
|||||||
{ name = "django", specifier = ">=5.2.7" },
|
{ name = "django", specifier = ">=5.2.7" },
|
||||||
{ name = "django-shinobi", specifier = ">=1.4.0" },
|
{ name = "django-shinobi", specifier = ">=1.4.0" },
|
||||||
{ name = "django-vite", specifier = ">=3.1.0" },
|
{ name = "django-vite", specifier = ">=3.1.0" },
|
||||||
|
{ name = "furl", specifier = ">=2.1.4" },
|
||||||
{ name = "gunicorn", specifier = ">=23.0.0" },
|
{ name = "gunicorn", specifier = ">=23.0.0" },
|
||||||
{ name = "opencv-python", specifier = ">=4.12.0.88" },
|
{ name = "opencv-python", specifier = ">=4.12.0.88" },
|
||||||
{ name = "pandas", specifier = ">=2.3.3" },
|
{ name = "pandas", specifier = ">=2.3.3" },
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user