@memberjunction/core-entities 5.29.0 → 5.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/custom/MJConversationDetailEntityExtended.d.ts +31 -0
  2. package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -0
  3. package/dist/custom/MJConversationDetailEntityExtended.js +106 -0
  4. package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -0
  5. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts +31 -0
  6. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts.map +1 -0
  7. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js +151 -0
  8. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js.map +1 -0
  9. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts +45 -0
  10. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts.map +1 -0
  11. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js +253 -0
  12. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js.map +1 -0
  13. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts +28 -0
  14. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts.map +1 -0
  15. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js +144 -0
  16. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js.map +1 -0
  17. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts +45 -0
  18. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts.map +1 -0
  19. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js +169 -0
  20. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js.map +1 -0
  21. package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts +40 -0
  22. package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts.map +1 -0
  23. package/dist/custom/PermissionProviders/CollectionPermissionProvider.js +220 -0
  24. package/dist/custom/PermissionProviders/CollectionPermissionProvider.js.map +1 -0
  25. package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts +47 -0
  26. package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts.map +1 -0
  27. package/dist/custom/PermissionProviders/DashboardPermissionProvider.js +218 -0
  28. package/dist/custom/PermissionProviders/DashboardPermissionProvider.js.map +1 -0
  29. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts +25 -0
  30. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts.map +1 -0
  31. package/dist/custom/PermissionProviders/EntityPermissionProvider.js +129 -0
  32. package/dist/custom/PermissionProviders/EntityPermissionProvider.js.map +1 -0
  33. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts +24 -0
  34. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts.map +1 -0
  35. package/dist/custom/PermissionProviders/QueryPermissionProvider.js +123 -0
  36. package/dist/custom/PermissionProviders/QueryPermissionProvider.js.map +1 -0
  37. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts +39 -0
  38. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts.map +1 -0
  39. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js +193 -0
  40. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js.map +1 -0
  41. package/dist/custom/PermissionProviders/index.d.ts +16 -0
  42. package/dist/custom/PermissionProviders/index.d.ts.map +1 -0
  43. package/dist/custom/PermissionProviders/index.js +41 -0
  44. package/dist/custom/PermissionProviders/index.js.map +1 -0
  45. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts +105 -0
  46. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -0
  47. package/dist/custom/Permissions/BaseShareEntityExtended.js +162 -0
  48. package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -0
  49. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts +22 -0
  50. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts.map +1 -0
  51. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +75 -0
  52. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js.map +1 -0
  53. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts +22 -0
  54. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts.map +1 -0
  55. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +114 -0
  56. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js.map +1 -0
  57. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts +25 -0
  58. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts.map +1 -0
  59. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +101 -0
  60. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js.map +1 -0
  61. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts +32 -0
  62. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts.map +1 -0
  63. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js +95 -0
  64. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js.map +1 -0
  65. package/dist/custom/Permissions/index.d.ts +13 -0
  66. package/dist/custom/Permissions/index.d.ts.map +1 -0
  67. package/dist/custom/Permissions/index.js +22 -0
  68. package/dist/custom/Permissions/index.js.map +1 -0
  69. package/dist/custom/Permissions/shareNotification.d.ts +72 -0
  70. package/dist/custom/Permissions/shareNotification.d.ts.map +1 -0
  71. package/dist/custom/Permissions/shareNotification.js +98 -0
  72. package/dist/custom/Permissions/shareNotification.js.map +1 -0
  73. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts +63 -1
  74. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts.map +1 -1
  75. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js +244 -27
  76. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js.map +1 -1
  77. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts +7 -0
  78. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
  79. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +13 -0
  80. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
  81. package/dist/engines/GeoDataEngine.d.ts +42 -8
  82. package/dist/engines/GeoDataEngine.d.ts.map +1 -1
  83. package/dist/engines/GeoDataEngine.js +191 -36
  84. package/dist/engines/GeoDataEngine.js.map +1 -1
  85. package/dist/engines/PermissionEngine.d.ts +142 -0
  86. package/dist/engines/PermissionEngine.d.ts.map +1 -0
  87. package/dist/engines/PermissionEngine.js +343 -0
  88. package/dist/engines/PermissionEngine.js.map +1 -0
  89. package/dist/engines/UserInfoEngine.d.ts +6 -1
  90. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  91. package/dist/engines/UserInfoEngine.js +21 -5
  92. package/dist/engines/UserInfoEngine.js.map +1 -1
  93. package/dist/engines/conversations.d.ts +35 -0
  94. package/dist/engines/conversations.d.ts.map +1 -1
  95. package/dist/engines/conversations.js +103 -16
  96. package/dist/engines/conversations.js.map +1 -1
  97. package/dist/generated/entity_subclasses.d.ts +579 -52
  98. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  99. package/dist/generated/entity_subclasses.js +697 -66
  100. package/dist/generated/entity_subclasses.js.map +1 -1
  101. package/dist/index.d.ts +4 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +8 -0
  104. package/dist/index.js.map +1 -1
  105. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessControlRuleProvider.js","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/AccessControlRuleProvider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAEH,QAAQ,EAIR,sBAAsB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAkBnE,oGAAoG;AACpG,MAAM,gBAAgB,GAAa;IAC/B,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB;IACrF,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW;CAC5E,CAAC;AAEF;;;;;;;;;;;GAWG;AAEI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,sBAAsB;IAA9D;;QACM,eAAU,GAAG,sBAAsB,CAAC;QACpC,gBAAW,GAChB,6GAA6G,CAAC;QACzG,0BAAqB,GAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,qBAAgB,GAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvF,iBAAY,GAAG,KAAK,CAAC;QACrB,uBAAkB,GAAG,IAAI,CAAC;IA2PvC,CAAC;IAzPY,gBAAgB;QACrB,OAAO,IAAI,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,IAAc,EACd,YAAoB,EACpB,UAAyB,EACzB,MAAwB;QAExB,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,mCAAmC;aAC9C,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,mBAAmB,YAAY,GAAG;aAC7C,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,OAAO;gBACX,CAAC,CAAC,YAAY,MAAM,oBAAoB;gBACxC,CAAC,CAAC,wBAAwB,MAAM,OAAO,YAAY,IAAI,UAAU,EAAE;SAC1E,CAAC;IACN,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAc,EAAE,YAAoB,EAAE,UAAkB;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACnC,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO;aAC3E,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAc,EAAE,YAAqB;QACxD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzE,MAAM,cAAc,GAAa;YAC7B,sCAAsC,IAAI,CAAC,EAAE,IAAI;YACjD,wCAAwC;SAC3C,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,yCAAyC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,MAAM,GAAG,IAAI,aAAa,uDAAuD,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,MAAM,mBAAmB,QAAQ,GAAG,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,0BAA0B,EAC1B,MAAM,EACN,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,iBAAiB,CAAC,EACvD,kBAAkB,CACrB,CAAC;QAIF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAS;YACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACxC,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;gBAC5C,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI;gBAC/D,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACnC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aAClF,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,YAAoB,EAAE,UAAkB;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACxC,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,GAAG,CAAC,WAA0B;gBAC3C,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBACzC,OAAO;gBACP,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACM,KAAK,CAAC,4BAA4B,CAAC,OAAiB;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,0BAA0B,EAC1B,qCAAqC,OAAO,CAAC,EAAE,IAAI;YAC/C,2BAA2B,OAAO,CAAC,EAAE,IAAI;YACzC,qDAAqD,EACzD,gBAAgB,EAChB,8BAA8B,CACjC,CAAC;QAEF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACxC,YAAY,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;gBACrC,UAAU,EAAE,GAAG,CAAC,QAAQ;gBACxB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;gBAC9E,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACM,KAAK,CAAC,2BAA2B,CAAC,OAAiB;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,0BAA0B,EAC1B,oBAAoB,OAAO,CAAC,EAAE,uDAAuD,EACrF,gBAAgB,EAChB,6BAA6B,CAChC,CAAC;QAEF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACxC,YAAY,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;gBACrC,UAAU,EAAE,GAAG,CAAC,QAAQ;gBACxB,WAAW,EAAE,GAAG,CAAC,WAA0B;gBAC3C,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBACzC,OAAO;gBACP,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,UAAkB;QACtC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,OAAO,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QAC7D,OAAO,IAAI,CAAC,SAAS,CACjB,0BAA0B,EAC1B,aAAa,QAAQ,mBAAmB,QAAQ,uDAAuD,EACvG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,KAAK,QAAQ,CAAC,EACzE,kBAAkB,CACrB,CAAC;IACN,CAAC;IAEO,kBAAkB,CAAC,GAAyB;QAChD,QAAQ,GAAG,CAAC,WAAW,EAAE,CAAC;YACtB,KAAK,MAAM;gBACP,IAAI,CAAC,GAAG,CAAC,SAAS;oBAAE,OAAO,SAAS,CAAC;gBACrC,OAAO,IAAI,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,SAAU,CAAC,CAAC,EAAE,IAAI,CAAC;YACpF,KAAK,UAAU;gBACX,OAAO,yBAAyB,CAAC;YACrC,KAAK,QAAQ;gBACT,OAAO,wBAAwB,CAAC;YACpC;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,IAAc,EAAE,IAA4B;QAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,kBAAkB,CAAC,IAAc,EAAE,GAAyB;QAChE,QAAQ,GAAG,CAAC,WAAW,EAAE,CAAC;YACtB,KAAK,UAAU,CAAC;YAChB,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC;YAChB,KAAK,MAAM;gBACP,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,KAAK,MAAM;gBACP,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,SAAU,CAAC,CAAC,CAAC;YACzG;gBACI,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,GAAyB;QACxC,OAAO,IAAI,CAAC,cAAc,CAAC;YACvB,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,MAAM,EAAE,GAAG,CAAC,SAAS;YACrB,MAAM,EAAE,GAAG,CAAC,SAAS;YACrB,MAAM,EAAE,GAAG,CAAC,SAAS;YACrB,KAAK,EAAE,GAAG,CAAC,QAAQ;SACtB,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAlQY,yBAAyB;IADrC,aAAa,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;GACxD,yBAAyB,CAkQrC"}
@@ -0,0 +1,28 @@
1
+ import { GranteeType, NormalizedPermission, PermissionAction, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
2
+ /**
3
+ * Wraps the Phase 1 {@link UserInfoEngine} application-access logic behind the
4
+ * unified {@link PermissionProviderBase} contract. Unlike `UserHasApplicationAccess`
5
+ * which operates on the *current* user only, this provider reasons about arbitrary
6
+ * users by inspecting the raw ApplicationRole catalog.
7
+ *
8
+ * Mapping: `Read` = CanAccess, `Admin` = CanAdmin.
9
+ *
10
+ * `resourceType` is always `"Applications"`. `resourceId` is the application ID.
11
+ *
12
+ * An application with zero ApplicationRole records is "open access" — every user
13
+ * has Read (but not Admin) on it.
14
+ */
15
+ export declare class ApplicationRolePermissionProvider extends PermissionProviderBase {
16
+ readonly DomainName = "Application Roles";
17
+ readonly Description = "Role-based authorization for MJ applications (Phase 1). Apps with no ApplicationRole records are open-access.";
18
+ readonly SupportedGranteeTypes: GranteeType[];
19
+ readonly SupportedActions: PermissionAction[];
20
+ readonly SupportsDeny = false;
21
+ GetResourceTypes(): string[];
22
+ CheckPermission(user: UserInfo, resourceType: string, resourceId: string | null, action: PermissionAction): Promise<PermissionCheckResult>;
23
+ GetEffectivePermissions(user: UserInfo, resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
24
+ GetUserResources(user: UserInfo, resourceType?: string): Promise<NormalizedPermission[]>;
25
+ GetResourcePermissions(resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
26
+ private actionsForUserApp;
27
+ }
28
+ //# sourceMappingURL=ApplicationRolePermissionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationRolePermissionProvider.d.ts","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/ApplicationRolePermissionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EAEX,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAK9B;;;;;;;;;;;;GAYG;AACH,qBACa,iCAAkC,SAAQ,sBAAsB;IACzE,QAAQ,CAAC,UAAU,uBAAuB;IAC1C,QAAQ,CAAC,WAAW,mHACgG;IACpH,QAAQ,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAY;IACzD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAqB;IAClE,QAAQ,CAAC,YAAY,SAAS;IAErB,gBAAgB,IAAI,MAAM,EAAE;IAI/B,eAAe,CACjB,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IA2B3B,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAYlH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgBxF,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmCvG,OAAO,CAAC,iBAAiB;CAqB5B"}
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Metadata, PermissionProviderBase, } from '@memberjunction/core';
8
+ import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
9
+ import { UserInfoEngine } from '../../engines/UserInfoEngine.js';
10
+ /**
11
+ * Wraps the Phase 1 {@link UserInfoEngine} application-access logic behind the
12
+ * unified {@link PermissionProviderBase} contract. Unlike `UserHasApplicationAccess`
13
+ * which operates on the *current* user only, this provider reasons about arbitrary
14
+ * users by inspecting the raw ApplicationRole catalog.
15
+ *
16
+ * Mapping: `Read` = CanAccess, `Admin` = CanAdmin.
17
+ *
18
+ * `resourceType` is always `"Applications"`. `resourceId` is the application ID.
19
+ *
20
+ * An application with zero ApplicationRole records is "open access" — every user
21
+ * has Read (but not Admin) on it.
22
+ */
23
+ let ApplicationRolePermissionProvider = class ApplicationRolePermissionProvider extends PermissionProviderBase {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.DomainName = 'Application Roles';
27
+ this.Description = 'Role-based authorization for MJ applications (Phase 1). Apps with no ApplicationRole records are open-access.';
28
+ this.SupportedGranteeTypes = ['Role'];
29
+ this.SupportedActions = ['Read', 'Admin'];
30
+ this.SupportsDeny = false;
31
+ }
32
+ GetResourceTypes() {
33
+ return ['Applications'];
34
+ }
35
+ async CheckPermission(user, resourceType, resourceId, action) {
36
+ if (resourceType !== 'Applications') {
37
+ return {
38
+ Allowed: false,
39
+ DomainName: this.DomainName,
40
+ Reason: `Unsupported resource type '${resourceType}'; expected 'Applications'`,
41
+ };
42
+ }
43
+ if (!resourceId) {
44
+ return {
45
+ Allowed: false,
46
+ DomainName: this.DomainName,
47
+ Reason: 'Application permissions require a specific application ID',
48
+ };
49
+ }
50
+ const actions = this.actionsForUserApp(user, resourceId);
51
+ const allowed = actions.includes(action);
52
+ return {
53
+ Allowed: allowed,
54
+ DomainName: this.DomainName,
55
+ Reason: allowed
56
+ ? `User has ${action} on application '${resourceId}'`
57
+ : `User lacks ${action} on application '${resourceId}'`,
58
+ };
59
+ }
60
+ async GetEffectivePermissions(user, resourceType, resourceId) {
61
+ if (resourceType !== 'Applications')
62
+ return [];
63
+ const actions = this.actionsForUserApp(user, resourceId);
64
+ if (actions.length === 0)
65
+ return [];
66
+ const app = new Metadata().Applications.find((a) => UUIDsEqual(a.ID, resourceId));
67
+ return [this.buildNormalizedPermission({
68
+ resourceType: 'Applications', resourceId, resourceName: app?.Name,
69
+ granteeType: 'User', granteeId: user.ID, granteeName: user.Name, actions,
70
+ })];
71
+ }
72
+ async GetUserResources(user, resourceType) {
73
+ if (resourceType && resourceType !== 'Applications')
74
+ return [];
75
+ const md = new Metadata();
76
+ const results = [];
77
+ for (const app of md.Applications) {
78
+ const actions = this.actionsForUserApp(user, app.ID);
79
+ if (actions.length === 0)
80
+ continue;
81
+ results.push(this.buildNormalizedPermission({
82
+ resourceType: 'Applications', resourceId: app.ID, resourceName: app.Name,
83
+ granteeType: 'User', granteeId: user.ID, granteeName: user.Name, actions,
84
+ }));
85
+ }
86
+ return results;
87
+ }
88
+ async GetResourcePermissions(resourceType, resourceId) {
89
+ if (resourceType !== 'Applications')
90
+ return [];
91
+ const md = new Metadata();
92
+ const app = md.Applications.find((a) => UUIDsEqual(a.ID, resourceId));
93
+ if (!app)
94
+ return [];
95
+ const appRoles = UserInfoEngine.Instance.ApplicationRoles.filter((ar) => UUIDsEqual(ar.ApplicationID, resourceId));
96
+ // Open access: return a synthetic "Everyone" row so the Sharing Center
97
+ // can visually distinguish unrestricted apps from explicitly-granted ones.
98
+ if (appRoles.length === 0) {
99
+ return [this.buildNormalizedPermission({
100
+ resourceType: 'Applications', resourceId: app.ID, resourceName: app.Name,
101
+ granteeType: 'Everyone', granteeId: null, granteeName: 'All authenticated users',
102
+ actions: ['Read'],
103
+ })];
104
+ }
105
+ const results = [];
106
+ for (const ar of appRoles) {
107
+ const actions = this.boolsToActions({ Read: ar.CanAccess, Admin: ar.CanAdmin });
108
+ if (actions.length === 0)
109
+ continue;
110
+ results.push(this.buildNormalizedPermission({
111
+ resourceType: 'Applications', resourceId: app.ID, resourceName: app.Name,
112
+ granteeType: 'Role', granteeId: ar.RoleID, granteeName: ar.Role, actions,
113
+ sourceRecordId: ar.ID,
114
+ }));
115
+ }
116
+ return results;
117
+ }
118
+ actionsForUserApp(user, applicationId) {
119
+ const appRoles = UserInfoEngine.Instance.ApplicationRoles.filter((ar) => UUIDsEqual(ar.ApplicationID, applicationId));
120
+ // Open access semantics (Phase 1): no rows = every authenticated user has Read.
121
+ if (appRoles.length === 0)
122
+ return ['Read'];
123
+ if (!user.UserRoles?.length)
124
+ return [];
125
+ let canAccess = false;
126
+ let canAdmin = false;
127
+ for (const ur of user.UserRoles) {
128
+ for (const ar of appRoles) {
129
+ if (UUIDsEqual(ar.RoleID, ur.RoleID)) {
130
+ if (ar.CanAccess)
131
+ canAccess = true;
132
+ if (ar.CanAdmin)
133
+ canAdmin = true;
134
+ }
135
+ }
136
+ }
137
+ return this.boolsToActions({ Read: canAccess, Admin: canAdmin });
138
+ }
139
+ };
140
+ ApplicationRolePermissionProvider = __decorate([
141
+ RegisterClass(PermissionProviderBase, 'MJApplicationRolePermissionProvider')
142
+ ], ApplicationRolePermissionProvider);
143
+ export { ApplicationRolePermissionProvider };
144
+ //# sourceMappingURL=ApplicationRolePermissionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationRolePermissionProvider.js","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/ApplicationRolePermissionProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { GranteeType, NormalizedPermission, PermissionAction, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
2
+ /**
3
+ * Wraps the `MJ: Artifact Permissions` table behind the unified
4
+ * {@link PermissionProviderBase} contract. Artifact permissions are user-only
5
+ * and cover Read / Update / Delete / Share.
6
+ *
7
+ * This provider reads the permission table directly via RunView; it does NOT
8
+ * duplicate the cascade-from-collection logic of the Angular-side
9
+ * `ArtifactPermissionService`. Cascade evaluation belongs in the Sharing Center
10
+ * when it aggregates across both Artifact + Collection domains.
11
+ *
12
+ * `resourceType` is `"Artifacts"`. `resourceId` is the artifact ID.
13
+ */
14
+ export declare class ArtifactPermissionProvider extends PermissionProviderBase {
15
+ readonly DomainName = "Artifact Permissions";
16
+ readonly Description = "User-level sharing permissions on conversation artifacts (Read/Update/Delete/Share)";
17
+ readonly SupportedGranteeTypes: GranteeType[];
18
+ readonly SupportedActions: PermissionAction[];
19
+ readonly SupportsDeny = false;
20
+ GetResourceTypes(): string[];
21
+ CheckPermission(user: UserInfo, _resourceType: string, resourceId: string | null, action: PermissionAction): Promise<PermissionCheckResult>;
22
+ GetEffectivePermissions(user: UserInfo, _resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
23
+ GetUserResources(user: UserInfo, resourceType?: string): Promise<NormalizedPermission[]>;
24
+ /**
25
+ * ArtifactPermission rows where this user is the grantee AND someone else
26
+ * is the grantor. Excludes rows the user created for themselves.
27
+ */
28
+ GetPermissionsSharedWithUser(grantee: UserInfo): Promise<NormalizedPermission[]>;
29
+ /**
30
+ * All ArtifactPermission rows where this user is the SharedByUserID. Unlike
31
+ * Dashboards, Artifacts track the grantor explicitly — there's no implicit
32
+ * "owner without SharedByUserID" case in this table.
33
+ */
34
+ GetPermissionsGrantedByUser(grantor: UserInfo): Promise<NormalizedPermission[]>;
35
+ GetResourcePermissions(resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
36
+ /**
37
+ * Shared tail for `GetUserResources` and `GetPermissionsSharedWithUser` — both
38
+ * emit one row per permission keyed to a specific grantee. Caller passes a
39
+ * function to pluck the grantee ID since the column differs subtly across paths.
40
+ */
41
+ private expandRowsAsGrantee;
42
+ private fetchPermissionForUser;
43
+ private toActions;
44
+ }
45
+ //# sourceMappingURL=ArtifactPermissionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactPermissionProvider.d.ts","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/ArtifactPermissionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAkB9B;;;;;;;;;;;GAWG;AACH,qBACa,0BAA2B,SAAQ,sBAAsB;IAClE,QAAQ,CAAC,UAAU,0BAA0B;IAC7C,QAAQ,CAAC,WAAW,yFAAyF;IAC7G,QAAQ,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAY;IACzD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAyC;IACtF,QAAQ,CAAC,YAAY,SAAS;IAErB,gBAAgB,IAAI,MAAM,EAAE;IAI/B,eAAe,CACjB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAoB3B,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAcnH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAW9F;;;OAGG;IACY,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAU/F;;;;OAIG;IACY,2BAA2B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0BxF,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0BvG;;;;OAIG;YACW,mBAAmB;YAsBnB,sBAAsB;IAUpC,OAAO,CAAC,SAAS;CASpB"}
@@ -0,0 +1,169 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { PermissionProviderBase, } from '@memberjunction/core';
8
+ import { RegisterClass } from '@memberjunction/global';
9
+ /**
10
+ * Wraps the `MJ: Artifact Permissions` table behind the unified
11
+ * {@link PermissionProviderBase} contract. Artifact permissions are user-only
12
+ * and cover Read / Update / Delete / Share.
13
+ *
14
+ * This provider reads the permission table directly via RunView; it does NOT
15
+ * duplicate the cascade-from-collection logic of the Angular-side
16
+ * `ArtifactPermissionService`. Cascade evaluation belongs in the Sharing Center
17
+ * when it aggregates across both Artifact + Collection domains.
18
+ *
19
+ * `resourceType` is `"Artifacts"`. `resourceId` is the artifact ID.
20
+ */
21
+ let ArtifactPermissionProvider = class ArtifactPermissionProvider extends PermissionProviderBase {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.DomainName = 'Artifact Permissions';
25
+ this.Description = 'User-level sharing permissions on conversation artifacts (Read/Update/Delete/Share)';
26
+ this.SupportedGranteeTypes = ['User'];
27
+ this.SupportedActions = ['Read', 'Update', 'Delete', 'Share'];
28
+ this.SupportsDeny = false;
29
+ }
30
+ GetResourceTypes() {
31
+ return ['Artifacts'];
32
+ }
33
+ async CheckPermission(user, _resourceType, resourceId, action) {
34
+ if (!resourceId) {
35
+ return {
36
+ Allowed: false,
37
+ DomainName: this.DomainName,
38
+ Reason: 'Artifact permissions require a specific artifact ID',
39
+ };
40
+ }
41
+ const row = await this.fetchPermissionForUser(resourceId, user.ID);
42
+ const actions = this.toActions(row);
43
+ const allowed = actions.includes(action);
44
+ return {
45
+ Allowed: allowed,
46
+ DomainName: this.DomainName,
47
+ Reason: allowed
48
+ ? `User has ${action} via direct artifact permission`
49
+ : `User has no ${action} permission on artifact '${resourceId}'`,
50
+ };
51
+ }
52
+ async GetEffectivePermissions(user, _resourceType, resourceId) {
53
+ const row = await this.fetchPermissionForUser(resourceId, user.ID);
54
+ if (!row)
55
+ return [];
56
+ const actions = this.toActions(row);
57
+ if (actions.length === 0)
58
+ return [];
59
+ const nameMap = await this.bulkLookupNames('MJ: Artifacts', [resourceId]);
60
+ return [this.buildNormalizedPermission({
61
+ resourceType: 'Artifacts', resourceId, resourceName: nameMap.get(resourceId),
62
+ granteeType: 'User', granteeId: user.ID, granteeName: user.Name, actions,
63
+ sourceRecordId: row.ID,
64
+ })];
65
+ }
66
+ async GetUserResources(user, resourceType) {
67
+ if (resourceType && resourceType !== 'Artifacts')
68
+ return [];
69
+ const rows = await this.fetchRows('MJ: Artifact Permissions', `UserID='${user.ID}'`, ['ID', 'ArtifactID', 'UserID', 'CanRead', 'CanEdit', 'CanDelete', 'CanShare'], 'GetUserResources');
70
+ return this.expandRowsAsGrantee(rows, user, (r) => r.UserID);
71
+ }
72
+ /**
73
+ * ArtifactPermission rows where this user is the grantee AND someone else
74
+ * is the grantor. Excludes rows the user created for themselves.
75
+ */
76
+ async GetPermissionsSharedWithUser(grantee) {
77
+ const rows = await this.fetchRows('MJ: Artifact Permissions', `UserID='${grantee.ID}' AND (SharedByUserID IS NULL OR SharedByUserID <> '${grantee.ID}')`, ['ID', 'ArtifactID', 'UserID', 'User', 'SharedByUserID', 'CanRead', 'CanEdit', 'CanDelete', 'CanShare'], 'GetPermissionsSharedWithUser');
78
+ return this.expandRowsAsGrantee(rows, grantee, (r) => r.UserID);
79
+ }
80
+ /**
81
+ * All ArtifactPermission rows where this user is the SharedByUserID. Unlike
82
+ * Dashboards, Artifacts track the grantor explicitly — there's no implicit
83
+ * "owner without SharedByUserID" case in this table.
84
+ */
85
+ async GetPermissionsGrantedByUser(grantor) {
86
+ const rows = await this.fetchRows('MJ: Artifact Permissions', `SharedByUserID='${grantor.ID}'`, ['ID', 'ArtifactID', 'UserID', 'User', 'SharedByUserID', 'CanRead', 'CanEdit', 'CanDelete', 'CanShare'], 'GetPermissionsGrantedByUser');
87
+ if (rows.length === 0)
88
+ return [];
89
+ const artifactIds = Array.from(new Set(rows.map((r) => r.ArtifactID)));
90
+ const nameMap = await this.bulkLookupNames('MJ: Artifacts', artifactIds);
91
+ const results = [];
92
+ for (const row of rows) {
93
+ const actions = this.toActions(row);
94
+ if (actions.length === 0)
95
+ continue;
96
+ results.push(this.buildNormalizedPermission({
97
+ resourceType: 'Artifacts', resourceId: row.ArtifactID,
98
+ resourceName: nameMap.get(row.ArtifactID),
99
+ granteeType: 'User', granteeId: row.UserID, granteeName: row.User ?? undefined,
100
+ actions, sourceRecordId: row.ID,
101
+ }));
102
+ }
103
+ return results;
104
+ }
105
+ async GetResourcePermissions(resourceType, resourceId) {
106
+ if (resourceType !== 'Artifacts')
107
+ return [];
108
+ const rows = await this.fetchRows('MJ: Artifact Permissions', `ArtifactID='${resourceId}'`, ['ID', 'ArtifactID', 'UserID', 'User', 'CanRead', 'CanEdit', 'CanDelete', 'CanShare'], 'GetResourcePermissions');
109
+ if (rows.length === 0)
110
+ return [];
111
+ const nameMap = await this.bulkLookupNames('MJ: Artifacts', [resourceId]);
112
+ const resourceName = nameMap.get(resourceId);
113
+ const results = [];
114
+ for (const row of rows) {
115
+ const actions = this.toActions(row);
116
+ if (actions.length === 0)
117
+ continue;
118
+ results.push(this.buildNormalizedPermission({
119
+ resourceType: 'Artifacts', resourceId, resourceName,
120
+ granteeType: 'User', granteeId: row.UserID, granteeName: row.User ?? undefined,
121
+ actions, sourceRecordId: row.ID,
122
+ }));
123
+ }
124
+ return results;
125
+ }
126
+ /**
127
+ * Shared tail for `GetUserResources` and `GetPermissionsSharedWithUser` — both
128
+ * emit one row per permission keyed to a specific grantee. Caller passes a
129
+ * function to pluck the grantee ID since the column differs subtly across paths.
130
+ */
131
+ async expandRowsAsGrantee(rows, grantee, _pluckGranteeId) {
132
+ if (rows.length === 0)
133
+ return [];
134
+ const artifactIds = Array.from(new Set(rows.map((r) => r.ArtifactID)));
135
+ const nameMap = await this.bulkLookupNames('MJ: Artifacts', artifactIds);
136
+ const results = [];
137
+ for (const row of rows) {
138
+ const actions = this.toActions(row);
139
+ if (actions.length === 0)
140
+ continue;
141
+ results.push(this.buildNormalizedPermission({
142
+ resourceType: 'Artifacts', resourceId: row.ArtifactID,
143
+ resourceName: nameMap.get(row.ArtifactID),
144
+ granteeType: 'User', granteeId: grantee.ID, granteeName: grantee.Name,
145
+ actions, sourceRecordId: row.ID,
146
+ }));
147
+ }
148
+ return results;
149
+ }
150
+ async fetchPermissionForUser(artifactId, userId) {
151
+ const rows = await this.fetchRows('MJ: Artifact Permissions', `ArtifactID='${artifactId}' AND UserID='${userId}'`, ['ID', 'ArtifactID', 'UserID', 'CanRead', 'CanEdit', 'CanDelete', 'CanShare'], 'fetchPermissionForUser');
152
+ return rows[0] ?? null;
153
+ }
154
+ toActions(row) {
155
+ if (!row)
156
+ return [];
157
+ return this.boolsToActions({
158
+ Read: row.CanRead,
159
+ Update: row.CanEdit,
160
+ Delete: row.CanDelete,
161
+ Share: row.CanShare,
162
+ });
163
+ }
164
+ };
165
+ ArtifactPermissionProvider = __decorate([
166
+ RegisterClass(PermissionProviderBase, 'MJArtifactPermissionProvider')
167
+ ], ArtifactPermissionProvider);
168
+ export { ArtifactPermissionProvider };
169
+ //# sourceMappingURL=ArtifactPermissionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactPermissionProvider.js","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/ArtifactPermissionProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { GranteeType, NormalizedPermission, PermissionAction, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
2
+ /**
3
+ * Wraps the `MJ: Collection Permissions` table behind the unified
4
+ * {@link PermissionProviderBase} contract. Collection permissions are user-only
5
+ * and cover Read / Update / Delete / Share.
6
+ *
7
+ * Collection-to-artifact cascade is handled by downstream consumers (the Sharing
8
+ * Center's Resource Access Report combines Collection + Artifact results); this
9
+ * provider only reports direct Collection grants.
10
+ *
11
+ * `resourceType` is `"Collections"`. `resourceId` is the collection ID.
12
+ */
13
+ export declare class CollectionPermissionProvider extends PermissionProviderBase {
14
+ readonly DomainName = "Collection Permissions";
15
+ readonly Description = "User-level sharing permissions on artifact collections (Read/Update/Delete/Share)";
16
+ readonly SupportedGranteeTypes: GranteeType[];
17
+ readonly SupportedActions: PermissionAction[];
18
+ readonly SupportsDeny = false;
19
+ GetResourceTypes(): string[];
20
+ CheckPermission(user: UserInfo, _resourceType: string, resourceId: string | null, action: PermissionAction): Promise<PermissionCheckResult>;
21
+ GetEffectivePermissions(user: UserInfo, _resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
22
+ GetUserResources(user: UserInfo, resourceType?: string): Promise<NormalizedPermission[]>;
23
+ /**
24
+ * CollectionPermission rows where this user is the grantee AND someone else is
25
+ * the grantor. Excludes collections the user owns and rows they created themselves.
26
+ */
27
+ GetPermissionsSharedWithUser(grantee: UserInfo): Promise<NormalizedPermission[]>;
28
+ /**
29
+ * CollectionPermission rows this user **explicitly** granted (`SharedByUserID = grantor`).
30
+ * Implicit owner-shares (SharedByUserID IS NULL) are excluded because the Sharing
31
+ * Center's revoke flow can only delete rows where the current user is the explicit
32
+ * grantor.
33
+ */
34
+ GetPermissionsGrantedByUser(grantor: UserInfo): Promise<NormalizedPermission[]>;
35
+ GetResourcePermissions(resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
36
+ private fetchPermissionForUser;
37
+ private fetchCollection;
38
+ private toActions;
39
+ }
40
+ //# sourceMappingURL=CollectionPermissionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionPermissionProvider.d.ts","sourceRoot":"","sources":["../../../src/custom/PermissionProviders/CollectionPermissionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAsB9B;;;;;;;;;;GAUG;AACH,qBACa,4BAA6B,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,UAAU,4BAA4B;IAC/C,QAAQ,CAAC,WAAW,uFAAuF;IAC3G,QAAQ,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAY;IACzD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAyC;IACtF,QAAQ,CAAC,YAAY,SAAS;IAErB,gBAAgB,IAAI,MAAM,EAAE;IAI/B,eAAe,CACjB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IA8B3B,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAwBnH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiD9F;;;OAGG;IACY,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAsC/F;;;;;OAKG;IACY,2BAA2B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA4BxF,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAmCzF,sBAAsB;YAUtB,eAAe;IAU7B,OAAO,CAAC,SAAS;CASpB"}