Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallexzander <blackslayer4@gmail.com>2021-04-20 17:36:42 +0300
committerallexzander (Rebase PR Action) <allexzander@users.noreply.github.com>2021-04-29 10:43:20 +0300
commit2d88fc6c99d4a04a292021f3023864ee56c473d0 (patch)
tree83dfb190ab7298e027b4352e72e9cab9ee19057e /src/gui/sharemanager.cpp
parenta4bad72c57f0e969d6207bf082f6c4e633cc531d (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.cpp71
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 &note)
- : 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));
}