summaryrefslogtreecommitdiff
path: root/src/mulk/benki/util.clj
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-25 11:27:38 +0100
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-25 11:27:38 +0100
commitec301e9b3cd1ae3a2bbdd71a9a480bfab6c0ca94 (patch)
tree08e4d76e6ecdec849eb3e0b6707713a567cbecae /src/mulk/benki/util.clj
parenta6e7dbe4107ee17fc5dd8cfc796bcade8782e4f2 (diff)
Require authentication on wiki access.
Diffstat (limited to 'src/mulk/benki/util.clj')
-rw-r--r--src/mulk/benki/util.clj15
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)))