123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- using ComPDFKit.PDFDocument;
- using PDF_Office.Model;
- using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
- 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 CheckHaveSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet)
- {
- CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
- ///如果需求这个权限
- if(((enumPermissionsSet & EnumPermissionsSet.StatusAllowsDocumentChanges) == EnumPermissionsSet.StatusAllowsDocumentChanges ) && (!permissionsInfo.AllowsDocumentChanges))
- {
- return false;
- }
- if(((enumPermissionsSet& EnumPermissionsSet.StatusAllowsPrinting) == EnumPermissionsSet.StatusAllowsPrinting) && (!permissionsInfo.AllowsPrinting))
- {
- return false;
- }
- if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsHighQualityPrinting) == EnumPermissionsSet.StatusAllowsHighQualityPrinting) && (!permissionsInfo.AllowsHighQualityPrinting))
- {
- return false;
- }
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCopying) == EnumPermissionsSet.StatusAllowsCopying)&& (!permissionsInfo.AllowsCopying))
- {
- return false;
- }
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsDocumentAssembly) == EnumPermissionsSet.StatusAllowsDocumentAssembly) && (!permissionsInfo.AllowsDocumentAssembly))
- {
- return false;
- }
- if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsFormFieldEntry) == EnumPermissionsSet.StatusAllowsFormFieldEntry) && (!permissionsInfo.AllowsDocumentAssembly))
- {
- return false;
- }
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCommenting) == EnumPermissionsSet.StatusAllowsCommenting) && (!permissionsInfo.AllowsCommenting))
- {
- return false;
- }
- return true;
- }
- public static bool VerifyPasswordOnlyBool(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<bool>(ParameterNames.PasswordResult);
- password = e.Parameters.GetValue<string>(ParameterNames.Password);
- });
- return isDiscryptied;
- }
- public static VerifyPasswordResult VerifyPasswordByPasswordKind(CPDFDocument document, EnumPasswordKind enumPasswordKind, IDialogService dialogService)
- {
- VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
- if ((!document.IsLocked)&&
- ((enumPasswordKind == EnumPasswordKind.StatusOpenPassword)||
- (enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword)&& CheckHaveAllPermissions(document)))
- {
- verifyPasswordResult.IsDiscryptied = true;
- verifyPasswordResult.Password = null;
- return verifyPasswordResult;
- }
- DialogParameters value = new DialogParameters();
- value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
- value.Add(ParameterNames.PDFDocument, document);
- dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
- verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
- verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
- });
- return verifyPasswordResult;
- }
- public static VerifyPasswordResult VerifyPasswordForSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet, IDialogService dialogService)
- {
- VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
- if ((!document.IsLocked) &&CheckHaveSelectedPermissions(document, enumPermissionsSet))
- {
- verifyPasswordResult.IsDiscryptied = true;
- verifyPasswordResult.Password = null;
- return verifyPasswordResult;
- }
- DialogParameters value = new DialogParameters();
- if (enumPermissionsSet == EnumPermissionsSet.None)
- {
- value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusOpenPassword);
- }
- else
- {
- value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
- }
- value.Add(ParameterNames.PDFDocument, document);
- dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
- verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
- verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
- });
- return verifyPasswordResult;
- }
- }
- public class VerifyPasswordResult
- {
- public bool IsDiscryptied;
- public string Password;
- }
- }
|