diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index f15c159278ca3..f24475b850f92 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -1232,9 +1232,15 @@ bool ClientSession::_handleInput(const char *buffer, int length) return forwardToChild(firstLine, docBroker); } + else if (tokens.equals(0, "setviewreadonly")) + { + // only if the session has WOPI write permission + if (!isWritable()) + return false; + return forwardToChild(firstLine, docBroker); + } else if (tokens.equals(0, "formfieldevent") || tokens.equals(0, "sallogoverride") || - tokens.equals(0, "setviewreadonly") || tokens.equals(0, "contentcontrolevent")) { return forwardToChild(firstLine, docBroker);