From: Camila San Date: Fri, 21 Jun 2019 16:36:45 +0000 (+0200) Subject: Displays the uid_owner of a shared file. X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2~2^2~270^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d6a0a5272a281050d2d0a7caa0f1621e83f705f6;p=nextcloud-desktop.git Displays the uid_owner of a shared file. Also displays the sharees that reshared it via share link. Signed-off-by: Camila San --- diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 57126988b..bc45eed20 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -194,7 +194,7 @@ void ShareDialog::slotSharesFetched(const QList> &shares) const QString versionString = _accountState->account()->serverVersion(); qCInfo(lcSharing) << versionString << "Fetched" << shares.count() << "shares"; foreach (auto share, shares) { - if (share->getShareType() != Share::TypeLink) { + if (share->getShareType() != Share::TypeLink || share->getUidOwner() != share->account()->davUser()) { continue; } diff --git a/src/gui/sharelinkwidget.ui b/src/gui/sharelinkwidget.ui index c0b85261f..c2fe47103 100644 --- a/src/gui/sharelinkwidget.ui +++ b/src/gui/sharelinkwidget.ui @@ -7,7 +7,7 @@ 0 0 350 - 136 + 160 @@ -29,6 +29,131 @@ 0 + + + + + 1 + 0 + + + + + + + + + 1 + 0 + + + + Password: + + + 20 + + + + + + + false + + + + :/client/resources/more.svg:/client/resources/more.svg + + + QToolButton::InstantPopup + + + + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 123 + 121 + 134 + + + + + + + + TextLabel + + + Qt::PlainText + + + true + + + + + + + + 1 + 0 + + + + QLineEdit::Password + + + + + + + + :/client/resources/confirm.svg:/client/resources/confirm.svg + + + true + + + + + + + + :/client/resources/confirm.svg:/client/resources/confirm.svg + + + true + + + @@ -102,60 +227,6 @@ - - - - false - - - - :/client/resources/more.svg:/client/resources/more.svg - - - QToolButton::InstantPopup - - - - - - - - 1 - 0 - - - - Password: - - - 20 - - - - - - - - 1 - 0 - - - - QLineEdit::Password - - - - - - - - :/client/resources/confirm.svg:/client/resources/confirm.svg - - - true - - - @@ -172,77 +243,6 @@ - - - - - 1 - 0 - - - - - - - - - :/client/resources/confirm.svg:/client/resources/confirm.svg - - - true - - - - - - - - - - - - 255 - 0 - 0 - - - - - - - - - 255 - 0 - 0 - - - - - - - - - 123 - 121 - 134 - - - - - - - - TextLabel - - - Qt::PlainText - - - true - - - diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index 4bc32182a..1f96f2c6f 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -52,12 +52,16 @@ static void updateFolder(const AccountPtr &account, const QString &path) Share::Share(AccountPtr account, const QString &id, + const QString &uidowner, + const QString &ownerDisplayName, const QString &path, const ShareType shareType, const Permissions permissions, const QSharedPointer shareWith) : _account(account) , _id(id) + , _uidowner(uidowner) + , _ownerDisplayName(ownerDisplayName) , _path(path) , _shareType(shareType) , _permissions(permissions) @@ -80,6 +84,16 @@ QString Share::getId() const return _id; } +QString Share::getUidOwner() const +{ + return _uidowner; +} + +QString Share::getOwnerDisplayName() const +{ + return _ownerDisplayName; +} + Share::ShareType Share::getShareType() const { return _shareType; @@ -153,6 +167,8 @@ bool LinkShare::isPasswordSet() const LinkShare::LinkShare(AccountPtr account, const QString &id, + const QString &uidowner, + const QString &ownerDisplayName, const QString &path, const QString &name, const QString &token, @@ -160,7 +176,7 @@ LinkShare::LinkShare(AccountPtr account, bool passwordSet, const QUrl &url, const QDate &expireDate) - : Share(account, id, path, Share::TypeLink, permissions) + : Share(account, id, uidowner, ownerDisplayName, path, Share::TypeLink, permissions) , _name(name) , _token(token) , _passwordSet(passwordSet) @@ -393,6 +409,8 @@ QSharedPointer ShareManager::parseLinkShare(const QJsonObject &data) return QSharedPointer(new LinkShare(_account, data.value("id").toVariant().toString(), // "id" used to be an integer, support both + data.value("uid_owner").toString(), + data.value("displayname_owner").toString(), data.value("path").toString(), data.value("name").toString(), data.value("token").toString(), @@ -410,6 +428,8 @@ QSharedPointer ShareManager::parseShare(const QJsonObject &data) return QSharedPointer(new Share(_account, data.value("id").toVariant().toString(), // "id" used to be an integer, support both + data.value("uid_owner").toVariant().toString(), + data.value("displayname_owner").toVariant().toString(), data.value("path").toString(), (Share::ShareType)data.value("share_type").toInt(), (Share::Permissions)data.value("permissions").toInt(), diff --git a/src/gui/sharemanager.h b/src/gui/sharemanager.h index 18d060bae..db48771b1 100644 --- a/src/gui/sharemanager.h +++ b/src/gui/sharemanager.h @@ -54,6 +54,8 @@ public: */ explicit Share(AccountPtr account, const QString &id, + const QString &owner, + const QString &ownerDisplayName, const QString &path, const ShareType shareType, const Permissions permissions = SharePermissionDefault, @@ -71,6 +73,16 @@ public: */ QString getId() const; + /* + * Get the uid_owner + */ + QString getUidOwner() const; + + /* + * Get the owner display name + */ + QString getOwnerDisplayName() const; + /* * Get the shareType */ @@ -110,6 +122,8 @@ signals: protected: AccountPtr _account; QString _id; + QString _uidowner; + QString _ownerDisplayName; QString _path; ShareType _shareType; Permissions _permissions; @@ -134,6 +148,8 @@ class LinkShare : public Share public: explicit LinkShare(AccountPtr account, const QString &id, + const QString &uidowner, + const QString &ownerDisplayName, const QString &path, const QString &name, const QString &token, diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index d576b1edb..bb0ebad65 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -190,13 +190,23 @@ void ShareUserGroupWidget::slotSharesFetched(const QList> layout->setContentsMargins(0, 0, 0, 0); int x = 0; int height = 0; + QList linkOwners({}); foreach (const auto &share, shares) { // We don't handle link shares, only TypeUser or TypeGroup if (share->getShareType() == Share::TypeLink) { + if(!share->getUidOwner().isEmpty() && + share->getUidOwner() != share->account()->davUser()){ + linkOwners.append(share->getOwnerDisplayName()); + } continue; } + // the owner of the file that shared it first + if(x == 0 && !share->getUidOwner().isEmpty()){ + _ui->mainOwnerLabel->setText(QString("Shared with you by ").append(share->getOwnerDisplayName())); + } + ShareUserLine *s = new ShareUserLine(share, _maxSharingPermissions, _isFile, _parentScrollArea); connect(s, &ShareUserLine::resizeRequested, this, &ShareUserGroupWidget::slotAdjustScrollWidgetSize); connect(s, &ShareUserLine::visualDeletionDone, this, &ShareUserGroupWidget::getShares); @@ -210,7 +220,18 @@ void ShareUserGroupWidget::slotSharesFetched(const QList> } } - scrollArea->setFrameShape(x > 3 ? QFrame::StyledPanel : QFrame::NoFrame); + foreach (const QString &owner, linkOwners) { + auto ownerLabel = new QLabel(QString(owner + " shared via link")); + layout->addWidget(ownerLabel); + ownerLabel->setVisible(true); + + x++; + if (x <= 6) { + height = newViewPort->sizeHint().height(); + } + } + + scrollArea->setFrameShape(x > 6 ? QFrame::StyledPanel : QFrame::NoFrame); scrollArea->setVisible(!shares.isEmpty()); scrollArea->setFixedHeight(height); scrollArea->setWidget(newViewPort); diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui index 51682bb05..ed1e43e7f 100644 --- a/src/gui/shareusergroupwidget.ui +++ b/src/gui/shareusergroupwidget.ui @@ -32,6 +32,13 @@ 0 + + + + + + +