Преглед изворни кода

Bug 2097: Checkbox to set permissions recursively on Properties dialog is missing, when changing owner and group is not supported

https://winscp.net/tracker/2097
(cherry picked from commit 50f1c918fbda45ce807176446d942c98ddbec54a)

Source commit: 4908e7586b31705ec5d4f04e54edbe85e1c207dd
Martin Prikryl пре 3 година
родитељ
комит
fb4d2bc021
1 измењених фајлова са 7 додато и 1 уклоњено
  1. 7 1
      source/forms/Properties.cpp

+ 7 - 1
source/forms/Properties.cpp

@@ -427,7 +427,13 @@ void __fastcall TPropertiesDialog::SetFileProperties(const TRemoteProperties & v
   GroupOwnerRightsBevel->Visible = HasAnything;
   GroupOwnerRightsBevel->Visible = HasAnything;
 
 
   RecursiveCheck2->Checked = value.Recursive;
   RecursiveCheck2->Checked = value.Recursive;
-  RecursiveCheck2->Visible = (GroupComboBox->Visible || OwnerComboBox->Visible) && FAnyDirectories;
+  RecursiveCheck2->Visible =
+    (GroupComboBox->Visible ||
+     OwnerComboBox->Visible ||
+     // Recursion is always supported for permissions and never for ACL.
+     // If this ever changes we will have to introduce respective capability check.
+     (HasRights && !FLAGSET(FAllowedChanges, cpAcl))) &&
+    FAnyDirectories;
   RecursiveBevel->Visible = RecursiveCheck2->Visible || HasRights;
   RecursiveBevel->Visible = RecursiveCheck2->Visible || HasRights;
 
 
   UpdateControls();
   UpdateControls();