summaryrefslogtreecommitdiff
path: root/src/mulk/benki/wiki.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/wiki.clj
parenta6e7dbe4107ee17fc5dd8cfc796bcade8782e4f2 (diff)
Require authentication on wiki access.
Diffstat (limited to 'src/mulk/benki/wiki.clj')
-rw-r--r--src/mulk/benki/wiki.clj89
1 files changed, 40 insertions, 49 deletions
diff --git a/src/mulk/benki/wiki.clj b/src/mulk/benki/wiki.clj
index d848c04..40a7a03 100644
--- a/src/mulk/benki/wiki.clj
+++ b/src/mulk/benki/wiki.clj
@@ -50,57 +50,48 @@
(response/redirect "/wiki/Home"))
(defpage "/wiki/:title" {title :title, revision-id :revision}
- (let [revisions-with-title (-> page_revisions
- (select (where (=* :title title)))
- (sort [:date#desc]))
- revision (if revision-id
- (with-dbt (first @(select page_revisions
- (where (=* :id (Integer/parseInt revision-id))))))
- (with-dbt (first @revisions-with-title)))]
- (layout (fmt nil "~A — Benki~@[/~A~] " title revision-id)
- (if revision
- [:div#wiki-page-content (wikilinkify (:content revision))]
- [:div#wiki-page-content [:p "This page does not exist yet."]])
- [:hr]
- [:div#wiki-page-footer {:style "text-align: right"}
- [:a {:href (link :wiki title "/revisions")} "Page revisions"
- ]])))
+ (with-auth
+ (let [revisions-with-title (-> page_revisions
+ (select (where (=* :title title)))
+ (sort [:date#desc]))
+ revision (if revision-id
+ (with-dbt (first @(select page_revisions
+ (where (=* :id (Integer/parseInt revision-id))))))
+ (with-dbt (first @revisions-with-title)))]
+ (layout (fmt nil "~A — Benki~@[/~A~] " title revision-id)
+ (if revision
+ [:div#wiki-page-content (wikilinkify (:content revision))]
+ [:div#wiki-page-content [:p "This page does not exist yet."]])
+ [:hr]
+ [:div#wiki-page-footer {:style "text-align: right"}
+ [:a {:href (link :wiki title "/revisions")} "Page revisions"]]))))
(defpage "/wiki/:title/revisions" {title :title}
- (let [;; page (-> page_revisions
- ;; (select (where (=* :title "abc")))
- ;; (project [:page])
- ;; (join pages (where (=* :id :page)))
- ;; (sort [:date#desc])
- ;; (project [:id])
- ;; (limit 1))
- ;; revisions (-> page
- ;; (rename {:id :page_id})
- ;; (join page_revisions (where (=* :page_id :id))))
- revisions (with-dbt
- (query "SELECT r.*
- FROM wiki_page_revisions r
- JOIN (SELECT * FROM wiki_page_revisions
- WHERE title = ?
- ORDER BY date DESC
- LIMIT 1) pr
- ON (pr.page = r.page)
- ORDER BY date DESC"
- "Home"))]
- (with-dbt
- (layout (fmt nil "Revision list — ~A — Benki" title)
- [:table {:style ""}
- [:thead
- [:th "Date"]
- [:th "Title"]]
- [:tbody
- (for [rev revisions]
- [:tr
- [:td [:a {:href (link :wiki
- (:title rev)
- (fmt nil "?revision=~a" (:id rev)))}
- (:date rev)]]
- [:td (:title rev)]])]]))))
+ (with-auth
+ (let [revisions (with-dbt
+ (query "SELECT r.*
+ FROM wiki_page_revisions r
+ JOIN (SELECT * FROM wiki_page_revisions
+ WHERE title = ?
+ ORDER BY date DESC
+ LIMIT 1) pr
+ ON (pr.page = r.page)
+ ORDER BY date DESC"
+ "Home"))]
+ (with-dbt
+ (layout (fmt nil "Revision list — ~A — Benki" title)
+ [:table {:style ""}
+ [:thead
+ [:th "Date"]
+ [:th "Title"]]
+ [:tbody
+ (for [rev revisions]
+ [:tr
+ [:td [:a {:href (link :wiki
+ (:title rev)
+ (fmt nil "?revision=~a" (:id rev)))}
+ (:date rev)]]
+ [:td (:title rev)]])]])))))
(defn insert-empty-page []
(sql/with-query-results results ["INSERT INTO wiki_pages DEFAULT VALUES RETURNING *"]