namirasoft-access 1.4.46 → 1.4.48

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 (153) hide show
  1. package/dist/AccessControl.js +9 -2
  2. package/dist/AccessControl.js.map +1 -1
  3. package/dist/NamirasoftAccessServerBase.js +1 -1
  4. package/package.json +27 -27
  5. package/src/AccessControl.ts +35 -28
  6. package/src/NamirasoftAccessServer.ts +80 -80
  7. package/src/NamirasoftAccessServerAccess.ts +43 -43
  8. package/src/NamirasoftAccessServerBase.ts +29 -29
  9. package/src/NamirasoftAccessServerHealthz.ts +35 -35
  10. package/src/NamirasoftAccessServerPermission.ts +108 -108
  11. package/src/NamirasoftAccessServerPermissionCategory.ts +62 -62
  12. package/src/NamirasoftAccessServerPermissionField.ts +69 -69
  13. package/src/NamirasoftAccessServerPermissionTag.ts +69 -69
  14. package/src/NamirasoftAccessServerPolicy.ts +86 -86
  15. package/src/NamirasoftAccessServerPolicyCategory.ts +62 -62
  16. package/src/NamirasoftAccessServerPolicyField.ts +69 -69
  17. package/src/NamirasoftAccessServerPolicyTag.ts +69 -69
  18. package/src/NamirasoftAccessServerProduct.ts +54 -54
  19. package/src/NamirasoftAccessServerRole.ts +86 -86
  20. package/src/NamirasoftAccessServerRoleCategory.ts +62 -62
  21. package/src/NamirasoftAccessServerRoleField.ts +69 -69
  22. package/src/NamirasoftAccessServerRoleTag.ts +69 -69
  23. package/src/NamirasoftAccessServerUserRole.ts +35 -35
  24. package/src/NamirasoftAccessServerValue.ts +36 -36
  25. package/src/command/AccessCommand.ts +33 -33
  26. package/src/command/AccessSetOwnerCommand.ts +55 -55
  27. package/src/command/Access_GetForCommand.ts +44 -44
  28. package/src/command/HealthzCommand.ts +31 -31
  29. package/src/command/HealthzGetCommand.ts +44 -44
  30. package/src/command/PermissionCategoryCommand.ts +37 -37
  31. package/src/command/PermissionCategoryCreateCommand.ts +55 -55
  32. package/src/command/PermissionCategoryDeleteCommand.ts +44 -44
  33. package/src/command/PermissionCategoryGetCommand.ts +44 -44
  34. package/src/command/PermissionCategoryListCommand.ts +44 -44
  35. package/src/command/PermissionCommand.ts +49 -49
  36. package/src/command/PermissionCreateCommand.ts +100 -100
  37. package/src/command/PermissionDeleteIncomingCommand.ts +44 -44
  38. package/src/command/PermissionDeleteOutgoingCommand.ts +44 -44
  39. package/src/command/PermissionFieldCommand.ts +39 -39
  40. package/src/command/PermissionFieldCreateCommand.ts +64 -64
  41. package/src/command/PermissionFieldDeleteCommand.ts +44 -44
  42. package/src/command/PermissionFieldGetCommand.ts +44 -44
  43. package/src/command/PermissionFieldListCommand.ts +44 -44
  44. package/src/command/PermissionFieldUpdateCommand.ts +64 -64
  45. package/src/command/PermissionGetCommand.ts +44 -44
  46. package/src/command/PermissionGetIncomingCommand.ts +44 -44
  47. package/src/command/PermissionGetOutgoingCommand.ts +44 -44
  48. package/src/command/PermissionListCommand.ts +44 -44
  49. package/src/command/PermissionListIncomingCommand.ts +44 -44
  50. package/src/command/PermissionListOutgoingCommand.ts +44 -44
  51. package/src/command/PermissionTagCommand.ts +39 -39
  52. package/src/command/PermissionTagCreateCommand.ts +64 -64
  53. package/src/command/PermissionTagDeleteCommand.ts +44 -44
  54. package/src/command/PermissionTagGetCommand.ts +44 -44
  55. package/src/command/PermissionTagListCommand.ts +44 -44
  56. package/src/command/PermissionTagUpdateCommand.ts +64 -64
  57. package/src/command/PermissionUpdateCommand.ts +100 -100
  58. package/src/command/PolicyCategoryCommand.ts +37 -37
  59. package/src/command/PolicyCategoryCreateCommand.ts +55 -55
  60. package/src/command/PolicyCategoryDeleteCommand.ts +44 -44
  61. package/src/command/PolicyCategoryGetCommand.ts +44 -44
  62. package/src/command/PolicyCategoryListCommand.ts +44 -44
  63. package/src/command/PolicyCommand.ts +43 -43
  64. package/src/command/PolicyCreateCommand.ts +136 -136
  65. package/src/command/PolicyDeleteCommand.ts +44 -44
  66. package/src/command/PolicyFieldCommand.ts +39 -39
  67. package/src/command/PolicyFieldCreateCommand.ts +64 -64
  68. package/src/command/PolicyFieldDeleteCommand.ts +44 -44
  69. package/src/command/PolicyFieldGetCommand.ts +44 -44
  70. package/src/command/PolicyFieldListCommand.ts +44 -44
  71. package/src/command/PolicyFieldUpdateCommand.ts +64 -64
  72. package/src/command/PolicyGetCommand.ts +44 -44
  73. package/src/command/PolicyGetIncomingCommand.ts +44 -44
  74. package/src/command/PolicyListCommand.ts +44 -44
  75. package/src/command/PolicyListIncomingCommand.ts +44 -44
  76. package/src/command/PolicyTagCommand.ts +39 -39
  77. package/src/command/PolicyTagCreateCommand.ts +64 -64
  78. package/src/command/PolicyTagDeleteCommand.ts +44 -44
  79. package/src/command/PolicyTagGetCommand.ts +44 -44
  80. package/src/command/PolicyTagListCommand.ts +44 -44
  81. package/src/command/PolicyTagUpdateCommand.ts +64 -64
  82. package/src/command/PolicyUpdateCommand.ts +136 -136
  83. package/src/command/ProductCommand.ts +35 -35
  84. package/src/command/ProductGetCommand.ts +44 -44
  85. package/src/command/ProductListCommand.ts +44 -44
  86. package/src/command/Product_SetCommand.ts +55 -55
  87. package/src/command/RoleCategoryCommand.ts +37 -37
  88. package/src/command/RoleCategoryCreateCommand.ts +55 -55
  89. package/src/command/RoleCategoryDeleteCommand.ts +44 -44
  90. package/src/command/RoleCategoryGetCommand.ts +44 -44
  91. package/src/command/RoleCategoryListCommand.ts +44 -44
  92. package/src/command/RoleCommand.ts +43 -43
  93. package/src/command/RoleCreateCommand.ts +100 -100
  94. package/src/command/RoleDeleteCommand.ts +44 -44
  95. package/src/command/RoleFieldCommand.ts +39 -39
  96. package/src/command/RoleFieldCreateCommand.ts +64 -64
  97. package/src/command/RoleFieldDeleteCommand.ts +44 -44
  98. package/src/command/RoleFieldGetCommand.ts +44 -44
  99. package/src/command/RoleFieldListCommand.ts +44 -44
  100. package/src/command/RoleFieldUpdateCommand.ts +64 -64
  101. package/src/command/RoleGetCommand.ts +44 -44
  102. package/src/command/RoleGetIncomingCommand.ts +44 -44
  103. package/src/command/RoleListCommand.ts +44 -44
  104. package/src/command/RoleListIncomingCommand.ts +44 -44
  105. package/src/command/RoleTagCommand.ts +39 -39
  106. package/src/command/RoleTagCreateCommand.ts +64 -64
  107. package/src/command/RoleTagDeleteCommand.ts +44 -44
  108. package/src/command/RoleTagGetCommand.ts +44 -44
  109. package/src/command/RoleTagListCommand.ts +44 -44
  110. package/src/command/RoleTagUpdateCommand.ts +64 -64
  111. package/src/command/RoleUpdateCommand.ts +100 -100
  112. package/src/command/UserRoleCommand.ts +31 -31
  113. package/src/command/UserRole_SetCommand.ts +64 -64
  114. package/src/command/ValueCommand.ts +31 -31
  115. package/src/command/ValueListCommand.ts +44 -44
  116. package/src/command/cli.ts +64 -64
  117. package/src/index.ts +166 -166
  118. package/src/meta/NamirasoftAccessMetaDatabase.ts +69 -69
  119. package/src/meta/PermissionCategoryMetaTable.ts +45 -45
  120. package/src/meta/PermissionFieldMetaTable.ts +47 -47
  121. package/src/meta/PermissionMetaTable.ts +57 -57
  122. package/src/meta/PermissionTagMetaTable.ts +47 -47
  123. package/src/meta/PolicyCategoryMetaTable.ts +45 -45
  124. package/src/meta/PolicyFieldMetaTable.ts +47 -47
  125. package/src/meta/PolicyMetaTable.ts +55 -55
  126. package/src/meta/PolicyTagMetaTable.ts +47 -47
  127. package/src/meta/RoleCategoryMetaTable.ts +45 -45
  128. package/src/meta/RoleFieldMetaTable.ts +47 -47
  129. package/src/meta/RoleMetaTable.ts +45 -45
  130. package/src/meta/RoleTagMetaTable.ts +47 -47
  131. package/src/row/AccessRow.ts +27 -27
  132. package/src/row/EntityCategoryInputRow.ts +23 -23
  133. package/src/row/EntityFieldInputRow.ts +24 -24
  134. package/src/row/EntityTagInputRow.ts +24 -24
  135. package/src/row/PermissionCategoryRow.ts +28 -28
  136. package/src/row/PermissionFieldRow.ts +29 -29
  137. package/src/row/PermissionFullRow.ts +43 -43
  138. package/src/row/PermissionInputRow.ts +32 -32
  139. package/src/row/PermissionRow.ts +34 -34
  140. package/src/row/PermissionTagRow.ts +29 -29
  141. package/src/row/PolicyCategoryRow.ts +28 -28
  142. package/src/row/PolicyFieldRow.ts +29 -29
  143. package/src/row/PolicyFullRow.ts +40 -40
  144. package/src/row/PolicyInputRow.ts +36 -36
  145. package/src/row/PolicyRow.ts +33 -33
  146. package/src/row/PolicyTagRow.ts +29 -29
  147. package/src/row/ProductRow.ts +27 -27
  148. package/src/row/RoleCategoryRow.ts +28 -28
  149. package/src/row/RoleFieldRow.ts +29 -29
  150. package/src/row/RoleFullRow.ts +36 -36
  151. package/src/row/RoleInputRow.ts +32 -32
  152. package/src/row/RoleRow.ts +28 -28
  153. package/src/row/RoleTagRow.ts +29 -29
@@ -4,14 +4,21 @@ exports.AccessControl = void 0;
4
4
  const namirasoft_core_1 = require("namirasoft-core");
5
5
  class AccessControl {
6
6
  static isValid(policies, product_id, entity, action, id) {
7
+ entity = namirasoft_core_1.NamingConvention.auto.convert(entity, namirasoft_core_1.NamingConvention.lower_case_underscore).trim();
8
+ action = namirasoft_core_1.NamingConvention.auto.convert(action, namirasoft_core_1.NamingConvention.lower_case_underscore).trim();
9
+ console.log({ policies, product_id, entity, action, id });
7
10
  for (let i = 0; i < policies.length; i++) {
8
11
  const element = policies[i];
12
+ let actions = element.actions.split(/[\s;,|]+/).map(a => namirasoft_core_1.NamingConvention.auto.convert(a, namirasoft_core_1.NamingConvention.lower_case_underscore).trim());
13
+ let resources = element.resources.split(/[\s;,|]+/).map(r => namirasoft_core_1.NamingConvention.auto.convert(r, namirasoft_core_1.NamingConvention.lower_case_underscore).trim());
14
+ console.log({ i, actions, resources });
9
15
  if (element.product_id == "*" || element.product_id === product_id)
10
16
  if (element.entity == "*" || element.entity === entity)
11
- if (element.actions == "*" || element.actions.split(";").includes(action))
12
- if (element.resources == "*" || id === null || element.resources.split(";").includes(id))
17
+ if (element.actions == "*" || actions.includes(action))
18
+ if (element.resources == "*" || id === null || resources.includes(id))
13
19
  return element.allow;
14
20
  }
21
+ console.log("Access denied");
15
22
  return false;
16
23
  }
17
24
  static check(policies, product_id, entity, action, id) {
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../src/AccessControl.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAGjD,MAAa,aAAa;IAEtB,MAAM,CAAC,OAAO,CAAC,QAAqB,EAAE,UAAkB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAiB;QAEvG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EACxC,CAAC;YACG,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;oBAClD,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrE,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACpF,OAAO,OAAO,CAAC,KAAK,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,QAAqB,EAAE,UAAkB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAiB;QAErG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EACpE,CAAC;YACG,IAAI,OAAO,GAAG,2BAA2B,MAAM,eAAe,MAAM,IAAI,CAAC;YACzE,IAAI,EAAE;gBACF,OAAO,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACrC,MAAM,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;CACJ;AAzBD,sCAyBC"}
1
+ {"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../src/AccessControl.ts"],"names":[],"mappings":";;;AAAA,qDAAmE;AAGnE,MAAa,aAAa;IAEtB,MAAM,CAAC,OAAO,CAAC,QAAqB,EAAE,UAAkB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAiB;QAEvG,MAAM,GAAG,kCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kCAAgB,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9F,MAAM,GAAG,kCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kCAAgB,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EACxC,CAAC;YACG,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,kCAAgB,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1I,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,kCAAgB,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9I,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACvC,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;oBAClD,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAClD,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjE,OAAO,OAAO,CAAC,KAAK,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,QAAqB,EAAE,UAAkB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAiB;QAErG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EACpE,CAAC;YACG,IAAI,OAAO,GAAG,2BAA2B,MAAM,eAAe,MAAM,IAAI,CAAC;YACzE,IAAI,EAAE;gBACF,OAAO,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACrC,MAAM,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;CACJ;AAhCD,sCAgCC"}
@@ -4,7 +4,7 @@ exports.NamirasoftAccessServerBase = void 0;
4
4
  const namirasoft_account_1 = require("namirasoft-account");
5
5
  class NamirasoftAccessServerBase extends namirasoft_account_1.NSABaseServer {
6
6
  constructor(base_url, manager, onError) {
7
- super(base_url, `1.4.46`, manager, onError);
7
+ super(base_url, `1.4.47`, manager, onError);
8
8
  }
9
9
  }
10
10
  exports.NamirasoftAccessServerBase = NamirasoftAccessServerBase;
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
- {
2
- "name": "namirasoft-access",
3
- "title": "Namirasoft Access NPM Package",
4
- "description": "Namira Software Corporation Access NPM Package",
5
- "icon": "logo.png",
6
- "logo": "https://static.namirasoft.com/image/namirasoft/access/logo/base.png",
7
- "language": "ts",
8
- "framework": "npm",
9
- "application": "package",
10
- "private": false,
11
- "version": "1.4.46",
12
- "author": "Amir Abolhasani",
13
- "license": "MIT",
14
- "main": "./dist/index.js",
15
- "types": "./dist/index.d.ts",
16
- "scripts": {
17
- "build": ""
18
- },
19
- "dependencies": {
20
- "namirasoft-core": "^1.4.43",
21
- "namirasoft-site": "^1.4.8",
22
- "namirasoft-node-cli": "^1.4.5",
23
- "namirasoft-account": "^1.4.51"
24
- },
25
- "bin": {
26
- "ns-access": "./dist/command/cli.js"
27
- }
1
+ {
2
+ "name": "namirasoft-access",
3
+ "title": "Namirasoft Access NPM Package",
4
+ "description": "Namira Software Corporation Access NPM Package",
5
+ "icon": "logo.png",
6
+ "logo": "https://static.namirasoft.com/image/namirasoft/access/logo/base.png",
7
+ "language": "ts",
8
+ "framework": "npm",
9
+ "application": "package",
10
+ "private": false,
11
+ "version": "1.4.48",
12
+ "author": "Amir Abolhasani",
13
+ "license": "MIT",
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "scripts": {
17
+ "build": ""
18
+ },
19
+ "dependencies": {
20
+ "namirasoft-core": "^1.4.45",
21
+ "namirasoft-site": "^1.4.8",
22
+ "namirasoft-node-cli": "^1.4.5",
23
+ "namirasoft-account": "^1.4.56"
24
+ },
25
+ "bin": {
26
+ "ns-access": "./dist/command/cli.js"
27
+ }
28
28
  }
@@ -1,29 +1,36 @@
1
- import { ErrorOperation } from "namirasoft-core";
2
- import { PolicyRow } from "./row/PolicyRow";
3
-
4
- export class AccessControl
5
- {
6
- static isValid(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): boolean
7
- {
8
- for (let i = 0; i < policies.length; i++)
9
- {
10
- const element = policies[i];
11
- if (element.product_id == "*" || element.product_id === product_id)
12
- if (element.entity == "*" || element.entity === entity)
13
- if (element.actions == "*" || element.actions.split(";").includes(action))
14
- if (element.resources == "*" || id === null || element.resources.split(";").includes(id))
15
- return element.allow;
16
- }
17
- return false;
18
- }
19
- static check(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): void
20
- {
21
- if (!AccessControl.isValid(policies, product_id, entity, action, id))
22
- {
23
- let message = `Access denied (Entity: '${entity}', Action: '${action}')`;
24
- if (id)
25
- message += ` on resource: ${id}`;
26
- throw ErrorOperation.getHTTP(403, message);
27
- }
28
- }
1
+ import { ErrorOperation, NamingConvention } from "namirasoft-core";
2
+ import { PolicyRow } from "./row/PolicyRow";
3
+
4
+ export class AccessControl
5
+ {
6
+ static isValid(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): boolean
7
+ {
8
+ entity = NamingConvention.auto.convert(entity, NamingConvention.lower_case_underscore).trim();
9
+ action = NamingConvention.auto.convert(action, NamingConvention.lower_case_underscore).trim();
10
+ console.log({ policies, product_id, entity, action, id });
11
+ for (let i = 0; i < policies.length; i++)
12
+ {
13
+ const element = policies[i];
14
+ let actions = element.actions.split(/[\s;,|]+/).map(a => NamingConvention.auto.convert(a, NamingConvention.lower_case_underscore).trim());
15
+ let resources = element.resources.split(/[\s;,|]+/).map(r => NamingConvention.auto.convert(r, NamingConvention.lower_case_underscore).trim());
16
+ console.log({ i, actions, resources });
17
+ if (element.product_id == "*" || element.product_id === product_id)
18
+ if (element.entity == "*" || element.entity === entity)
19
+ if (element.actions == "*" || actions.includes(action))
20
+ if (element.resources == "*" || id === null || resources.includes(id))
21
+ return element.allow;
22
+ }
23
+ console.log("Access denied");
24
+ return false;
25
+ }
26
+ static check(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): void
27
+ {
28
+ if (!AccessControl.isValid(policies, product_id, entity, action, id))
29
+ {
30
+ let message = `Access denied (Entity: '${entity}', Action: '${action}')`;
31
+ if (id)
32
+ message += ` on resource: ${id}`;
33
+ throw ErrorOperation.getHTTP(403, message);
34
+ }
35
+ }
29
36
  }
@@ -1,81 +1,81 @@
1
- /****************************************************************/
2
- /* */
3
- /* This is an Auto-Generated File */
4
- /* Made By */
5
- /* Namirasoft SDK Generator NPM Package */
6
- /* */
7
- /****************************************************************/
8
- /****************************************************************/
9
- /* */
10
- /* Please do not make any change to this file */
11
- /* If any changed is reqired, ns-sdkg command must be used */
12
- /* */
13
- /****************************************************************/
14
- /****************************************************************/
15
- /* */
16
- /* Namira Software Corporation */
17
- /* https://namirasoft.com */
18
- /* */
19
- /****************************************************************/
20
-
21
- import { NamirasoftAccessServerAccess } from "./NamirasoftAccessServerAccess";
22
- import { NamirasoftAccessServerHealthz } from "./NamirasoftAccessServerHealthz";
23
- import { NamirasoftAccessServerPermission } from "./NamirasoftAccessServerPermission";
24
- import { NamirasoftAccessServerPermissionCategory } from "./NamirasoftAccessServerPermissionCategory";
25
- import { NamirasoftAccessServerPermissionField } from "./NamirasoftAccessServerPermissionField";
26
- import { NamirasoftAccessServerPermissionTag } from "./NamirasoftAccessServerPermissionTag";
27
- import { NamirasoftAccessServerPolicy } from "./NamirasoftAccessServerPolicy";
28
- import { NamirasoftAccessServerPolicyCategory } from "./NamirasoftAccessServerPolicyCategory";
29
- import { NamirasoftAccessServerPolicyField } from "./NamirasoftAccessServerPolicyField";
30
- import { NamirasoftAccessServerPolicyTag } from "./NamirasoftAccessServerPolicyTag";
31
- import { NamirasoftAccessServerProduct } from "./NamirasoftAccessServerProduct";
32
- import { NamirasoftAccessServerRole } from "./NamirasoftAccessServerRole";
33
- import { NamirasoftAccessServerRoleCategory } from "./NamirasoftAccessServerRoleCategory";
34
- import { NamirasoftAccessServerRoleField } from "./NamirasoftAccessServerRoleField";
35
- import { NamirasoftAccessServerRoleTag } from "./NamirasoftAccessServerRoleTag";
36
- import { NamirasoftAccessServerUserRole } from "./NamirasoftAccessServerUserRole";
37
- import { NamirasoftAccessServerValue } from "./NamirasoftAccessServerValue";
38
- import { TokenManager } from "namirasoft-account";
39
-
40
- export class NamirasoftAccessServer
41
- {
42
- manager: TokenManager;
43
- healthz: NamirasoftAccessServerHealthz;
44
- value: NamirasoftAccessServerValue;
45
- permissioncategory: NamirasoftAccessServerPermissionCategory;
46
- permissionfield: NamirasoftAccessServerPermissionField;
47
- permissiontag: NamirasoftAccessServerPermissionTag;
48
- permission: NamirasoftAccessServerPermission;
49
- policycategory: NamirasoftAccessServerPolicyCategory;
50
- policyfield: NamirasoftAccessServerPolicyField;
51
- policytag: NamirasoftAccessServerPolicyTag;
52
- policy: NamirasoftAccessServerPolicy;
53
- rolecategory: NamirasoftAccessServerRoleCategory;
54
- rolefield: NamirasoftAccessServerRoleField;
55
- roletag: NamirasoftAccessServerRoleTag;
56
- role: NamirasoftAccessServerRole;
57
- access: NamirasoftAccessServerAccess;
58
- product: NamirasoftAccessServerProduct;
59
- userrole: NamirasoftAccessServerUserRole;
60
- constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
61
- {
62
- this.manager = manager;
63
- this.healthz = new NamirasoftAccessServerHealthz(base_url, manager, onError);
64
- this.value = new NamirasoftAccessServerValue(base_url, manager, onError);
65
- this.permissioncategory = new NamirasoftAccessServerPermissionCategory(base_url, manager, onError);
66
- this.permissionfield = new NamirasoftAccessServerPermissionField(base_url, manager, onError);
67
- this.permissiontag = new NamirasoftAccessServerPermissionTag(base_url, manager, onError);
68
- this.permission = new NamirasoftAccessServerPermission(base_url, manager, onError);
69
- this.policycategory = new NamirasoftAccessServerPolicyCategory(base_url, manager, onError);
70
- this.policyfield = new NamirasoftAccessServerPolicyField(base_url, manager, onError);
71
- this.policytag = new NamirasoftAccessServerPolicyTag(base_url, manager, onError);
72
- this.policy = new NamirasoftAccessServerPolicy(base_url, manager, onError);
73
- this.rolecategory = new NamirasoftAccessServerRoleCategory(base_url, manager, onError);
74
- this.rolefield = new NamirasoftAccessServerRoleField(base_url, manager, onError);
75
- this.roletag = new NamirasoftAccessServerRoleTag(base_url, manager, onError);
76
- this.role = new NamirasoftAccessServerRole(base_url, manager, onError);
77
- this.access = new NamirasoftAccessServerAccess(base_url, manager, onError);
78
- this.product = new NamirasoftAccessServerProduct(base_url, manager, onError);
79
- this.userrole = new NamirasoftAccessServerUserRole(base_url, manager, onError);
80
- }
1
+ /****************************************************************/
2
+ /* */
3
+ /* This is an Auto-Generated File */
4
+ /* Made By */
5
+ /* Namirasoft SDK Generator NPM Package */
6
+ /* */
7
+ /****************************************************************/
8
+ /****************************************************************/
9
+ /* */
10
+ /* Please do not make any change to this file */
11
+ /* If any changed is reqired, ns-sdkg command must be used */
12
+ /* */
13
+ /****************************************************************/
14
+ /****************************************************************/
15
+ /* */
16
+ /* Namira Software Corporation */
17
+ /* https://namirasoft.com */
18
+ /* */
19
+ /****************************************************************/
20
+
21
+ import { NamirasoftAccessServerAccess } from "./NamirasoftAccessServerAccess";
22
+ import { NamirasoftAccessServerHealthz } from "./NamirasoftAccessServerHealthz";
23
+ import { NamirasoftAccessServerPermission } from "./NamirasoftAccessServerPermission";
24
+ import { NamirasoftAccessServerPermissionCategory } from "./NamirasoftAccessServerPermissionCategory";
25
+ import { NamirasoftAccessServerPermissionField } from "./NamirasoftAccessServerPermissionField";
26
+ import { NamirasoftAccessServerPermissionTag } from "./NamirasoftAccessServerPermissionTag";
27
+ import { NamirasoftAccessServerPolicy } from "./NamirasoftAccessServerPolicy";
28
+ import { NamirasoftAccessServerPolicyCategory } from "./NamirasoftAccessServerPolicyCategory";
29
+ import { NamirasoftAccessServerPolicyField } from "./NamirasoftAccessServerPolicyField";
30
+ import { NamirasoftAccessServerPolicyTag } from "./NamirasoftAccessServerPolicyTag";
31
+ import { NamirasoftAccessServerProduct } from "./NamirasoftAccessServerProduct";
32
+ import { NamirasoftAccessServerRole } from "./NamirasoftAccessServerRole";
33
+ import { NamirasoftAccessServerRoleCategory } from "./NamirasoftAccessServerRoleCategory";
34
+ import { NamirasoftAccessServerRoleField } from "./NamirasoftAccessServerRoleField";
35
+ import { NamirasoftAccessServerRoleTag } from "./NamirasoftAccessServerRoleTag";
36
+ import { NamirasoftAccessServerUserRole } from "./NamirasoftAccessServerUserRole";
37
+ import { NamirasoftAccessServerValue } from "./NamirasoftAccessServerValue";
38
+ import { TokenManager } from "namirasoft-account";
39
+
40
+ export class NamirasoftAccessServer
41
+ {
42
+ manager: TokenManager;
43
+ healthz: NamirasoftAccessServerHealthz;
44
+ value: NamirasoftAccessServerValue;
45
+ permissioncategory: NamirasoftAccessServerPermissionCategory;
46
+ permissionfield: NamirasoftAccessServerPermissionField;
47
+ permissiontag: NamirasoftAccessServerPermissionTag;
48
+ permission: NamirasoftAccessServerPermission;
49
+ policycategory: NamirasoftAccessServerPolicyCategory;
50
+ policyfield: NamirasoftAccessServerPolicyField;
51
+ policytag: NamirasoftAccessServerPolicyTag;
52
+ policy: NamirasoftAccessServerPolicy;
53
+ rolecategory: NamirasoftAccessServerRoleCategory;
54
+ rolefield: NamirasoftAccessServerRoleField;
55
+ roletag: NamirasoftAccessServerRoleTag;
56
+ role: NamirasoftAccessServerRole;
57
+ access: NamirasoftAccessServerAccess;
58
+ product: NamirasoftAccessServerProduct;
59
+ userrole: NamirasoftAccessServerUserRole;
60
+ constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
61
+ {
62
+ this.manager = manager;
63
+ this.healthz = new NamirasoftAccessServerHealthz(base_url, manager, onError);
64
+ this.value = new NamirasoftAccessServerValue(base_url, manager, onError);
65
+ this.permissioncategory = new NamirasoftAccessServerPermissionCategory(base_url, manager, onError);
66
+ this.permissionfield = new NamirasoftAccessServerPermissionField(base_url, manager, onError);
67
+ this.permissiontag = new NamirasoftAccessServerPermissionTag(base_url, manager, onError);
68
+ this.permission = new NamirasoftAccessServerPermission(base_url, manager, onError);
69
+ this.policycategory = new NamirasoftAccessServerPolicyCategory(base_url, manager, onError);
70
+ this.policyfield = new NamirasoftAccessServerPolicyField(base_url, manager, onError);
71
+ this.policytag = new NamirasoftAccessServerPolicyTag(base_url, manager, onError);
72
+ this.policy = new NamirasoftAccessServerPolicy(base_url, manager, onError);
73
+ this.rolecategory = new NamirasoftAccessServerRoleCategory(base_url, manager, onError);
74
+ this.rolefield = new NamirasoftAccessServerRoleField(base_url, manager, onError);
75
+ this.roletag = new NamirasoftAccessServerRoleTag(base_url, manager, onError);
76
+ this.role = new NamirasoftAccessServerRole(base_url, manager, onError);
77
+ this.access = new NamirasoftAccessServerAccess(base_url, manager, onError);
78
+ this.product = new NamirasoftAccessServerProduct(base_url, manager, onError);
79
+ this.userrole = new NamirasoftAccessServerUserRole(base_url, manager, onError);
80
+ }
81
81
  };
@@ -1,44 +1,44 @@
1
- /****************************************************************/
2
- /* */
3
- /* This is an Auto-Generated File */
4
- /* Made By */
5
- /* Namirasoft SDK Generator NPM Package */
6
- /* */
7
- /****************************************************************/
8
- /****************************************************************/
9
- /* */
10
- /* Please do not make any change to this file */
11
- /* If any changed is reqired, ns-sdkg command must be used */
12
- /* */
13
- /****************************************************************/
14
- /****************************************************************/
15
- /* */
16
- /* Namira Software Corporation */
17
- /* https://namirasoft.com */
18
- /* */
19
- /****************************************************************/
20
-
21
- import { AccessRow } from "./row/AccessRow";
22
- import { NamirasoftAccessServerBase } from "./NamirasoftAccessServerBase";
23
- import { TokenManager } from "namirasoft-account";
24
-
25
- export class NamirasoftAccessServerAccess extends NamirasoftAccessServerBase
26
- {
27
- constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
28
- {
29
- super(base_url, manager, onError);
30
- this._GetFor = this._GetFor.bind(this);
31
- this.SetOwner = this.SetOwner.bind(this);
32
- }
33
- async _GetFor(user_id: string): Promise<AccessRow>
34
- {
35
- let path = `/user/${user_id}/access`;
36
- let { data } = await this._get<AccessRow>(path, {});
37
- return data;
38
- }
39
- async SetOwner(body: { owner_id: (string | null) }): Promise<void>
40
- {
41
- let path = `/access/owner`;
42
- await this._put<void>(path, {}, body);
43
- }
1
+ /****************************************************************/
2
+ /* */
3
+ /* This is an Auto-Generated File */
4
+ /* Made By */
5
+ /* Namirasoft SDK Generator NPM Package */
6
+ /* */
7
+ /****************************************************************/
8
+ /****************************************************************/
9
+ /* */
10
+ /* Please do not make any change to this file */
11
+ /* If any changed is reqired, ns-sdkg command must be used */
12
+ /* */
13
+ /****************************************************************/
14
+ /****************************************************************/
15
+ /* */
16
+ /* Namira Software Corporation */
17
+ /* https://namirasoft.com */
18
+ /* */
19
+ /****************************************************************/
20
+
21
+ import { AccessRow } from "./row/AccessRow";
22
+ import { NamirasoftAccessServerBase } from "./NamirasoftAccessServerBase";
23
+ import { TokenManager } from "namirasoft-account";
24
+
25
+ export class NamirasoftAccessServerAccess extends NamirasoftAccessServerBase
26
+ {
27
+ constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
28
+ {
29
+ super(base_url, manager, onError);
30
+ this._GetFor = this._GetFor.bind(this);
31
+ this.SetOwner = this.SetOwner.bind(this);
32
+ }
33
+ async _GetFor(user_id: string): Promise<AccessRow>
34
+ {
35
+ let path = `/user/${user_id}/access`;
36
+ let { data } = await this._get<AccessRow>(path, {});
37
+ return data;
38
+ }
39
+ async SetOwner(body: { owner_id: (string | null) }): Promise<void>
40
+ {
41
+ let path = `/access/owner`;
42
+ await this._put<void>(path, {}, body);
43
+ }
44
44
  };
@@ -1,30 +1,30 @@
1
- /****************************************************************/
2
- /* */
3
- /* This is an Auto-Generated File */
4
- /* Made By */
5
- /* Namirasoft SDK Generator NPM Package */
6
- /* */
7
- /****************************************************************/
8
- /****************************************************************/
9
- /* */
10
- /* Please do not make any change to this file */
11
- /* If any changed is reqired, ns-sdkg command must be used */
12
- /* */
13
- /****************************************************************/
14
- /****************************************************************/
15
- /* */
16
- /* Namira Software Corporation */
17
- /* https://namirasoft.com */
18
- /* */
19
- /****************************************************************/
20
-
21
- import { NSABaseServer } from "namirasoft-account";
22
- import { TokenManager } from "namirasoft-account";
23
-
24
- export class NamirasoftAccessServerBase extends NSABaseServer
25
- {
26
- constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
27
- {
28
- super(base_url, `1.4.46`, manager, onError);
29
- }
1
+ /****************************************************************/
2
+ /* */
3
+ /* This is an Auto-Generated File */
4
+ /* Made By */
5
+ /* Namirasoft SDK Generator NPM Package */
6
+ /* */
7
+ /****************************************************************/
8
+ /****************************************************************/
9
+ /* */
10
+ /* Please do not make any change to this file */
11
+ /* If any changed is reqired, ns-sdkg command must be used */
12
+ /* */
13
+ /****************************************************************/
14
+ /****************************************************************/
15
+ /* */
16
+ /* Namira Software Corporation */
17
+ /* https://namirasoft.com */
18
+ /* */
19
+ /****************************************************************/
20
+
21
+ import { NSABaseServer } from "namirasoft-account";
22
+ import { TokenManager } from "namirasoft-account";
23
+
24
+ export class NamirasoftAccessServerBase extends NSABaseServer
25
+ {
26
+ constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
27
+ {
28
+ super(base_url, `1.4.47`, manager, onError);
29
+ }
30
30
  };
@@ -1,36 +1,36 @@
1
- /****************************************************************/
2
- /* */
3
- /* This is an Auto-Generated File */
4
- /* Made By */
5
- /* Namirasoft SDK Generator NPM Package */
6
- /* */
7
- /****************************************************************/
8
- /****************************************************************/
9
- /* */
10
- /* Please do not make any change to this file */
11
- /* If any changed is reqired, ns-sdkg command must be used */
12
- /* */
13
- /****************************************************************/
14
- /****************************************************************/
15
- /* */
16
- /* Namira Software Corporation */
17
- /* https://namirasoft.com */
18
- /* */
19
- /****************************************************************/
20
-
21
- import { NamirasoftAccessServerBase } from "./NamirasoftAccessServerBase";
22
- import { TokenManager } from "namirasoft-account";
23
-
24
- export class NamirasoftAccessServerHealthz extends NamirasoftAccessServerBase
25
- {
26
- constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
27
- {
28
- super(base_url, manager, onError);
29
- this.Get = this.Get.bind(this);
30
- }
31
- async Get(): Promise<void>
32
- {
33
- let path = `/healthz`;
34
- await this._get<void>(path, {});
35
- }
1
+ /****************************************************************/
2
+ /* */
3
+ /* This is an Auto-Generated File */
4
+ /* Made By */
5
+ /* Namirasoft SDK Generator NPM Package */
6
+ /* */
7
+ /****************************************************************/
8
+ /****************************************************************/
9
+ /* */
10
+ /* Please do not make any change to this file */
11
+ /* If any changed is reqired, ns-sdkg command must be used */
12
+ /* */
13
+ /****************************************************************/
14
+ /****************************************************************/
15
+ /* */
16
+ /* Namira Software Corporation */
17
+ /* https://namirasoft.com */
18
+ /* */
19
+ /****************************************************************/
20
+
21
+ import { NamirasoftAccessServerBase } from "./NamirasoftAccessServerBase";
22
+ import { TokenManager } from "namirasoft-account";
23
+
24
+ export class NamirasoftAccessServerHealthz extends NamirasoftAccessServerBase
25
+ {
26
+ constructor(base_url: string, manager: TokenManager, onError: (error: Error) => void)
27
+ {
28
+ super(base_url, manager, onError);
29
+ this.Get = this.Get.bind(this);
30
+ }
31
+ async Get(): Promise<void>
32
+ {
33
+ let path = `/healthz`;
34
+ await this._get<void>(path, {});
35
+ }
36
36
  };