From df3d36a402ad4f7d3e221b4368e7de2ee84e79bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 14 May 2026 21:39:16 +0100 Subject: [PATCH] check wopi isWritable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit for editing toggle commit 4dd2d8ac761d571b6bafbc3b0540c2dea5f8f535 Date: Tue Apr 21 19:54:33 2026 +0530 wsd, kit, browser: honour the Viewing/Editing toggle across the session Signed-off-by: Caolán McNamara Change-Id: I8314fb0419e4b3634136ac46f52cb265418e29cb Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2642 (cherry picked from commit 51f1ec2d413cb64909cbb60f1ced6710c6f54199) --- wsd/ClientSession.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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);