namirasoft-access 1.4.49 → 1.4.50

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 (152) hide show
  1. package/dist/AccessControl.js +1 -9
  2. package/dist/AccessControl.js.map +1 -1
  3. package/package.json +27 -27
  4. package/src/AccessControl.ts +39 -48
  5. package/src/NamirasoftAccessServer.ts +80 -80
  6. package/src/NamirasoftAccessServerAccess.ts +43 -43
  7. package/src/NamirasoftAccessServerBase.ts +29 -29
  8. package/src/NamirasoftAccessServerHealthz.ts +35 -35
  9. package/src/NamirasoftAccessServerPermission.ts +108 -108
  10. package/src/NamirasoftAccessServerPermissionCategory.ts +62 -62
  11. package/src/NamirasoftAccessServerPermissionField.ts +69 -69
  12. package/src/NamirasoftAccessServerPermissionTag.ts +69 -69
  13. package/src/NamirasoftAccessServerPolicy.ts +86 -86
  14. package/src/NamirasoftAccessServerPolicyCategory.ts +62 -62
  15. package/src/NamirasoftAccessServerPolicyField.ts +69 -69
  16. package/src/NamirasoftAccessServerPolicyTag.ts +69 -69
  17. package/src/NamirasoftAccessServerProduct.ts +54 -54
  18. package/src/NamirasoftAccessServerRole.ts +86 -86
  19. package/src/NamirasoftAccessServerRoleCategory.ts +62 -62
  20. package/src/NamirasoftAccessServerRoleField.ts +69 -69
  21. package/src/NamirasoftAccessServerRoleTag.ts +69 -69
  22. package/src/NamirasoftAccessServerUserRole.ts +35 -35
  23. package/src/NamirasoftAccessServerValue.ts +36 -36
  24. package/src/command/AccessCommand.ts +33 -33
  25. package/src/command/AccessSetOwnerCommand.ts +55 -55
  26. package/src/command/Access_GetForCommand.ts +44 -44
  27. package/src/command/HealthzCommand.ts +31 -31
  28. package/src/command/HealthzGetCommand.ts +44 -44
  29. package/src/command/PermissionCategoryCommand.ts +37 -37
  30. package/src/command/PermissionCategoryCreateCommand.ts +55 -55
  31. package/src/command/PermissionCategoryDeleteCommand.ts +44 -44
  32. package/src/command/PermissionCategoryGetCommand.ts +44 -44
  33. package/src/command/PermissionCategoryListCommand.ts +44 -44
  34. package/src/command/PermissionCommand.ts +49 -49
  35. package/src/command/PermissionCreateCommand.ts +100 -100
  36. package/src/command/PermissionDeleteIncomingCommand.ts +44 -44
  37. package/src/command/PermissionDeleteOutgoingCommand.ts +44 -44
  38. package/src/command/PermissionFieldCommand.ts +39 -39
  39. package/src/command/PermissionFieldCreateCommand.ts +64 -64
  40. package/src/command/PermissionFieldDeleteCommand.ts +44 -44
  41. package/src/command/PermissionFieldGetCommand.ts +44 -44
  42. package/src/command/PermissionFieldListCommand.ts +44 -44
  43. package/src/command/PermissionFieldUpdateCommand.ts +64 -64
  44. package/src/command/PermissionGetCommand.ts +44 -44
  45. package/src/command/PermissionGetIncomingCommand.ts +44 -44
  46. package/src/command/PermissionGetOutgoingCommand.ts +44 -44
  47. package/src/command/PermissionListCommand.ts +44 -44
  48. package/src/command/PermissionListIncomingCommand.ts +44 -44
  49. package/src/command/PermissionListOutgoingCommand.ts +44 -44
  50. package/src/command/PermissionTagCommand.ts +39 -39
  51. package/src/command/PermissionTagCreateCommand.ts +64 -64
  52. package/src/command/PermissionTagDeleteCommand.ts +44 -44
  53. package/src/command/PermissionTagGetCommand.ts +44 -44
  54. package/src/command/PermissionTagListCommand.ts +44 -44
  55. package/src/command/PermissionTagUpdateCommand.ts +64 -64
  56. package/src/command/PermissionUpdateCommand.ts +100 -100
  57. package/src/command/PolicyCategoryCommand.ts +37 -37
  58. package/src/command/PolicyCategoryCreateCommand.ts +55 -55
  59. package/src/command/PolicyCategoryDeleteCommand.ts +44 -44
  60. package/src/command/PolicyCategoryGetCommand.ts +44 -44
  61. package/src/command/PolicyCategoryListCommand.ts +44 -44
  62. package/src/command/PolicyCommand.ts +43 -43
  63. package/src/command/PolicyCreateCommand.ts +136 -136
  64. package/src/command/PolicyDeleteCommand.ts +44 -44
  65. package/src/command/PolicyFieldCommand.ts +39 -39
  66. package/src/command/PolicyFieldCreateCommand.ts +64 -64
  67. package/src/command/PolicyFieldDeleteCommand.ts +44 -44
  68. package/src/command/PolicyFieldGetCommand.ts +44 -44
  69. package/src/command/PolicyFieldListCommand.ts +44 -44
  70. package/src/command/PolicyFieldUpdateCommand.ts +64 -64
  71. package/src/command/PolicyGetCommand.ts +44 -44
  72. package/src/command/PolicyGetIncomingCommand.ts +44 -44
  73. package/src/command/PolicyListCommand.ts +44 -44
  74. package/src/command/PolicyListIncomingCommand.ts +44 -44
  75. package/src/command/PolicyTagCommand.ts +39 -39
  76. package/src/command/PolicyTagCreateCommand.ts +64 -64
  77. package/src/command/PolicyTagDeleteCommand.ts +44 -44
  78. package/src/command/PolicyTagGetCommand.ts +44 -44
  79. package/src/command/PolicyTagListCommand.ts +44 -44
  80. package/src/command/PolicyTagUpdateCommand.ts +64 -64
  81. package/src/command/PolicyUpdateCommand.ts +136 -136
  82. package/src/command/ProductCommand.ts +35 -35
  83. package/src/command/ProductGetCommand.ts +44 -44
  84. package/src/command/ProductListCommand.ts +44 -44
  85. package/src/command/Product_SetCommand.ts +55 -55
  86. package/src/command/RoleCategoryCommand.ts +37 -37
  87. package/src/command/RoleCategoryCreateCommand.ts +55 -55
  88. package/src/command/RoleCategoryDeleteCommand.ts +44 -44
  89. package/src/command/RoleCategoryGetCommand.ts +44 -44
  90. package/src/command/RoleCategoryListCommand.ts +44 -44
  91. package/src/command/RoleCommand.ts +43 -43
  92. package/src/command/RoleCreateCommand.ts +100 -100
  93. package/src/command/RoleDeleteCommand.ts +44 -44
  94. package/src/command/RoleFieldCommand.ts +39 -39
  95. package/src/command/RoleFieldCreateCommand.ts +64 -64
  96. package/src/command/RoleFieldDeleteCommand.ts +44 -44
  97. package/src/command/RoleFieldGetCommand.ts +44 -44
  98. package/src/command/RoleFieldListCommand.ts +44 -44
  99. package/src/command/RoleFieldUpdateCommand.ts +64 -64
  100. package/src/command/RoleGetCommand.ts +44 -44
  101. package/src/command/RoleGetIncomingCommand.ts +44 -44
  102. package/src/command/RoleListCommand.ts +44 -44
  103. package/src/command/RoleListIncomingCommand.ts +44 -44
  104. package/src/command/RoleTagCommand.ts +39 -39
  105. package/src/command/RoleTagCreateCommand.ts +64 -64
  106. package/src/command/RoleTagDeleteCommand.ts +44 -44
  107. package/src/command/RoleTagGetCommand.ts +44 -44
  108. package/src/command/RoleTagListCommand.ts +44 -44
  109. package/src/command/RoleTagUpdateCommand.ts +64 -64
  110. package/src/command/RoleUpdateCommand.ts +100 -100
  111. package/src/command/UserRoleCommand.ts +31 -31
  112. package/src/command/UserRole_SetCommand.ts +64 -64
  113. package/src/command/ValueCommand.ts +31 -31
  114. package/src/command/ValueListCommand.ts +44 -44
  115. package/src/command/cli.ts +64 -64
  116. package/src/index.ts +166 -166
  117. package/src/meta/NamirasoftAccessMetaDatabase.ts +69 -69
  118. package/src/meta/PermissionCategoryMetaTable.ts +45 -45
  119. package/src/meta/PermissionFieldMetaTable.ts +47 -47
  120. package/src/meta/PermissionMetaTable.ts +57 -57
  121. package/src/meta/PermissionTagMetaTable.ts +47 -47
  122. package/src/meta/PolicyCategoryMetaTable.ts +45 -45
  123. package/src/meta/PolicyFieldMetaTable.ts +47 -47
  124. package/src/meta/PolicyMetaTable.ts +55 -55
  125. package/src/meta/PolicyTagMetaTable.ts +47 -47
  126. package/src/meta/RoleCategoryMetaTable.ts +45 -45
  127. package/src/meta/RoleFieldMetaTable.ts +47 -47
  128. package/src/meta/RoleMetaTable.ts +45 -45
  129. package/src/meta/RoleTagMetaTable.ts +47 -47
  130. package/src/row/AccessRow.ts +27 -27
  131. package/src/row/EntityCategoryInputRow.ts +23 -23
  132. package/src/row/EntityFieldInputRow.ts +24 -24
  133. package/src/row/EntityTagInputRow.ts +24 -24
  134. package/src/row/PermissionCategoryRow.ts +28 -28
  135. package/src/row/PermissionFieldRow.ts +29 -29
  136. package/src/row/PermissionFullRow.ts +43 -43
  137. package/src/row/PermissionInputRow.ts +32 -32
  138. package/src/row/PermissionRow.ts +34 -34
  139. package/src/row/PermissionTagRow.ts +29 -29
  140. package/src/row/PolicyCategoryRow.ts +28 -28
  141. package/src/row/PolicyFieldRow.ts +29 -29
  142. package/src/row/PolicyFullRow.ts +40 -40
  143. package/src/row/PolicyInputRow.ts +36 -36
  144. package/src/row/PolicyRow.ts +33 -33
  145. package/src/row/PolicyTagRow.ts +29 -29
  146. package/src/row/ProductRow.ts +27 -27
  147. package/src/row/RoleCategoryRow.ts +28 -28
  148. package/src/row/RoleFieldRow.ts +29 -29
  149. package/src/row/RoleFullRow.ts +36 -36
  150. package/src/row/RoleInputRow.ts +32 -32
  151. package/src/row/RoleRow.ts +28 -28
  152. package/src/row/RoleTagRow.ts +29 -29
@@ -6,28 +6,20 @@ class AccessControl {
6
6
  static isValid(policies, product_id, entity, action, id) {
7
7
  entity = namirasoft_core_1.NamingConvention.auto.convert(entity, namirasoft_core_1.NamingConvention.lower_case_underscore).trim();
8
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 });
10
9
  for (let i = 0; i < policies.length; i++) {
11
10
  const element = policies[i];
12
- console.log({ i });
13
11
  if (element.product_id == "*" || element.product_id === product_id) {
14
12
  let entities = element.entity.split(/[\s;,|]+/).map(e => namirasoft_core_1.NamingConvention.auto.convert(e, namirasoft_core_1.NamingConvention.lower_case_underscore).trim());
15
- console.log({ entities });
16
13
  if (element.entity == "*" || entities.includes(entity)) {
17
14
  let actions = element.actions.split(/[\s;,|]+/).map(a => namirasoft_core_1.NamingConvention.auto.convert(a, namirasoft_core_1.NamingConvention.lower_case_underscore).trim());
18
- console.log({ actions });
19
15
  if (element.actions == "*" || actions.includes(action)) {
20
16
  let resources = element.resources.split(/[\s;,|]+/).map(r => namirasoft_core_1.NamingConvention.auto.convert(r, namirasoft_core_1.NamingConvention.lower_case_underscore).trim());
21
- console.log({ resources });
22
- if (element.resources == "*" || id === null || resources.includes(id)) {
23
- console.log({ allow: element.allow });
17
+ if (element.resources == "*" || id === null || resources.includes(id))
24
18
  return element.allow;
25
- }
26
19
  }
27
20
  }
28
21
  }
29
22
  }
30
- console.log("Access denied");
31
23
  return false;
32
24
  }
33
25
  static check(policies, product_id, entity, action, id) {
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../src/AccessControl.ts"],"names":[],"mappings":"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"}
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,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,EAClE,CAAC;gBACG,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,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;gBAC1I,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACtD,CAAC;oBACG,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;oBAC1I,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EACtD,CAAC;wBACG,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;wBAC9I,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjE,OAAO,OAAO,CAAC,KAAK,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,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;AApCD,sCAoCC"}
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.49",
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
- }
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.50",
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,49 +1,40 @@
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
- console.log({ i });
15
- if (element.product_id == "*" || element.product_id === product_id)
16
- {
17
- let entities = element.entity.split(/[\s;,|]+/).map(e => NamingConvention.auto.convert(e, NamingConvention.lower_case_underscore).trim());
18
- console.log({ entities });
19
- if (element.entity == "*" || entities.includes(entity))
20
- {
21
- let actions = element.actions.split(/[\s;,|]+/).map(a => NamingConvention.auto.convert(a, NamingConvention.lower_case_underscore).trim());
22
- console.log({ actions });
23
- if (element.actions == "*" || actions.includes(action))
24
- {
25
- let resources = element.resources.split(/[\s;,|]+/).map(r => NamingConvention.auto.convert(r, NamingConvention.lower_case_underscore).trim());
26
- console.log({ resources });
27
- if (element.resources == "*" || id === null || resources.includes(id))
28
- {
29
- console.log({ allow: element.allow });
30
- return element.allow;
31
- }
32
- }
33
- }
34
- }
35
- }
36
- console.log("Access denied");
37
- return false;
38
- }
39
- static check(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): void
40
- {
41
- if (!AccessControl.isValid(policies, product_id, entity, action, id))
42
- {
43
- let message = `Access denied (Entity: '${entity}', Action: '${action}')`;
44
- if (id)
45
- message += ` on resource: ${id}`;
46
- throw ErrorOperation.getHTTP(403, message);
47
- }
48
- }
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
+ for (let i = 0; i < policies.length; i++)
11
+ {
12
+ const element = policies[i];
13
+ if (element.product_id == "*" || element.product_id === product_id)
14
+ {
15
+ let entities = element.entity.split(/[\s;,|]+/).map(e => NamingConvention.auto.convert(e, NamingConvention.lower_case_underscore).trim());
16
+ if (element.entity == "*" || entities.includes(entity))
17
+ {
18
+ let actions = element.actions.split(/[\s;,|]+/).map(a => NamingConvention.auto.convert(a, NamingConvention.lower_case_underscore).trim());
19
+ if (element.actions == "*" || actions.includes(action))
20
+ {
21
+ let resources = element.resources.split(/[\s;,|]+/).map(r => NamingConvention.auto.convert(r, NamingConvention.lower_case_underscore).trim());
22
+ if (element.resources == "*" || id === null || resources.includes(id))
23
+ return element.allow;
24
+ }
25
+ }
26
+ }
27
+ }
28
+ return false;
29
+ }
30
+ static check(policies: PolicyRow[], product_id: string, entity: string, action: string, id: string | null): void
31
+ {
32
+ if (!AccessControl.isValid(policies, product_id, entity, action, id))
33
+ {
34
+ let message = `Access denied (Entity: '${entity}', Action: '${action}')`;
35
+ if (id)
36
+ message += ` on resource: ${id}`;
37
+ throw ErrorOperation.getHTTP(403, message);
38
+ }
39
+ }
49
40
  }
@@ -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.47`, 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
  };