2.1 to 2.2 compatibility
Access control (ACL) changes
Read access details added, read-live permission removed
IMPORTANT CHANGE! Anyone making use of access control should read this.
The ACL model has been extended to allow to define detailed permissions when granting the read permission. We call this read access details.
As part of this change, the 'read live' permission has been removed, and has been replaced by a read access detail. Instead of granting the 'read live' permission, now you grant the read permission, and in the read access details, you specify that non-live versions cannot be read.
The database upgrade script will adjust the ACL configuration in the database to the new format, but due to the nature of the ACL structure, this upgrade can't be done perfectly (in all cases). Therefore if you rely on the read-live permission, after upgrading you should check that the ACL still behaves as intended.
As an example, a situation like this cannot be automatically upgraded correctly:
Read-live Read grant grant don't change deny
ACL API changes
As a consequence of these changes, the enumeration value AclPermission.READ_LIVE has been removed, programs making use of this will need to be updated.
To check if a user has read access to a document, before you would have done:
aclResultInfo.isAllowed(AclPermission.READ); or aclResultInfo.getActionType(AclPermission.READ) == AclActionType.GRANT
Now, this doesn't guarantee anymore that the user has full read access (i.e. to non-live versions, to all fields and parts, ...). If you want to verify the user has full read access, you can use this convenience method:
aclResultInfo.isFullyAllowed(AclPermission.READ);
ACL XML format changes
The XML representation of the ACL has also changed a bit. Permissions as part of an d:aclEntry are now specified in the same way as in d:aclResultInfo, with an extensible set of elements rather than attributes. This makes it possible to add the accessDetails as a child element. Besides, it also adds more consistency and makes it easier to add new types of permissions.
Version.setState() method -- IMPORTANT!
Version.setState(VersionState) behaviour changed: before, the change was instantly sent to the backend, now the change is deferred until you call version.save().
Other repository changes
-
VersionStateChanged JMS event renamed to VersionUpdated, XML payload is different (root element: versionUpdated)
-
synchronous repository event RepositoryEventType.VERSION_STATE_CHANGED changed to RepositoryEventType.VERSION_UPDATED
Import/export tool
The option fullStackTracesOfFailures was mistakenly spelled fullStrackTracesOfFailures. This has been corrected now, the wrong option name will not work anymore.
Skinning
(revision r4547) The layoutType 'mini' has been removed as it is no longer
used. Accordingly, the files mini.css and layout-mini.css were removed.
Additionally, plain.css now imports doceditor.css.
Relaxation of variant creation right
Previously, adding a new variant to a document required write access to the start variant, but now it only required read access.



There are no comments.