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/wiki.clj | |
parent | a6e7dbe4107ee17fc5dd8cfc796bcade8782e4f2 (diff) |
Require authentication on wiki access.
Diffstat (limited to 'src/mulk/benki/wiki.clj')
-rw-r--r-- | src/mulk/benki/wiki.clj | 89 |
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 *"] |