Browse Source

安全-弹窗校验Bug

liuaoran 2 years ago
parent
commit
015900f492

+ 18 - 1
PDF Office/Helper/SecurityHelper.cs

@@ -33,11 +33,28 @@ namespace PDF_Office.Helper
 
 
         public static bool VerifyPassword(CPDFDocument document ,EnumPasswordKind enumPasswordKind, IDialogService dialogService)
         public static bool VerifyPassword(CPDFDocument document ,EnumPasswordKind enumPasswordKind, IDialogService dialogService)
         {
         {
+            if (enumPasswordKind == EnumPasswordKind.StatusOpenPassword)
+            {
+                if (!document.IsLocked)
+                {
+                    return true;
+                }
+            }
+            else if(enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword)
+            {
+                if (!document.IsLocked)
+                {
+                    if (CheckHaveAllPermissions(document))
+                    {
+                        return true;
+                    }
+                }
+            }
             DialogParameters value = new DialogParameters();
             DialogParameters value = new DialogParameters();
             value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
             value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
             value.Add(ParameterNames.PDFDocument, document);
             value.Add(ParameterNames.PDFDocument, document);
             bool isDiscryptied = false;
             bool isDiscryptied = false;
-            dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => { isDiscryptied = e.Parameters.GetValue<bool>("CheckPassword"); });
+            dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => { isDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult); });
             return isDiscryptied;
             return isDiscryptied;
         }
         }
     }
     }

+ 1 - 0
PDF Office/Model/ParameterNames.cs

@@ -111,5 +111,6 @@ namespace PDF_Office.Model
         /// 密码
         /// 密码
         /// </summary>
         /// </summary>
         public static string PasswordKind = "PasswordKind";
         public static string PasswordKind = "PasswordKind";
+        public static string PasswordResult = "PasswordResult";
     }
     }
 }
 }

+ 2 - 2
PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/CheckPasswordDialogViewModel.cs

@@ -110,7 +110,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
                 if (tempDocument.UnlockWithPassword(Password))
                 if (tempDocument.UnlockWithPassword(Password))
                 {
                 {
                     var dialogResult = new DialogResult(ButtonResult.OK);
                     var dialogResult = new DialogResult(ButtonResult.OK);
-                    dialogResult.Parameters.Add("CheckPasswordResult", true);
+                    dialogResult.Parameters.Add(ParameterNames.PasswordResult, true);
                     RequestClose.Invoke(dialogResult);
                     RequestClose.Invoke(dialogResult);
                 }
                 }
                 else
                 else
@@ -125,7 +125,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
                     if (SecurityHelper.CheckHaveAllPermissions(tempDocument))
                     if (SecurityHelper.CheckHaveAllPermissions(tempDocument))
                     {
                     {
                         var dialogResult = new DialogResult(ButtonResult.OK);
                         var dialogResult = new DialogResult(ButtonResult.OK);
-                        dialogResult.Parameters.Add("CheckPasswordResult", true);
+                        dialogResult.Parameters.Add(ParameterNames.PasswordResult, true);
                         RequestClose.Invoke(dialogResult);
                         RequestClose.Invoke(dialogResult);
                     }
                     }
                     else
                     else

+ 4 - 1
PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/DeleteSafetySettingsDialogViewModel.cs

@@ -231,7 +231,10 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
             {
             {
                 document = doc;
                 document = doc;
                 DeleteSecurityMsg = "Are you sure you want to remove the security settings for”" + document.FileName + "” documents?";
                 DeleteSecurityMsg = "Are you sure you want to remove the security settings for”" + document.FileName + "” documents?";
-                SecurityHelper.VerifyPassword(document, EnumPasswordKind.StatusPermissionsPassword, dialogs);
+                if (SecurityHelper.VerifyPassword(document, EnumPasswordKind.StatusPermissionsPassword, dialogs))
+                {
+
+                }
             }
             }
 
 
         }
         }