Skip to content

Commit

Permalink
Fix issue #10 by adding a from-mongo function that sanitizes all read…
Browse files Browse the repository at this point in the history
…s from mongodb. For now, it just turns floats into ints
  • Loading branch information
amalloy committed Apr 18, 2011
1 parent 897a598 commit f0bdc09
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 13 deletions.
5 changes: 3 additions & 2 deletions src/foreclojure/login.clj
Expand Up @@ -17,10 +17,11 @@
[:td (label :pwd "Password")]
[:td (password-field :pwd)]]
[:tr
[:td (submit-button {:type "image" :src "/login.png"} "Log In")]]]))
[:td (submit-button {:type "image" :src "/login.png"}
"Log In")]]]))

(defn do-login [user pwd]
(if-let [db-user (fetch-one :users :where {:user user})]
(if-let [db-user (from-mongo (fetch-one :users :where {:user user}))]
(if (.checkPassword (StrongPasswordEncryptor.) pwd (db-user :pwd))
(do (session/session-put! :user user)
(response/redirect "/problems"))
Expand Down
17 changes: 10 additions & 7 deletions src/foreclojure/problems.clj
Expand Up @@ -8,17 +8,20 @@

(defn get-solved [user]
(set
(:solved (fetch-one :users
:where {:user user}
:only [:solved]))))
(:solved (from-mongo
(fetch-one :users
:where {:user user}
:only [:solved])))))

(defn get-problem [x]
(fetch-one :problems :where {:_id x}))
(from-mongo
(fetch-one :problems :where {:_id x})))

(defn get-problem-list []
(fetch :problems
:only [:_id :title :tags :times-solved]
:sort {:id 1}))
(from-mongo
(fetch :problems
:only [:_id :title :tags :times-solved]
:sort {:id 1})))

(defn mark-completed [id]
(if-let [user (session/session-get :user)]
Expand Down
5 changes: 3 additions & 2 deletions src/foreclojure/users.clj
Expand Up @@ -3,8 +3,9 @@
[somnium.congomongo]))

(defn get-users []
(fetch :users
:only [:user :solved]))
(from-mongo
(fetch :users
:only [:user :solved])))

(def-page users-page []
[:table {:class "my-table" :width "50%"}
Expand Down
10 changes: 8 additions & 2 deletions src/foreclojure/utils.clj
@@ -1,8 +1,10 @@
(ns foreclojure.utils
(:use (hiccup [core :only [html]]
[page-helpers :only [doctype include-css]]))
[page-helpers :only [doctype include-css]])
[amalloy.utils.transform :only [transform-if]])
(:require [sandbar.stateful-session :as session]
(ring.util [response :as response])))
(ring.util [response :as response])
[clojure.walk :as walk]))

(defmacro dbg [x]
`(let [x# ~x] (println '~x "=" x#) x#))
Expand Down Expand Up @@ -35,6 +37,10 @@
(html-doc
~@code)))

(defn from-mongo [data]
(walk/postwalk (transform-if float? int)
data))

(defn row-class [x]
{:class (if (even? x)
"evenrow"
Expand Down

0 comments on commit f0bdc09

Please sign in to comment.