diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/node/handler/PadMessageHandler.js | 11 | ||||
-rw-r--r-- | src/static/js/pad.js | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index e15af1a4..9a0d1ee7 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -190,6 +190,16 @@ exports.handleMessage = function(client, message) } var handleMessageHook = function(callback){ + // Allow plugins to bypass the readonly message blocker + hooks.aCallAll("handleMessageSecurity", { client: client, message: message }, function ( err, messages ) { + if(ERR(err, callback)) return; + _.each(messages, function(newMessage){ + if ( newMessage === true ) { + thisSession.readonly = false; + } + }); + }); + var dropMessage = false; // Call handleMessage hook. If a plugin returns null, the message will be dropped. Note that for all messages // handleMessage will be called, even if the client is not authorized @@ -204,6 +214,7 @@ exports.handleMessage = function(client, message) // If no plugins explicitly told us to drop the message, its ok to proceed if(!dropMessage){ callback() }; }); + } var finalHandler = function () { diff --git a/src/static/js/pad.js b/src/static/js/pad.js index b865fa64..bb06162a 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -325,6 +325,9 @@ function handshake() if(clientVars.readonly){ $('#myusernameedit').attr("disabled", true); $('#chatinput').attr("disabled", true); + $('#chaticon').hide(); + $('#options-chatandusers').parent().hide(); + $('#options-stickychat').parent().hide(); } $("body").addClass(clientVars.readonly ? "readonly" : "readwrite") |