Compare commits

..
Author SHA1 Message Date
dependabot[bot] 614048140f [UPDATE] Update phonenumbers requirement
Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) to permit the latest version.
- [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.40...v9.0.41)

---
updated-dependencies:
- dependency-name: phonenumbers
  dependency-version: 9.0.41
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-13 00:34:24 +00:00
thomas girod b560c6860b Merge pull request #1510 from ae-utbm/forum-message-403
short-circuit `ForumMessageView` redirection on 403
2026-10-13 00:12:07 +02:00
imperosol 22b510e25b short-circuit ForumMessageView redirection on 403
Quand on accède à cette vue, on est immédiatement redirigé vers le topic correspondant (quitte à se faire 403 une fois arrivé là). Comme la redirection est une opération qui a un cout, on peut gagner du temps en mettant un PermissionDenied directement (d'autant plus que les bots aiment beaucoup rechercher les messages du forum, et qu'ils se font systématiquement 403)
2026-10-09 16:09:54 +02:00
3 changed files with 10 additions and 8 deletions

No files matched your search

+5 -2
View File
@@ -346,13 +346,16 @@ class ForumTopicDetailView(CanViewMixin, DetailView):
return kwargs return kwargs
class ForumMessageView(SingleObjectMixin, RedirectView): class ForumMessageView(SingleObjectMixin, UserPassesTestMixin, RedirectView):
model = ForumMessage model = ForumMessage
pk_url_kwarg = "message_id" pk_url_kwarg = "message_id"
permanent = False permanent = False
def get_redirect_url(self, *args, **kwargs): def test_func(self) -> bool:
self.object = self.get_object() self.object = self.get_object()
return self.request.user.can_view(self.object)
def get_redirect_url(self, *args, **kwargs):
return self.object.get_url() return self.object.get_url()
+1 -1
View File
@@ -27,7 +27,7 @@ dependencies = [
"django-jinja<3.0.0,>=2.11.0", "django-jinja<3.0.0,>=2.11.0",
"cryptography>=50.0.2,<51.0.0", "cryptography>=50.0.2,<51.0.0",
"django-phonenumber-field>=8.5.0,<9.0.0", "django-phonenumber-field>=8.5.0,<9.0.0",
"phonenumbers>=9.0.40,<10.0.0", "phonenumbers>=9.0.41,<10.0.0",
"reportlab>=5.0.1,<6.0.0", "reportlab>=5.0.1,<6.0.0",
"django-haystack>=3.4.0,<4.0.0", "django-haystack>=3.4.0,<4.0.0",
"xapian-haystack>=4.0.0,<5.0.0", "xapian-haystack>=4.0.0,<5.0.0",
Generated
+4 -5
View File
@@ -1,5 +1,5 @@
version = 1 version = 1
revision = 5 revision = 3
requires-python = ">=3.14, <4.0" requires-python = ">=3.14, <4.0"
[[package]] [[package]]
@@ -840,11 +840,11 @@ wheels = [
[[package]] [[package]]
name = "filelock" name = "filelock"
version = "4.2.1" version = "4.0.9"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d5/98/771d8ca889f220d7d7e352addf500666368f0fd081c6080a83767580c6e4/filelock-4.2.1.tar.gz", hash = "sha256:c4c937ccac2a813cee448e662a56366cfb374c0f8702e75f295c412cc1c5d5a3", size = 650997, upload-time = "2026-10-17T16:48:14.435Z" } sdist = { url = "https://files.pythonhosted.org/packages/70/51/2bc9e529f154fad99b6cd0073e609291eb32fd23581b32362d33d164d316/filelock-4.0.9.tar.gz", hash = "sha256:635e7d67fa92654eed444e75e9ca18426d34e77ad9c469bf4373f75a932f7b22", size = 251200, upload-time = "2026-10-01T23:09:14.029Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/28/00/db89d339bc4ecdc8087fa7b8607ba22ffc27bf96286f340c9620bea428b3/filelock-4.2.1-py3-none-any.whl", hash = "sha256:7be2662e9e826b9bba28afc0f843a123280d799a2ea44bb5d35ccec67905ae44", size = 162455, upload-time = "2026-10-17T16:48:12.937Z" }, { url = "https://files.pythonhosted.org/packages/01/4f/83454fafd628e1e7e1726d74e44fb2332be5969d04c6182ca1fecb6c580e/filelock-4.0.9-py3-none-any.whl", hash = "sha256:9287fd61b99a806e5202be29a83034c0808a1b9830e820537c2f5773981f7eeb", size = 110368, upload-time = "2026-10-01T23:09:12.391Z" },
] ]
[[package]] [[package]]
@@ -1919,7 +1919,6 @@ wheels = [
name = "sith" name = "sith"
version = "3" version = "3"
source = { editable = "." } source = { editable = "." }
default-groups = ["dev", "docs", "tests"]
dependencies = [ dependencies = [
{ name = "aemark" }, { name = "aemark" },
{ name = "celery", extra = ["redis"] }, { name = "celery", extra = ["redis"] },