diff options
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))) |