summaryrefslogtreecommitdiff
path: root/src/site.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/site.clj')
-rw-r--r--src/site.clj6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/site.clj b/src/site.clj
index 1ecec31..fc61686 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -106,6 +106,10 @@
(< (count n) 3) "NICK_TOO_SHORT"
(not (re-matches nick-regex n)) "NICK_INVALID_CHARS"))
+(defn check-nick [nick]
+ (let [query "SELECT * FROM users WHERE LOWER(nick) = ? LIMIT 1"]
+ (> (count (do-select [query (s/lower-case nick)])) 0)))
+
(defn fetch-nick [nick]
(let [query "SELECT * FROM users WHERE nick = ? LIMIT 1"]
(first (do-select [query nick]))))
@@ -387,7 +391,7 @@
hash (params :hash)
invalid-nick-reason (is-invalid-nick? nick)]
(cond invalid-nick-reason (resp-error invalid-nick-reason)
- (fetch-nick nick) (resp-error "NICK_TAKEN")
+ (check-nick nick) (resp-error "NICK_TAKEN")
:else (with-connection *db*
(insert-values :users
[:nick :hash :email]