summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/node/handler/PadMessageHandler.js11
-rw-r--r--src/static/js/pad.js3
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")