[Pkg-owncloud-commits] [owncloud-client] 323/470: Disable unavailable sharing permissions #4383
Sandro Knauß
hefee-guest at moszumanska.debian.org
Thu May 12 16:25:20 UTC 2016
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 910c61b4923b645dd3e2d144e37f935913e9f416
Author: Christian Kamm <mail at ckamm.de>
Date: Wed Mar 30 11:33:34 2016 +0200
Disable unavailable sharing permissions #4383
Users can't reshare with more permissions than they have themselves.
---
src/gui/ocssharejob.cpp | 2 +-
src/gui/ocssharejob.h | 2 +-
src/gui/owncloudgui.cpp | 19 +++++--
src/gui/share.cpp | 14 ++---
src/gui/share.h | 17 ++----
src/gui/sharedialog.cpp | 112 ++++++++++++++++++++++++++-------------
src/gui/sharedialog.h | 15 ++++--
src/gui/sharelinkwidget.cpp | 6 +--
src/gui/sharelinkwidget.h | 5 +-
src/gui/sharepermissions.h | 37 +++++++++++++
src/gui/shareusergroupwidget.cpp | 57 ++++++++++++--------
src/gui/shareusergroupwidget.h | 10 ++--
12 files changed, 201 insertions(+), 95 deletions(-)
diff --git a/src/gui/ocssharejob.cpp b/src/gui/ocssharejob.cpp
index 66368ae..de3a675 100644
--- a/src/gui/ocssharejob.cpp
+++ b/src/gui/ocssharejob.cpp
@@ -122,7 +122,7 @@ void OcsShareJob::createShare(const QString& path,
addParam(QString::fromLatin1("path"), path);
addParam(QString::fromLatin1("shareType"), QString::number(shareType));
addParam(QString::fromLatin1("shareWith"), shareWith);
- if (!(permissions & Share::PermissionDefault)) {
+ if (!(permissions & SharePermissionDefault)) {
addParam(QString::fromLatin1("permissions"), QString::number(permissions));
}
diff --git a/src/gui/ocssharejob.h b/src/gui/ocssharejob.h
index 36d505a..ebf1885 100644
--- a/src/gui/ocssharejob.h
+++ b/src/gui/ocssharejob.h
@@ -101,7 +101,7 @@ public:
void createShare(const QString& path,
const Share::ShareType shareType,
const QString& shareWith = "",
- const Share::Permissions permissions = Share::PermissionRead);
+ const Share::Permissions permissions = SharePermissionRead);
/**
* Returns information on the items shared with the current user.
diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp
index 4f38015..6935883 100644
--- a/src/gui/owncloudgui.cpp
+++ b/src/gui/owncloudgui.cpp
@@ -870,14 +870,27 @@ void ownCloudGui::slotShowShareDialog(const QString &sharePath, const QString &l
const auto accountState = folder->accountState();
+ // As a first approximation, set the set of permissions that can be granted
+ // either to everything (resharing allowed) or nothing (no resharing).
+ //
+ // The correct value will be found with a propfind from ShareDialog.
+ // (we want to show the dialog directly, not wait for the propfind first)
+ SharePermissions maxSharingPermissions =
+ SharePermissionRead
+ | SharePermissionUpdate | SharePermissionCreate | SharePermissionDelete
+ | SharePermissionShare;
+ if (!resharingAllowed) {
+ maxSharingPermissions = 0;
+ }
+
+
ShareDialog *w = 0;
if (_shareDialogs.contains(localPath) && _shareDialogs[localPath]) {
qDebug() << Q_FUNC_INFO << "Raising share dialog" << sharePath << localPath;
w = _shareDialogs[localPath];
} else {
- qDebug() << Q_FUNC_INFO << "Opening share dialog" << sharePath << localPath;
- w = new ShareDialog(accountState, sharePath, localPath, resharingAllowed);
- w->getShares();
+ qDebug() << Q_FUNC_INFO << "Opening share dialog" << sharePath << localPath << maxSharingPermissions;
+ w = new ShareDialog(accountState, sharePath, localPath, maxSharingPermissions);
w->setAttribute( Qt::WA_DeleteOnClose, true );
_shareDialogs[localPath] = w;
diff --git a/src/gui/share.cpp b/src/gui/share.cpp
index 4624b9f..a72fe7c 100644
--- a/src/gui/share.cpp
+++ b/src/gui/share.cpp
@@ -135,8 +135,8 @@ LinkShare::LinkShare(AccountPtr account,
bool LinkShare::getPublicUpload()
{
- return ((_permissions & PermissionUpdate) &&
- (_permissions & PermissionCreate));
+ return ((_permissions & SharePermissionUpdate) &&
+ (_permissions & SharePermissionCreate));
}
void LinkShare::setPublicUpload(bool publicUpload)
@@ -150,9 +150,9 @@ void LinkShare::setPublicUpload(bool publicUpload)
void LinkShare::slotPublicUploadSet(const QVariantMap&, const QVariant &value)
{
if (value.toBool()) {
- _permissions = PermissionRead | PermissionUpdate | PermissionCreate;
+ _permissions = SharePermissionRead | SharePermissionUpdate | SharePermissionCreate;
} else {
- _permissions = PermissionRead;
+ _permissions = SharePermissionRead;
}
emit publicUploadSet();
@@ -260,7 +260,7 @@ void ShareManager::slotCreateShare(const QVariantMap &reply)
_jobContinuation.remove(sender());
// Find existing share permissions (if this was shared with us)
- Share::Permissions existingPermissions = Share::PermissionDefault;
+ Share::Permissions existingPermissions = SharePermissionDefault;
foreach (const QVariant & element, reply["ocs"].toMap()["data"].toList()) {
QVariantMap map = element.toMap();
if (map["file_target"] == cont.path)
@@ -269,9 +269,9 @@ void ShareManager::slotCreateShare(const QVariantMap &reply)
// Limit the permissions we request for a share to the ones the item
// was shared with initially.
- if (cont.permissions == Share::PermissionDefault) {
+ if (cont.permissions == SharePermissionDefault) {
cont.permissions = existingPermissions;
- } else if (existingPermissions != Share::PermissionDefault) {
+ } else if (existingPermissions != SharePermissionDefault) {
cont.permissions &= existingPermissions;
}
diff --git a/src/gui/share.h b/src/gui/share.h
index 96f5014..1d22933 100644
--- a/src/gui/share.h
+++ b/src/gui/share.h
@@ -16,6 +16,7 @@
#include "accountfwd.h"
#include "sharee.h"
+#include "sharepermissions.h"
#include <QObject>
#include <QDate>
@@ -43,18 +44,7 @@ public:
TypeRemote = Sharee::Federated
};
- /**
- * Possible permissions
- */
- enum Permission {
- PermissionRead = 1,
- PermissionUpdate = 2,
- PermissionCreate = 4,
- PermissionDelete = 8,
- PermissionShare = 16,
- PermissionDefault = 1 << 30
- };
- Q_DECLARE_FLAGS(Permissions, Permission)
+ typedef SharePermissions Permissions;
/*
* Constructor for shares
@@ -63,7 +53,7 @@ public:
const QString& id,
const QString& path,
const ShareType shareType,
- const Permissions permissions = PermissionDefault,
+ const Permissions permissions = SharePermissionDefault,
const QSharedPointer<Sharee> shareWith = QSharedPointer<Sharee>(NULL));
/**
@@ -208,7 +198,6 @@ private:
QDate _expireDate;
QUrl _url;
};
-Q_DECLARE_OPERATORS_FOR_FLAGS(Share::Permissions)
/**
* The share manager allows for creating, retrieving and deletion
diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp
index 51134c2..d677c42 100644
--- a/src/gui/sharedialog.cpp
+++ b/src/gui/sharedialog.cpp
@@ -31,15 +31,20 @@
namespace OCC {
-ShareDialog::ShareDialog(QPointer<AccountState> accountState, const QString &sharePath, const QString &localPath, bool resharingAllowed, QWidget *parent) :
+ShareDialog::ShareDialog(QPointer<AccountState> accountState,
+ const QString &sharePath,
+ const QString &localPath,
+ SharePermissions maxSharingPermissions,
+ QWidget *parent) :
QDialog(parent),
_ui(new Ui::ShareDialog),
_accountState(accountState),
_sharePath(sharePath),
_localPath(localPath),
- _resharingAllowed(resharingAllowed),
+ _maxSharingPermissions(maxSharingPermissions),
_linkWidget(NULL),
- _userGroupWidget(NULL)
+ _userGroupWidget(NULL),
+ _progressIndicator(NULL)
{
setAttribute(Qt::WA_DeleteOnClose);
setObjectName("SharingDialog"); // required as group for saveGeometry call
@@ -97,32 +102,25 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState, const QString &sha
return;
}
- auto theme = Theme::instance();
- bool autoShare = true;
-
- // We only do user/group sharing from 8.2.0
- if (theme->userGroupSharing() && accountState->account()->serverVersionInt() >= ((8 << 16) + (2 << 8))) {
- _userGroupWidget = new ShareUserGroupWidget(accountState->account(), sharePath, localPath, resharingAllowed, this);
- _ui->shareWidgetsLayout->addWidget(_userGroupWidget);
-
-
- QFrame *hline = new QFrame(this);
- hline->setFrameShape(QFrame::HLine);
- QPalette p = palette();
- // Make the line softer:
- p.setColor(QPalette::Foreground, QColor::fromRgba((p.color(QPalette::Foreground).rgba() & 0x00ffffff) | 0x50000000));
- hline->setPalette(p);
- _ui->shareWidgetsLayout->addWidget(hline);
-
-
- autoShare = false;
+ if (QFileInfo(_localPath).isFile()) {
+ ThumbnailJob *job = new ThumbnailJob(_sharePath, _accountState->account(), this);
+ connect(job, SIGNAL(jobFinished(int, QByteArray)), SLOT(slotThumbnailFetched(int, QByteArray)));
+ job->start();
}
- if (theme->linkSharing()) {
- _linkWidget = new ShareLinkWidget(accountState->account(), sharePath, localPath, resharingAllowed, autoShare, this);
- _linkWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
- _ui->shareWidgetsLayout->addWidget(_linkWidget);
- }
+ _progressIndicator = new QProgressIndicator(this);
+ _progressIndicator->startAnimation();
+ _progressIndicator->setToolTip(tr("Retrieving maximum possible sharing permissions from server..."));
+ _ui->shareWidgetsLayout->addWidget(_progressIndicator);
+
+ // Server versions >= 9.1 support the "share-permissions" property
+ // older versions will just return share-permissions: ""
+ auto job = new PropfindJob(accountState->account(), _sharePath);
+ job->setProperties(QList<QByteArray>() << "http://owncloud.org/ns:share-permissions");
+ job->setTimeout(10 * 1000);
+ connect(job, SIGNAL(result(QVariantMap)), SLOT(slotMaxSharingPermissionsReceived(QVariantMap)));
+ connect(job, SIGNAL(finishedWithError(QNetworkReply*)), SLOT(slotMaxSharingPermissionsError()));
+ job->start();
}
ShareDialog::~ShareDialog()
@@ -136,20 +134,62 @@ void ShareDialog::done( int r ) {
QDialog::done(r);
}
-void ShareDialog::getShares()
+void ShareDialog::slotMaxSharingPermissionsReceived(const QVariantMap & result)
{
- if (QFileInfo(_localPath).isFile()) {
- ThumbnailJob *job = new ThumbnailJob(_sharePath, _accountState->account(), this);
- connect(job, SIGNAL(jobFinished(int, QByteArray)), SLOT(slotThumbnailFetched(int, QByteArray)));
- job->start();
+ const QVariant receivedPermissions = result["share-permissions"];
+ if (!receivedPermissions.toString().isEmpty()) {
+ _maxSharingPermissions = static_cast<SharePermissions>(receivedPermissions.toInt());
+ qDebug() << "Received sharing permissions for" << _sharePath << _maxSharingPermissions;
}
- if (_linkWidget) {
- _linkWidget->getShares();
- }
- if (_userGroupWidget != NULL) {
+ showSharingUi();
+}
+
+void ShareDialog::slotMaxSharingPermissionsError()
+{
+ // On error show the share ui anyway. The user can still see shares,
+ // delete them and so on, even though adding new shares or granting
+ // some of the permissions might fail.
+
+ showSharingUi();
+}
+
+void ShareDialog::showSharingUi()
+{
+ _progressIndicator->stopAnimation();
+
+ auto theme = Theme::instance();
+
+ // We only do user/group sharing from 8.2.0
+ bool userGroupSharing =
+ theme->userGroupSharing()
+ && _accountState->account()->serverVersionInt() >= ((8 << 16) + (2 << 8));
+
+ bool autoShare = !userGroupSharing;
+
+
+ if (userGroupSharing) {
+ _userGroupWidget = new ShareUserGroupWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, this);
+ _ui->shareWidgetsLayout->addWidget(_userGroupWidget);
_userGroupWidget->getShares();
}
+
+ if (theme->linkSharing()) {
+ if (userGroupSharing) {
+ QFrame *hline = new QFrame(this);
+ hline->setFrameShape(QFrame::HLine);
+ QPalette p = palette();
+ // Make the line softer:
+ p.setColor(QPalette::Foreground, QColor::fromRgba((p.color(QPalette::Foreground).rgba() & 0x00ffffff) | 0x50000000));
+ hline->setPalette(p);
+ _ui->shareWidgetsLayout->addWidget(hline);
+ }
+
+ _linkWidget = new ShareLinkWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, autoShare, this);
+ _linkWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
+ _ui->shareWidgetsLayout->addWidget(_linkWidget);
+ _linkWidget->getShares();
+ }
}
void ShareDialog::slotThumbnailFetched(const int &statusCode, const QByteArray &reply)
diff --git a/src/gui/sharedialog.h b/src/gui/sharedialog.h
index 0a88c69..b89ba8e 100644
--- a/src/gui/sharedialog.h
+++ b/src/gui/sharedialog.h
@@ -15,12 +15,15 @@
#define SHAREDIALOG_H
#include "accountstate.h"
+#include "sharepermissions.h"
#include <QPointer>
#include <QString>
#include <QDialog>
#include <QWidget>
+class QProgressIndicator;
+
namespace OCC {
namespace Ui {
@@ -38,27 +41,31 @@ public:
explicit ShareDialog(QPointer<AccountState> accountState,
const QString &sharePath,
const QString &localPath,
- bool resharingAllowed,
+ SharePermissions maxSharingPermissions,
QWidget *parent = 0);
~ShareDialog();
- void getShares();
-
private slots:
void done( int r );
+ void slotMaxSharingPermissionsReceived(const QVariantMap &result);
+ void slotMaxSharingPermissionsError();
void slotThumbnailFetched(const int &statusCode, const QByteArray &reply);
void slotAccountStateChanged(int state);
private:
+
+ void showSharingUi();
+
Ui::ShareDialog *_ui;
QPointer<AccountState> _accountState;
QString _sharePath;
QString _localPath;
- bool _resharingAllowed;
+ SharePermissions _maxSharingPermissions;
ShareLinkWidget *_linkWidget;
ShareUserGroupWidget *_userGroupWidget;
+ QProgressIndicator *_progressIndicator;
};
}
diff --git a/src/gui/sharelinkwidget.cpp b/src/gui/sharelinkwidget.cpp
index 4bb2874..5a1fb55 100644
--- a/src/gui/sharelinkwidget.cpp
+++ b/src/gui/sharelinkwidget.cpp
@@ -29,7 +29,7 @@ namespace OCC {
ShareLinkWidget::ShareLinkWidget(AccountPtr account,
const QString &sharePath,
const QString &localPath,
- bool resharingAllowed,
+ SharePermissions maxSharingPermissions,
bool autoShare,
QWidget *parent) :
QWidget(parent),
@@ -40,7 +40,7 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account,
_passwordJobRunning(false),
_manager(NULL),
_share(NULL),
- _resharingAllowed(resharingAllowed),
+ _maxSharingPermissions(maxSharingPermissions),
_autoShare(autoShare),
_passwordRequired(false)
{
@@ -292,7 +292,7 @@ void ShareLinkWidget::slotSharesFetched(const QList<QSharedPointer<Share>> &shar
setShareCheckBoxTitle(true);
} else {
// If its clear that resharing is not allowed, display an error
- if( !_resharingAllowed ) {
+ if( _maxSharingPermissions == 0 ) {
displayError(tr("The file can not be shared because it was shared without sharing permission."));
_ui->checkBox_shareLink->setEnabled(false);
} else if (_autoShare && _ui->checkBox_shareLink->isEnabled()) {
diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h
index 287d713..9a3eea7 100644
--- a/src/gui/sharelinkwidget.h
+++ b/src/gui/sharelinkwidget.h
@@ -16,6 +16,7 @@
#define SHARELINKWIDGET_H
#include "accountfwd.h"
+#include "sharepermissions.h"
#include "QProgressIndicator.h"
#include <QDialog>
#include <QVariantMap>
@@ -47,7 +48,7 @@ public:
explicit ShareLinkWidget(AccountPtr account,
const QString &sharePath,
const QString &localPath,
- bool resharingAllowed,
+ SharePermissions maxSharingPermissions,
bool autoShare = false,
QWidget *parent = 0);
~ShareLinkWidget();
@@ -104,7 +105,7 @@ private:
ShareManager *_manager;
QSharedPointer<LinkShare> _share;
- bool _resharingAllowed;
+ SharePermissions _maxSharingPermissions;
bool _isFile;
bool _autoShare;
bool _passwordRequired;
diff --git a/src/gui/sharepermissions.h b/src/gui/sharepermissions.h
new file mode 100644
index 0000000..02c7a0b
--- /dev/null
+++ b/src/gui/sharepermissions.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) by Roeland Jago Douma <rullzer at owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef SHAREPERMISSIONS_H
+#define SHAREPERMISSIONS_H
+
+#include <qglobal.h>
+
+namespace OCC {
+
+/**
+ * Possible permissions, must match the server permission constants
+ */
+enum SharePermission {
+ SharePermissionRead = 1,
+ SharePermissionUpdate = 2,
+ SharePermissionCreate = 4,
+ SharePermissionDelete = 8,
+ SharePermissionShare = 16,
+ SharePermissionDefault = 1 << 30
+};
+Q_DECLARE_FLAGS(SharePermissions, SharePermission)
+Q_DECLARE_OPERATORS_FOR_FLAGS(SharePermissions)
+
+} // namespace OCC
+
+#endif
diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp
index 01a26f3..4416067 100644
--- a/src/gui/shareusergroupwidget.cpp
+++ b/src/gui/shareusergroupwidget.cpp
@@ -42,13 +42,17 @@
namespace OCC {
-ShareUserGroupWidget::ShareUserGroupWidget(AccountPtr account, const QString &sharePath, const QString &localPath, bool resharingAllowed, QWidget *parent) :
+ShareUserGroupWidget::ShareUserGroupWidget(AccountPtr account,
+ const QString &sharePath,
+ const QString &localPath,
+ SharePermissions maxSharingPermissions,
+ QWidget *parent) :
QWidget(parent),
_ui(new Ui::ShareUserGroupWidget),
_account(account),
_sharePath(sharePath),
_localPath(localPath),
- _resharingAllowed(resharingAllowed),
+ _maxSharingPermissions(maxSharingPermissions),
_disableCompleterActivated(false)
{
setAttribute(Qt::WA_DeleteOnClose);
@@ -178,7 +182,7 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
continue;
}
- ShareWidget *s = new ShareWidget(share, _isFile, _ui->scrollArea);
+ ShareWidget *s = new ShareWidget(share, _maxSharingPermissions, _isFile, _ui->scrollArea);
connect(s, SIGNAL(resizeRequested()), this, SLOT(slotAdjustScrollWidgetSize()));
layout->addWidget(s);
@@ -246,15 +250,15 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex & index)
* https://github.com/owncloud/core/issues/22122#issuecomment-185637344
*/
if (sharee->type() == Sharee::Federated) {
- int permissions = Share::PermissionRead | Share::PermissionUpdate;
+ int permissions = SharePermissionRead | SharePermissionUpdate;
if (!_isFile) {
- permissions |= Share::PermissionCreate | Share::PermissionDelete;
+ permissions |= SharePermissionCreate | SharePermissionDelete;
}
_manager->createShare(_sharePath, Share::ShareType(sharee->type()),
- sharee->shareWith(), Share::Permission(permissions));
+ sharee->shareWith(), SharePermission(permissions));
} else {
_manager->createShare(_sharePath, Share::ShareType(sharee->type()),
- sharee->shareWith(), Share::PermissionDefault);
+ sharee->shareWith(), SharePermissionDefault);
}
_ui->shareeLineEdit->setEnabled(false);
@@ -276,6 +280,7 @@ void ShareUserGroupWidget::displayError(int code, const QString& message)
}
ShareWidget::ShareWidget(QSharedPointer<Share> share,
+ SharePermissions maxSharingPermissions,
bool isFile,
QWidget *parent) :
QWidget(parent),
@@ -291,10 +296,13 @@ ShareWidget::ShareWidget(QSharedPointer<Share> share,
QMenu *menu = new QMenu(this);
_permissionCreate = new QAction(tr("create"), this);
_permissionCreate->setCheckable(true);
+ _permissionCreate->setEnabled(maxSharingPermissions & SharePermissionCreate);
_permissionUpdate = new QAction(tr("change"), this);
_permissionUpdate->setCheckable(true);
+ _permissionUpdate->setEnabled(maxSharingPermissions & SharePermissionUpdate);
_permissionDelete = new QAction(tr("delete"), this);
_permissionDelete->setCheckable(true);
+ _permissionDelete->setEnabled(maxSharingPermissions & SharePermissionDelete);
menu->addAction(_permissionUpdate);
/*
@@ -313,6 +321,10 @@ ShareWidget::ShareWidget(QSharedPointer<Share> share,
// Set the permissions checkboxes
displayPermissions();
+ _ui->permissionShare->setEnabled(maxSharingPermissions & SharePermissionShare);
+ _ui->permissionsEdit->setEnabled(maxSharingPermissions
+ & (SharePermissionCreate | SharePermissionUpdate | SharePermissionDelete));
+
connect(_permissionUpdate, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged()));
connect(_permissionCreate, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged()));
connect(_permissionDelete, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged()));
@@ -354,21 +366,24 @@ void ShareWidget::slotEditPermissionsChanged()
{
setEnabled(false);
- Share::Permissions permissions = Share::PermissionRead;
+ Share::Permissions permissions = SharePermissionRead;
if (_ui->permissionShare->checkState() == Qt::Checked) {
- permissions |= Share::PermissionShare;
+ permissions |= SharePermissionShare;
}
if (_ui->permissionsEdit->checkState() == Qt::Checked) {
- permissions |= Share::PermissionUpdate;
+ if (_permissionUpdate->isEnabled())
+ permissions |= SharePermissionUpdate;
/*
* Files can't have create or delete permisisons
*/
if (!_isFile) {
- permissions |= Share::PermissionCreate;
- permissions |= Share::PermissionDelete;
+ if (_permissionCreate->isEnabled())
+ permissions |= SharePermissionCreate;
+ if (_permissionDelete->isEnabled())
+ permissions |= SharePermissionDelete;
}
}
@@ -379,22 +394,22 @@ void ShareWidget::slotPermissionsChanged()
{
setEnabled(false);
- Share::Permissions permissions = Share::PermissionRead;
+ Share::Permissions permissions = SharePermissionRead;
if (_permissionUpdate->isChecked()) {
- permissions |= Share::PermissionUpdate;
+ permissions |= SharePermissionUpdate;
}
if (_permissionCreate->isChecked()) {
- permissions |= Share::PermissionCreate;
+ permissions |= SharePermissionCreate;
}
if (_permissionDelete->isChecked()) {
- permissions |= Share::PermissionDelete;
+ permissions |= SharePermissionDelete;
}
if (_ui->permissionShare->checkState() == Qt::Checked) {
- permissions |= Share::PermissionShare;
+ permissions |= SharePermissionShare;
}
_share->setPermissions(permissions);
@@ -444,19 +459,19 @@ void ShareWidget::displayPermissions()
_ui->permissionShare->setCheckState(Qt::Unchecked);
_permissionUpdate->setChecked(false);
- if (_share->getPermissions() & Share::PermissionUpdate) {
+ if (_share->getPermissions() & SharePermissionUpdate) {
_permissionUpdate->setChecked(true);
_ui->permissionsEdit->setCheckState(Qt::Checked);
}
- if (!_isFile && _share->getPermissions() & Share::PermissionCreate) {
+ if (!_isFile && _share->getPermissions() & SharePermissionCreate) {
_permissionCreate->setChecked(true);
_ui->permissionsEdit->setCheckState(Qt::Checked);
}
- if (!_isFile && _share->getPermissions() & Share::PermissionDelete) {
+ if (!_isFile && _share->getPermissions() & SharePermissionDelete) {
_permissionDelete->setChecked(true);
_ui->permissionsEdit->setCheckState(Qt::Checked);
}
- if (_share->getPermissions() & Share::PermissionShare) {
+ if (_share->getPermissions() & SharePermissionShare) {
_ui->permissionShare->setCheckState(Qt::Checked);
}
}
diff --git a/src/gui/shareusergroupwidget.h b/src/gui/shareusergroupwidget.h
index cbe2263..2d47fcd 100644
--- a/src/gui/shareusergroupwidget.h
+++ b/src/gui/shareusergroupwidget.h
@@ -15,6 +15,7 @@
#define SHAREUSERGROUPWIDGET_H
#include "accountfwd.h"
+#include "sharepermissions.h"
#include "QProgressIndicator.h"
#include <QDialog>
#include <QWidget>
@@ -48,7 +49,10 @@ class ShareWidget : public QWidget
Q_OBJECT
public:
- explicit ShareWidget(QSharedPointer<Share> Share, bool isFile, QWidget *parent = 0);
+ explicit ShareWidget(QSharedPointer<Share> Share,
+ SharePermissions maxSharingPermissions,
+ bool isFile,
+ QWidget *parent = 0);
~ShareWidget();
QSharedPointer<Share> share() const;
@@ -90,7 +94,7 @@ public:
explicit ShareUserGroupWidget(AccountPtr account,
const QString &sharePath,
const QString &localPath,
- bool resharingAllowed,
+ SharePermissions maxSharingPermissions,
QWidget *parent = 0);
~ShareUserGroupWidget();
@@ -121,7 +125,7 @@ private:
ShareeModel *_completerModel;
QTimer _completionTimer;
- bool _resharingAllowed;
+ SharePermissions _maxSharingPermissions;
bool _isFile;
bool _disableCompleterActivated; // in order to avoid that we share the contents twice
ShareManager *_manager;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list