using ComPDFKit.PDFDocument; using PDF_Office.Model; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel; namespace PDF_Office.Helper { public class SecurityHelper { public static bool CheckHaveAllPermissions(CPDFDocument document) { CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo(); if (permissionsInfo.AllowsDocumentChanges && permissionsInfo.AllowsPrinting && permissionsInfo.AllowsHighQualityPrinting && permissionsInfo.AllowsCopying && permissionsInfo.AllowsDocumentAssembly && permissionsInfo.AllowsFormFieldEntry && permissionsInfo.AllowsCommenting) { return true; } else { return false; } } 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; } } } string password = ""; DialogParameters value = new DialogParameters(); value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword); value.Add(ParameterNames.PDFDocument, document); bool isDiscryptied = false; dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => { isDiscryptied = e.Parameters.GetValue(ParameterNames.PasswordResult); password = e.Parameters.GetValue(ParameterNames.Password); }); return isDiscryptied; } } }