diff options
| -rw-r--r-- | src/site.clj | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/site.clj b/src/site.clj index 04ebecb..c2bc4ef 100644 --- a/src/site.clj +++ b/src/site.clj @@ -301,21 +301,26 @@ (or (contains? (poll reserved-nicks) nick) (> (count (do-select [query (lower-case nick)])) 0)))) -(defn register [session params] +(defn register [session params request] (let [nick (or (params :nick) "") email (or (params :email) "") hash (or (params :hash) "") - invalid-nick-reason (is-invalid-nick? nick)] + invalid-nick-reason (is-invalid-nick? nick)] (cond invalid-nick-reason (resp-error invalid-nick-reason) (nick-reserved? nick) (resp-error "NICK_TAKEN") :else (do (do-insert :users [:nick :hash :email] [nick hash email]) - (let [db-user (fetch-nick nick)] + (let [db-user (fetch-nick nick) + user_id (db-user :user_id) + ip (get-ip request) + query (format "UPDATE users SET created_ip = '%s'::cidr WHERE user_id = %s" (str ip) (str user_id))] ; scott: taken out since we hit email limit (send-registration-email nick email) - [(session-assoc-from-db db-user) - (resp-success "OK")]))))) + (do-cmds query) ; timb: doing this update query rather than using previous insert because jdbc + ; can't figure out how to convert to cidr on prepared statements + [(session-assoc-from-db db-user) + (resp-success "OK")]))))) ;; Fav scores @@ -1164,7 +1169,7 @@ order by count desc limit ? offset ?") ;; TODO: add form tokens for all destructive actions (POST "/msg" (validated-msg session params)) - (POST "/submit-registration" (register session params)) + (POST "/submit-registration" (register session params request)) (POST "/update-profile" (update-profile session params)) (GET "/directory" (directory session 0)) (GET "/directory/:offset" |
