summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/admin.clj43
-rw-r--r--src/site.clj10
2 files changed, 34 insertions, 19 deletions
diff --git a/src/admin.clj b/src/admin.clj
index ef33aa2..f0b6453 100644
--- a/src/admin.clj
+++ b/src/admin.clj
@@ -173,21 +173,36 @@ AND cancelled = false
(.setAttribute st "mailtemps" (lookup-templates "template/mail" "welcome"))
(.toString st))))
+(defn debug-reg-email [session params]
+ (send-registration-email (params :nick)
+ (params :to)
+ (params :template))
+ (str "Sent registration mail to " (params :to)))
+
+(defn debug-reset-email [session params]
+ )
+
+(def *debug-action-map* {"regemail" debug-reg-email
+ "resetemail" debug-reset-email})
+
+(defn format-unknown-action [action]
+ (html [:h2 {"color" "red"} ["Unknown action " action]]))
+
+(defn format-debug-exception [action e]
+ (html
+ [:h2 {"color" "red"}
+ ["Caught exception in " action " -- " (.getMessage e)]]
+ :br
+ [:pre (exception-to-string e)]))
+
(defn debug-commmand! [session params]
(if-vip
- (let [action (:action params)
- msg (try
- (cond (= action "regemail")
- (do (send-registration-email (params :nick)
- (params :to)
- (params :template))
- (str "Sent registration mail to " (params :to)))
- :else (str "Unknown action: " action))
- (catch Exception e
- (str "<h2 color=\"red\">Caught Exception in " action " --"
- (.getMessage e)
- "</h2><br><pre>"
- (exception-to-string e)
- "</pre>")))]
+ (let [action (s/lower-case (:action params))
+ func (*debug-action-map* action)
+ msg (if func
+ (try (func session params)
+ (catch Exception e
+ (format-debug-exception action e)))
+ (format-unknown-action action))]
[(flash-assoc :msg msg)
(redirect-to "/debug")])))
diff --git a/src/site.clj b/src/site.clj
index b4adfdf..f48f560 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -344,8 +344,8 @@
(defn nick-reserved? [nick]
(let [query "SELECT * FROM users WHERE LOWER(nick) = ? LIMIT 1"]
- (and (not (contains? (poll *reserved-nicks*) nick))
- (= (count (do-select [query (lower-case nick)])) 0))))
+ (or (contains? (poll *reserved-nicks*) nick)
+ (> (count (do-select [query (lower-case nick)])) 0))))
(defn register [session params]
(let [nick (params :nick)
@@ -816,8 +816,8 @@ ORDER BY msg_count DESC")
;; Account resets
-(defn reset-page [session]
- )
+(defn reset-request-page [session]
+ (.toString (fetch-template "reset_request.st" session)))
(defn reset-account-request! [session params]
)
@@ -988,7 +988,7 @@ ORDER BY msg_count DESC")
(GET "/directory" (directory session 0))
(GET "/directory/:offset"
(directory session (maybe-parse-int (-> request :route-params :offset) 0)))
- (GET "/reset" (reset-page session))
+ (GET "/reset" (reset-request-page session))
(POST "/reset-request" (reset-account-request! session params))
(POST "/reset/:key" (reset-account! session (-> request :route-params :key)))