From bcb6c2c106caaa8be865155395a031a1edd59759 Mon Sep 17 00:00:00 2001 From: davigonz Date: Fri, 16 Jun 2017 11:07:06 +0200 Subject: [PATCH] Update permissions when updating share via link --- .../resources/shares/UpdateRemoteShareOperation.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java index fa5bb3f9..222d7934 100644 --- a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java @@ -102,6 +102,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { mPassword = null; // no update mExpirationDateInMillis = 0; // no update mPublicUpload = null; + mPermissions = OCShare.DEFAULT_PERMISSION; } @@ -188,15 +189,18 @@ public class UpdateRemoteShareOperation extends RemoteOperation { parametersToUpdate.add(new Pair<>(PARAM_EXPIRATION_DATE, formattedExpirationDate)); } // else, ignore - no update - if (mPermissions > 0) { - // set permissions - parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(mPermissions))); - } if (mPublicUpload != null) { parametersToUpdate.add(new Pair<>(PARAM_PUBLIC_UPLOAD, Boolean.toString(mPublicUpload))); } + // IMPORTANT: permissions parameter needs to be updated after mPublicUpload parameter, + // otherwise they would be set as 1 (READ) in the server when mPublicUpload was updated + if (mPermissions > 0) { + // set permissions + parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(mPermissions))); + } + /// perform required PUT requests PutMethod put = null; String uriString;