diff options
author | allexzander <blackslayer4@gmail.com> | 2021-04-20 17:36:42 +0300 |
---|---|---|
committer | allexzander (Rebase PR Action) <allexzander@users.noreply.github.com> | 2021-04-29 10:43:20 +0300 |
commit | 2d88fc6c99d4a04a292021f3023864ee56c473d0 (patch) | |
tree | 83dfb190ab7298e027b4352e72e9cab9ee19057e /src/gui/sharemanager.cpp | |
parent | a4bad72c57f0e969d6207bf082f6c4e633cc531d (diff) |
Obey enforced password for share by email.
Signed-off-by: allexzander <blackslayer4@gmail.com>
Diffstat (limited to 'src/gui/sharemanager.cpp')
-rw-r--r-- | src/gui/sharemanager.cpp | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index 9e2cf8ca8..35e624647 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -56,6 +56,7 @@ Share::Share(AccountPtr account, const QString &ownerDisplayName, const QString &path, const ShareType shareType, + bool isPasswordSet, const Permissions permissions, const QSharedPointer<Sharee> shareWith) : _account(account) @@ -64,6 +65,7 @@ Share::Share(AccountPtr account, , _ownerDisplayName(ownerDisplayName) , _path(path) , _shareType(shareType) + , _isPasswordSet(isPasswordSet) , _permissions(permissions) , _shareWith(shareWith) { @@ -104,6 +106,19 @@ QSharedPointer<Sharee> Share::getShareWith() const return _shareWith; } +void Share::setPassword(const QString &password) +{ + auto *job = new OcsShareJob(_account); + connect(job, &OcsShareJob::shareJobFinished, this, &Share::slotPasswordSet); + connect(job, &OcsJob::ocsError, this, &Share::slotSetPasswordError); + job->setPassword(getId(), password); +} + +bool Share::isPasswordSet() const +{ + return _isPasswordSet; +} + void Share::setPermissions(Permissions permissions) { auto *job = new OcsShareJob(_account); @@ -142,6 +157,17 @@ void Share::slotOcsError(int statusCode, const QString &message) emit serverError(statusCode, message); } +void Share::slotPasswordSet(const QJsonDocument &, const QVariant &value) +{ + _isPasswordSet = !value.toString().isEmpty(); + emit passwordSet(); +} + +void Share::slotSetPasswordError(int statusCode, const QString &message) +{ + emit passwordSetError(statusCode, message); +} + QUrl LinkShare::getLink() const { return _url; @@ -159,11 +185,6 @@ QDate LinkShare::getExpireDate() const return _expireDate; } -bool LinkShare::isPasswordSet() const -{ - return _passwordSet; -} - LinkShare::LinkShare(AccountPtr account, const QString &id, const QString &uidowner, @@ -172,13 +193,12 @@ LinkShare::LinkShare(AccountPtr account, const QString &name, const QString &token, Permissions permissions, - bool passwordSet, + bool isPasswordSet, const QUrl &url, const QDate &expireDate) - : Share(account, id, uidowner, ownerDisplayName, path, Share::TypeLink, permissions) + : Share(account, id, uidowner, ownerDisplayName, path, Share::TypeLink, isPasswordSet, permissions) , _name(name) , _token(token) - , _passwordSet(passwordSet) , _expireDate(expireDate) , _url(url) { @@ -231,20 +251,6 @@ QString LinkShare::getToken() const return _token; } -void LinkShare::setPassword(const QString &password) -{ - auto *job = new OcsShareJob(_account); - connect(job, &OcsShareJob::shareJobFinished, this, &LinkShare::slotPasswordSet); - connect(job, &OcsJob::ocsError, this, &LinkShare::slotSetPasswordError); - job->setPassword(getId(), password); -} - -void LinkShare::slotPasswordSet(const QJsonDocument &, const QVariant &value) -{ - _passwordSet = value.toString() != ""; - emit passwordSet(); -} - void LinkShare::setExpireDate(const QDate &date) { auto *job = new OcsShareJob(_account); @@ -269,11 +275,6 @@ void LinkShare::slotExpireDateSet(const QJsonDocument &reply, const QVariant &va emit expireDateSet(); } -void LinkShare::slotSetPasswordError(int statusCode, const QString &message) -{ - emit passwordSetError(statusCode, message); -} - void LinkShare::slotNameSet(const QJsonDocument &, const QVariant &value) { _name = value.toString(); @@ -286,15 +287,16 @@ UserGroupShare::UserGroupShare(AccountPtr account, const QString &ownerDisplayName, const QString &path, const ShareType shareType, + bool isPasswordSet, const Permissions permissions, const QSharedPointer<Sharee> shareWith, const QDate &expireDate, const QString ¬e) - : Share(account, id, owner, ownerDisplayName, path, shareType, permissions, shareWith) - , _expireDate(expireDate) + : Share(account, id, owner, ownerDisplayName, path, shareType, isPasswordSet, permissions, shareWith) , _note(note) + , _expireDate(expireDate) { - Q_ASSERT(shareType == TypeUser || shareType == TypeGroup); + Q_ASSERT(shareType == TypeUser || shareType == TypeGroup || shareType == TypeEmail); Q_ASSERT(shareWith); } @@ -389,7 +391,8 @@ void ShareManager::slotLinkShareCreated(const QJsonDocument &reply) void ShareManager::createShare(const QString &path, const Share::ShareType shareType, const QString shareWith, - const Share::Permissions desiredPermissions) + const Share::Permissions desiredPermissions, + const QString &password) { auto job = new OcsShareJob(_account); connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError); @@ -416,7 +419,7 @@ void ShareManager::createShare(const QString &path, auto *job = new OcsShareJob(_account); connect(job, &OcsShareJob::shareJobFinished, this, &ShareManager::slotShareCreated); connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError); - job->createShare(path, shareType, shareWith, validPermissions); + job->createShare(path, shareType, shareWith, validPermissions, password); }); job->getSharedWithMe(); } @@ -458,7 +461,7 @@ void ShareManager::slotSharesFetched(const QJsonDocument &reply) if (shareType == Share::TypeLink) { newShare = parseLinkShare(data); - } else if (shareType == Share::TypeGroup || shareType == Share::TypeUser) { + } else if (shareType == Share::TypeGroup || shareType == Share::TypeUser || shareType == Share::TypeEmail) { newShare = parseUserGroupShare(data); } else { newShare = parseShare(data); @@ -493,6 +496,7 @@ QSharedPointer<UserGroupShare> ShareManager::parseUserGroupShare(const QJsonObje data.value("displayname_owner").toVariant().toString(), data.value("path").toString(), static_cast<Share::ShareType>(data.value("share_type").toInt()), + !data.value("password").toString().isEmpty(), static_cast<Share::Permissions>(data.value("permissions").toInt()), sharee, expireDate, @@ -546,6 +550,7 @@ QSharedPointer<Share> ShareManager::parseShare(const QJsonObject &data) data.value("displayname_owner").toVariant().toString(), data.value("path").toString(), (Share::ShareType)data.value("share_type").toInt(), + !data.value("password").toString().isEmpty(), (Share::Permissions)data.value("permissions").toInt(), sharee)); } |