diff --git a/src/gui/share.cpp b/src/gui/share.cpp index f749b59e74..abce0be52b 100644 --- a/src/gui/share.cpp +++ b/src/gui/share.cpp @@ -96,6 +96,12 @@ LinkShare::LinkShare(AccountPtr account, } +bool LinkShare::getPublicUpload() +{ + return ((_permissions & OcsShareJob::Permission::Update) && + (_permissions & OcsShareJob::Permission::Create)); +} + void LinkShare::setPublicUpload(bool publicUpload) { OcsShareJob *job = new OcsShareJob(_account, this); diff --git a/src/gui/share.h b/src/gui/share.h index a275f04af3..7da2b06edd 100644 --- a/src/gui/share.h +++ b/src/gui/share.h @@ -112,6 +112,11 @@ public: */ const QUrl getLink(); + /* + * Get the publicUpload status of this share + */ + bool getPublicUpload(); + /* * Set a share to be public upload * This function can only be called on link shares diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 086f300cdc..54abbeecc7 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -307,10 +307,8 @@ void ShareDialog::slotSharesFetched(const QList> &shares) * Only directories can have public upload set * For public links the server sets CREATE and UPDATE permissions. */ - if (!_isFile && - (_share->getPermissions() & static_cast(OcsShareJob::Permission::Update)) && - (_share->getPermissions() & static_cast(OcsShareJob::Permission::Create))) { - _ui->checkBox_editing->setChecked(true); + if (!_isFile && _share->getPublicUpload()) { + _ui->checkBox_editing->setChecked(true); } setShareLink(_share->getLink().toString());