From 1292d189cf15dd7ea904d5f76dc9630514f175c4 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Mon, 13 Jan 2025 10:11:20 +0100 Subject: feat(webui): implement logout process --- pkg/webui/logout.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pkg/webui/logout.go (limited to 'pkg/webui/logout.go') diff --git a/pkg/webui/logout.go b/pkg/webui/logout.go new file mode 100644 index 0000000..6a281bb --- /dev/null +++ b/pkg/webui/logout.go @@ -0,0 +1,24 @@ +package webui + +import ( + "html/template" + "net/http" + + "git.adyxax.org/adyxax/tfstated/pkg/database" + "git.adyxax.org/adyxax/tfstated/pkg/model" +) + +var logoutTemplate = template.Must(template.ParseFS(htmlFS, "html/base.html", "html/logout.html")) + +func handleLogoutGET(db *database.DB) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + session := r.Context().Value(model.SessionContextKey{}) + err := db.DeleteSession(session.(*model.Session)) + if err != nil { + errorResponse(w, http.StatusInternalServerError, err) + return + } + unsetSesssionCookie(w) + render(w, logoutTemplate, http.StatusOK, nil) + }) +} -- cgit v1.2.3