diff --git a/src/web.lisp b/src/web.lisp index 7efc4cf..9311489 100644 --- a/src/web.lisp +++ b/src/web.lisp @@ -1028,11 +1028,27 @@ (progn (utils:set-alert "You are not logged in.") (redirect "/login"))))))) +(defroute ("/edit/archive/:slug" :method :GET) (&key slug) + (hermetic:auth (:logged-in) + ;; Authorised + (let ((alert (utils:get-and-reset-alert))) + (render "/user/edit-archive.html" + (append (auth:auth-user-data) + `(:alert ,alert + :system-data ,(nera:system-data) + :db-data ,(nera:get-archive-entry :slug slug) + :data ,(storage:open-text-file + "" "archive" slug))))) + ;; Not Authorised + (progn + (utils:set-alert "You are not logged in.") + (redirect "/login")))) + + (defroute ("/archive/delete/entry" :method :POST) () (destructuring-bind (&key slug authenticity-token &allow-other-keys) (utils:request-params (lack.request:request-body-parameters ningle:*request*)) - (step (cond ((not (string= authenticity-token (auth:csrf-token))) `(,+forbidden+ (:content-type "text/plain") ("Denied"))) (t (hermetic:auth @@ -1073,7 +1089,7 @@ (redirect "/user/archive"))) ;; Not Authorised (progn (utils:set-alert "You are not authorised to delete this archive entry.") - (redirect "/login")))))))) + (redirect "/login"))))))) ;; ;; Error pages