summaryrefslogtreecommitdiff
path: root/src/admin.clj
diff options
context:
space:
mode:
authorsostler <sbostler@gmail.com>2010-04-14 18:52:24 -0400
committersostler <sbostler@gmail.com>2010-04-14 18:52:24 -0400
commitf0ab9c28ec3cdc0f347081e63e2448750d073d46 (patch)
tree03090b6287c75da498f1858877c5bc520f0ef2a6 /src/admin.clj
parent486946cd5fd8eda8824f1752101fb010c31396d9 (diff)
Added muting emails
Diffstat (limited to 'src/admin.clj')
-rw-r--r--src/admin.clj30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/admin.clj b/src/admin.clj
index 0253734..e5d0c8f 100644
--- a/src/admin.clj
+++ b/src/admin.clj
@@ -50,10 +50,11 @@
(def *mute-refresh-period-sec* 60)
(def fetch-mutes-query "
-SELECT mutes.*, (set_on + duration) AS expiry
-FROM mutes
-WHERE (set_on + duration) > now()
-AND NOT is_canceled
+SELECT m.*, (m.set_on + m.duration) AS expiry, u.nick AS admin_nick
+FROM mutes m, users u
+WHERE (m.set_on + m.duration) > now()
+AND u.user_id = m.admin_id
+AND NOT m.is_canceled
")
(defn update-mutes []
@@ -78,18 +79,23 @@ AND NOT is_canceled
(defn mute! [session params]
(if-vip
- (let [nick (params :nick)
- user-id (:user_id (fetch-nick nick))
- duration (parse-pos-interval (params :time) (s/butlast (params :unit) 1))
- reason (params :reason)
- admin-id (session :user_id)]
+ (let [nick (params :nick)
+ user-id (:user_id (fetch-nick nick))
+ time (params :time)
+ unit (params :unit)
+ duration (parse-pos-interval time (s/butlast unit 1))
+ reason (params :reason)
+ admin-id (session :user_id)
+ admin-nick (session :nick)]
(cond (not user-id) [400 "INVALID_NICK"]
(not duration) [400 "INVALID_DURATION"]
;; TODO: Ugly interval hack, w/ no escaping. Totally unsafe.
- :else (let [q (format "INSERT INTO mutes (user_id, admin_id, duration, reason)
+ :else (let [q (format "INSERT INTO mutes (user_id, admin_id, duration, reason)
VALUES (%s, %s, '%s', '%s')"
- user-id admin-id duration reason)]
- (and (do-cmds q) "OK"))))))
+ user-id admin-id duration reason)]
+ (do-cmds q)
+ (send-mute-email nick admin-nick reason time unit)
+ "OK")))))
(defn format-mute [mute]