[Sharing] Files should not have create permissions
authorRoeland Jago Douma <rullzer@owncloud.com>
Mon, 30 Nov 2015 14:47:10 +0000 (15:47 +0100)
committerRoeland Jago Douma <rullzer@owncloud.com>
Mon, 30 Nov 2015 14:47:10 +0000 (15:47 +0100)
src/gui/shareusergroupwidget.cpp

index ed46dad048b5889ea891a5ce608be68180829a30..d0cd2f37c7bc2228bcd350479691f659c0b341de 100644 (file)
@@ -213,13 +213,17 @@ ShareWidget::ShareWidget(QSharedPointer<Share> share,
     QMenu *menu = new QMenu(this);
     _permissionCreate = new QAction(tr("create"), this);
     _permissionCreate->setCheckable(true);
-    menu->addAction(_permissionCreate);
     _permissionUpdate = new QAction(tr("change"), this);
     _permissionUpdate->setCheckable(true);
-    menu->addAction(_permissionUpdate);
     _permissionDelete = new QAction(tr("delete"), this);
     _permissionDelete->setCheckable(true);
+
+    menu->addAction(_permissionUpdate);
+    /*
+     * Files can't have create or delete permissions
+     */
     if (!_isFile) {
+        menu->addAction(_permissionCreate);
         menu->addAction(_permissionDelete);
     }
     _ui->permissionToolButton->setMenu(menu);
@@ -266,10 +270,13 @@ void ShareWidget::slotEditPermissionsChanged()
     }
     
     if (_ui->permissionsEdit->checkState() == Qt::Checked) {
-        permissions |= Share::PermissionCreate;
         permissions |= Share::PermissionUpdate;
 
+        /*
+         * Files can't have create or delete permisisons
+         */
         if (!_isFile) {
+            permissions |= Share::PermissionCreate;
             permissions |= Share::PermissionDelete;
         }
     }
@@ -350,7 +357,7 @@ void ShareWidget::displayPermissions()
         _permissionUpdate->setChecked(true);
         _ui->permissionsEdit->setCheckState(Qt::Checked);
     }
-    if (_share->getPermissions() & Share::PermissionCreate) {
+    if (!_isFile && _share->getPermissions() & Share::PermissionCreate) {
         _permissionCreate->setChecked(true);
         _ui->permissionsEdit->setCheckState(Qt::Checked);
     }