ODT does not have a read-only protection for a document. It has field protections and other
protections.
The LibreOffice/OpenOffice implementations add whole-document read-only protection as a setting
extension.
How ODT does protections is different than how Microsoft Office does it in certain cases. These
are not easily interconverted. In some cases, Microsoft Office protects a document in its entirety
and the user specifies, before saving it, what parts are to remain editable.
In ODF, the protections are of the reverse nature: What's protected is specified in detail and then
that protection is activated. Anything else is editable.
(There is harmony across spreadsheets, in that protections are set at the detail level. In
addition for spreadsheets, page level protection can cover everything on a sheet regardless of
settings of protection on selected parts of the sheet, and both Excel and Calc and ODF Spreadsheets
all work that way.)
I cannot speak to what export and import conversion manage to accomplish, but that is the basic
situation.
I assume this conversation is not about Save with Password. That involves encryption and is a very
different beast.
- Dennis
-----Original Message-----
From: libreoffice-bounces+orcmid=apache.org@lists.freedesktop.org
[mailto:libreoffice-bounces+orcmid=apache.org@lists.freedesktop.org] On Behalf Of Thomas Arnhold
Sent: Saturday, July 6, 2013 09:52 PM
To: libreoffice
Cc: Michael Stahl; Cédric Bosdonnat
Subject: fdo#38147 - FILESAVE File Sharing Password protected MS Word document no longer editable
after reopen
Hi,
I've somehow investigated the problem with password protected Word
documents. It was marked as Hard Hack. I have to admit, that I don't
know any further and someone else with more background on form
protection has to look into this.
I've attached "fix.patch" which only shows where the difference between
both file formats begins. "0001-debug.patch" is my debug information.
Here's some of the mail correspondence with mst:
--- snip ---
I compared the behavior of odt and doc files. The difference is at:
http://opengrok.libreoffice.org/xref/core/sw/source/core/crsr/pam.cxx#724
IDocumentSettingAccess::PROTECT_FORM is always 0 for odt files. And 1
for doc files. This seems strange, I expected that odt files have this
flag too. So odt has no (proper?) form protection as I understand this.
I added two files to the bug, which demonstrate, that odt has no form
protection (I could click the button and the checkbox).
This code block in pam.cxx had a comment in history:
"TODO: Form Protection when Enhanced Fields are enabled"
What are "Enhanced Fields"? Are this forms?
Nevertheless if I comment that block out (see patch) the problem is
fixed. The doc file can be unlocked, edited and saved properly. But I
don't know what the deeper consequences are ;)
--- snap ---
--- snip ---
On 18.04.2013 13:05, Michael Stahl wrote:
IDocumentSettingAccess::PROTECT_FORM is always 0 for odt files. And 1
for doc files. This seems strange, I expected that odt files have this
flag too. So odt has no (proper?) form protection as I understand this.
I added two files to the bug, which demonstrate, that odt has no form
protection (I could click the button and the checkbox).
apparently this is available at SwXDocumentSettings as "ProtectForm"
property and should also be stored into/loaded from ODF files (in a
generic way). but the only way for it to be enabled is apparently
loading an WW8 file. i assume if you load a WW8 file with it enabled,
store it as ODF and load again it should be on?
Yes you are right, if I store the ww8 file as odf and load it again the
form protection mode is on.
This code block in pam.cxx had a comment in history:
"TODO: Form Protection when Enhanced Fields are enabled"
What are "Enhanced Fields"? Are this forms?
"ordinary" fields in Writer contain just an unformatted string of text,
and are represented by a single dummy character in the paragraph text.
the "enhanced" ones however are implemented totally differently, with a
special kind of bookmark and dummy 0x04 or so characters in the text to
mark the start/end positions. the content of an enhanced field is
arbitrary paragraph content with arbitrary formatting.
Nevertheless if I comment that block out (see patch) the problem is
fixed. The doc file can be unlocked, edited and saved properly. But I
don't know what the deeper consequences are ;)
i don't think that is such a good idea. perhaps there should be some
way to enable this setting for newly created documents, but i don't know
how it is possible to create the enhanced fields from the UI... has that
ever been implemented? can we just load them from WW8 and ODF
(extended) files?
I've got some closer to the problem.
https://bugs.freedesktop.org/attachment.cgi?id=48023
( password: 1111 )
->bProtectForm:0
-> can be edited and saved in the first iteration
after closing and reloading this is not possible to edit anymore. the
error described in the bug report pops up.
->bProtectForm:1
https://bugs.freedesktop.org/show_bug.cgi?id=43229
seems to be already saved by libreoffice, because the error pops up by
default.
-> loads with
->bProtectForm:1
Where is the problem? It's at: sw/source/filter/ww8/wrtww8.cxx WriteDop()
rDop.lKeyProtDoc is set to a value so the form protection mode get's
enabled while saving this file. If you load this file again it will now
have the form protection mode enabled. This additional check for
lKeyProtDoc came in with 2559ef0f64b7a9a593d60edfcc8107f3a13ee5e1 in 2010.
This fProtEnabled will bes PROTECT_FORM to true at
sw/source/filter/ww8/ww8par.cxx ImportDop().
If this is really the root of the problem all ww8 documents with enabled
protection which were opened/edited and saved since then will have this
form protection flag enabled and are not editable...
--- snap ---
Hopefully this will get fixed sometime :)
Thomas
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.