diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2011-11-25 11:27:38 +0100 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2011-11-25 11:27:38 +0100 |
commit | ec301e9b3cd1ae3a2bbdd71a9a480bfab6c0ca94 (patch) | |
tree | 08e4d76e6ecdec849eb3e0b6707713a567cbecae /src/mulk/benki/util.clj | |
parent | a6e7dbe4107ee17fc5dd8cfc796bcade8782e4f2 (diff) |
Require authentication on wiki access.
Diffstat (limited to 'src/mulk/benki/util.clj')
-rw-r--r-- | src/mulk/benki/util.clj | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/mulk/benki/util.clj b/src/mulk/benki/util.clj index ea8ceae..fd2e353 100644 --- a/src/mulk/benki/util.clj +++ b/src/mulk/benki/util.clj @@ -2,7 +2,10 @@ (:refer-clojure) (:use [hiccup core page-helpers] [clojure.core.match.core :only [match]] - noir.core)) + noir.core) + (:require [noir.session :as session] + [noir.request :as request] + [noir.response :as response])) (def fmt clojure.pprint/cl-format) @@ -46,3 +49,13 @@ (defn link [& args] (match [(vec args)] [[:wiki title & xs]] (fresolve "/wiki/~a~@[~a~]" title (first xs)))) + +(defn call-with-auth [thunk] + (println (request/ring-request)) + (if (session/get :user) + (thunk) + (do (session/flash-put! (:uri (request/ring-request))) + (response/redirect "/login")))) + +(defmacro with-auth [& body] + `(call-with-auth (fn [] ~@body))) |