diff options
| -rwxr-xr-x | src/site.clj | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/site.clj b/src/site.clj index 65d4d11..fa466bb 100755 --- a/src/site.clj +++ b/src/site.clj @@ -289,6 +289,11 @@ ;; Chat +(defn validate-room-access [room session] + (and room + (or (not (room :admin_only)) + (session :is_admin)))) + (defn user-struct-from-session [session] (struct user-struct (session :nick) (session :user_id) (session :avatar) (System/currentTimeMillis))) @@ -318,8 +323,7 @@ (defn validated-chat [session room-key] (let [room (@rooms room-key)] - (if (and room - (or (not (room :admin_only)) (session :is_admin))) + (if (validate-room-access room session) (chat session room) (resp-error "UNKNOWN_ROOM")))) @@ -390,8 +394,7 @@ (defn validated-msg [session params] (let [room-key (params :room) room (@rooms room-key)] - (if (and room - (or (not (room :admin_only)) (session :is_admin))) + (if (validate-room-access room session) (msg session params) (resp-error "UNKNOWN_ROOM")))) @@ -417,7 +420,7 @@ (defn validated-log [session room-key offset] (let [room (@rooms room-key)] - (if room + (if (validate-room-access room session) (log session room offset) (resp-error "UNKNOWN_ROOM")))) |
