diff --git a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java index fa5bb3f9..a16d4c66 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 always 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; diff --git a/src/com/owncloud/android/lib/resources/status/OCCapability.java b/src/com/owncloud/android/lib/resources/status/OCCapability.java index be7827c1..f866e4c9 100644 --- a/src/com/owncloud/android/lib/resources/status/OCCapability.java +++ b/src/com/owncloud/android/lib/resources/status/OCCapability.java @@ -55,6 +55,7 @@ public class OCCapability { private CapabilityBooleanType mFilesSharingPublicSendMail; private CapabilityBooleanType mFilesSharingPublicUpload; private CapabilityBooleanType mFilesSharingPublicMultiple; + private CapabilityBooleanType mFilesSharingPublicSupportsUploadOnly; private CapabilityBooleanType mFilesSharingUserSendMail; @@ -89,6 +90,7 @@ public class OCCapability { mFilesSharingPublicSendMail = CapabilityBooleanType.UNKNOWN; mFilesSharingPublicUpload = CapabilityBooleanType.UNKNOWN; mFilesSharingPublicMultiple = CapabilityBooleanType.UNKNOWN; + mFilesSharingPublicSupportsUploadOnly = CapabilityBooleanType.UNKNOWN; mFilesSharingUserSendMail = CapabilityBooleanType.UNKNOWN; mFilesSharingResharing = CapabilityBooleanType.UNKNOWN; mFilesSharingFederationOutgoing = CapabilityBooleanType.UNKNOWN; @@ -239,6 +241,15 @@ public class OCCapability { this.mFilesSharingPublicMultiple = filesSharingPublicMultiple; } + public CapabilityBooleanType getFilesSharingPublicSupportsUploadOnly() { + return mFilesSharingPublicSupportsUploadOnly; + } + + public void setFilesSharingPublicSupportsUploadOnly(CapabilityBooleanType + filesSharingPublicMultiple) { + this.mFilesSharingPublicSupportsUploadOnly = filesSharingPublicMultiple; + } + public CapabilityBooleanType getFilesSharingUserSendMail() { return mFilesSharingUserSendMail; }