Fixed logout + cleanup

This commit is contained in:
Tris Forster 2026-05-11 22:53:31 +10:00
parent b3675e28af
commit 75dced77b8
2 changed files with 74 additions and 25 deletions

View File

@ -5,33 +5,76 @@ from django.views.generic.base import RedirectView
from . import views from . import views
urlpatterns = [ urlpatterns = [
path("", RedirectView.as_view(url="projects", permanent=False), name="home"),
path('', RedirectView.as_view(url='projects', permanent=False), name='home'), path("login", auth_views.LoginView.as_view(), name="login"),
path("logout", views.logout_view, name="logout"),
path('login', auth_views.LoginView.as_view(), name='login'), path(
path('logout', auth_views.LogoutView.as_view(), name='logout'), "forget/<resource>/<key>",
path('forget/<resource>/<key>', views.ForgetResourceView.as_view(), name="forget_resource"), views.ForgetResourceView.as_view(),
name="forget_resource",
path('ensembles', views.EnsembleListView.as_view(), name="ensemble_list"), ),
path('ensembles/<slug:ensemble>', views.EnsembleDetailView.as_view(), name='ensemble_detail'), path("ensembles", views.EnsembleListView.as_view(), name="ensemble_list"),
path('ensembles/<slug:ensemble>/new-project', views.ProjectCreateView.as_view(), name="project_create"), path(
"ensembles/<slug:ensemble>",
path('projects', views.ProjectListView.as_view(), name="project_list"), views.EnsembleDetailView.as_view(),
path('projects/<int:project>', views.ProjectDetailView.as_view(), name="project_detail"), name="ensemble_detail",
path('projects/<int:project>/edit', views.ProjectUpdateView.as_view(), name="project_edit"), ),
#path('projects/<int:project>/submissions.mk', views.ProjectMakefileView.as_view(), name="project_makefile"), path(
"ensembles/<slug:ensemble>/new-project",
path('projects/<int:project>/page/create', views.WikiCreateView.as_view(), name="wiki_create"), views.ProjectCreateView.as_view(),
path('projects/<int:project>/page/<int:pk>', views.WikiView.as_view(), name="wiki"), name="project_create",
path('projects/<int:project>/page/<int:pk>/edit', views.WikiEditView.as_view(), name="wiki_edit"), ),
path("projects", views.ProjectListView.as_view(), name="project_list"),
path('projects/<int:project>/resources', views.ResourceListView.as_view(), name="resource_list"), path(
path('projects/<int:project>/resources/add', views.ResourceCreateView.as_view(), name="resource_create"), "projects/<int:project>",
path('projects/<int:project>/resources/<int:pk>/upload', views.ResourceUploadView.as_view(), name="resource_upload"), views.ProjectDetailView.as_view(),
path('projects/<int:project>/resources/<int:pk>/edit', views.ResourceEditView.as_view(), name="resource_edit"), name="project_detail",
),
path(
"projects/<int:project>/edit",
views.ProjectUpdateView.as_view(),
name="project_edit",
),
# path('projects/<int:project>/submissions.mk', views.ProjectMakefileView.as_view(), name="project_makefile"),
path(
"projects/<int:project>/page/create",
views.WikiCreateView.as_view(),
name="wiki_create",
),
path("projects/<int:project>/page/<int:pk>", views.WikiView.as_view(), name="wiki"),
path(
"projects/<int:project>/page/<int:pk>/edit",
views.WikiEditView.as_view(),
name="wiki_edit",
),
path(
"projects/<int:project>/resources",
views.ResourceListView.as_view(),
name="resource_list",
),
path(
"projects/<int:project>/resources/add",
views.ResourceCreateView.as_view(),
name="resource_create",
),
path(
"projects/<int:project>/resources/<int:pk>/upload",
views.ResourceUploadView.as_view(),
name="resource_upload",
),
path(
"projects/<int:project>/resources/<int:pk>/edit",
views.ResourceEditView.as_view(),
name="resource_edit",
),
] ]
from django.conf import settings from django.conf import settings
if settings.DEBUG: if settings.DEBUG:
from django.views.static import serve from django.views.static import serve
urlpatterns.append(path('local_storage/<path:path>', serve, {'document_root': 'local_storage'}))
urlpatterns.append(
path("local_storage/<path:path>", serve, {"document_root": "local_storage"})
)

View File

@ -10,6 +10,7 @@ from django.views.generic.edit import CreateView, UpdateView
from django.core.exceptions import SuspiciousOperation from django.core.exceptions import SuspiciousOperation
from django.http import Http404, HttpResponseRedirect from django.http import Http404, HttpResponseRedirect
from django.http.request import HttpRequest from django.http.request import HttpRequest
from django.contrib.auth import logout
from markdown2 import markdown from markdown2 import markdown
@ -108,6 +109,11 @@ class AuthorizedResourceMixin(object):
# TODO: RevokeResourceView - increment nonce # TODO: RevokeResourceView - increment nonce
def logout_view(request):
logout(request)
return redirect("/")
class ForgetResourceView(AuthorizedResourceMixin, RedirectView): class ForgetResourceView(AuthorizedResourceMixin, RedirectView):
def is_authorized(self): def is_authorized(self):
return True return True