SecurityHelper.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using ComPDFKit.PDFDocument;
  2. using PDF_Office.Model;
  3. using Prism.Services.Dialogs;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
  10. namespace PDF_Office.Helper
  11. {
  12. public class SecurityHelper
  13. {
  14. public static bool CheckHaveAllPermissions(CPDFDocument document)
  15. {
  16. CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
  17. if (permissionsInfo.AllowsDocumentChanges &&
  18. permissionsInfo.AllowsPrinting &&
  19. permissionsInfo.AllowsHighQualityPrinting &&
  20. permissionsInfo.AllowsCopying &&
  21. permissionsInfo.AllowsDocumentAssembly &&
  22. permissionsInfo.AllowsFormFieldEntry &&
  23. permissionsInfo.AllowsCommenting)
  24. {
  25. return true;
  26. }
  27. else
  28. {
  29. return false;
  30. }
  31. }
  32. public static bool VerifyPassword(CPDFDocument document ,EnumPasswordKind enumPasswordKind, IDialogService dialogService)
  33. {
  34. if (enumPasswordKind == EnumPasswordKind.StatusOpenPassword)
  35. {
  36. if (!document.IsLocked)
  37. {
  38. return true;
  39. }
  40. }
  41. else if(enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword)
  42. {
  43. if (!document.IsLocked)
  44. {
  45. if (CheckHaveAllPermissions(document))
  46. {
  47. return true;
  48. }
  49. }
  50. }
  51. string password = "";
  52. DialogParameters value = new DialogParameters();
  53. value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
  54. value.Add(ParameterNames.PDFDocument, document);
  55. bool isDiscryptied = false;
  56. dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
  57. isDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
  58. password = e.Parameters.GetValue<string>(ParameterNames.Password);
  59. });
  60. return isDiscryptied;
  61. }
  62. }
  63. }