@or-sdk/permissions 1.1.0 → 1.1.1-beta.3267.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.
package/README.md CHANGED
@@ -1 +1,15 @@
1
1
  ## Installation:
2
+ ```
3
+ $ npm i @or-sdk/permissions
4
+ ```
5
+
6
+
7
+ ## Usage:
8
+ ```typescript
9
+ import { Permissions } from '@or-sdk/permissions'
10
+
11
+ const permissions = new Permissions({
12
+ token: 'my-account-token-string',
13
+ permissionsUrl: 'http://example.permissions/endpoint'
14
+ });
15
+ ```
@@ -65,15 +65,31 @@ var Permissions = (function (_super) {
65
65
  serviceKey: constants_1.SERVICE_KEY,
66
66
  }) || this;
67
67
  }
68
- Permissions.prototype.getCurrentUserPermissionsByService = function (service) {
68
+ Permissions.prototype.registerService = function (params) {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var data;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4, this.callApiV2({
74
+ method: 'POST',
75
+ route: '/v1/permissions/services',
76
+ data: params,
77
+ })];
78
+ case 1:
79
+ data = _a.sent();
80
+ return [2, data];
81
+ }
82
+ });
83
+ });
84
+ };
85
+ Permissions.prototype.getCurrent = function () {
69
86
  return __awaiter(this, void 0, void 0, function () {
70
87
  var data;
71
88
  return __generator(this, function (_a) {
72
89
  switch (_a.label) {
73
90
  case 0: return [4, this.callApiV2({
74
91
  method: 'GET',
75
- route: '/v1/permissions',
76
- params: { service: service },
92
+ route: '/v1/permissions/self',
77
93
  })];
78
94
  case 1:
79
95
  data = _a.sent();
@@ -82,14 +98,14 @@ var Permissions = (function (_super) {
82
98
  });
83
99
  });
84
100
  };
85
- Permissions.prototype.getAllCurrentUserPermissions = function () {
101
+ Permissions.prototype.getCurrentForService = function (service) {
86
102
  return __awaiter(this, void 0, void 0, function () {
87
103
  var data;
88
104
  return __generator(this, function (_a) {
89
105
  switch (_a.label) {
90
106
  case 0: return [4, this.callApiV2({
91
107
  method: 'GET',
92
- route: '/v1/permissions/all',
108
+ route: "/v1/permissions/self/".concat(service),
93
109
  })];
94
110
  case 1:
95
111
  data = _a.sent();
@@ -98,14 +114,14 @@ var Permissions = (function (_super) {
98
114
  });
99
115
  });
100
116
  };
101
- Permissions.prototype.updateEntityPermissions = function (data) {
117
+ Permissions.prototype.updateEntity = function (data) {
102
118
  return __awaiter(this, void 0, void 0, function () {
103
119
  var response;
104
120
  return __generator(this, function (_a) {
105
121
  switch (_a.label) {
106
122
  case 0: return [4, this.callApiV2({
107
123
  method: 'PUT',
108
- route: '/v1/permissions',
124
+ route: '/v1/permissions/entities',
109
125
  data: data,
110
126
  })];
111
127
  case 1:
@@ -115,14 +131,31 @@ var Permissions = (function (_super) {
115
131
  });
116
132
  });
117
133
  };
118
- Permissions.prototype.getAllUserPermissions = function (userid) {
134
+ Permissions.prototype.getByUserIdInCurrentAccount = function (userId) {
135
+ return __awaiter(this, void 0, void 0, function () {
136
+ var response;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0: return [4, this.callApiV2({
140
+ method: 'GET',
141
+ route: "/v1/permissions/all/".concat(userId),
142
+ })];
143
+ case 1:
144
+ response = _a.sent();
145
+ return [2, response];
146
+ }
147
+ });
148
+ });
149
+ };
150
+ Permissions.prototype.checkScope = function (scope) {
119
151
  return __awaiter(this, void 0, void 0, function () {
120
152
  var response;
121
153
  return __generator(this, function (_a) {
122
154
  switch (_a.label) {
123
155
  case 0: return [4, this.callApiV2({
124
156
  method: 'GET',
125
- route: "/v1/permissions/all/".concat(userid),
157
+ route: '/v1/permissions/scope',
158
+ params: { scope: scope.join(',') },
126
159
  })];
127
160
  case 1:
128
161
  response = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;AAU1C;IAAiC,+BAAI;IAUnC,qBAAY,MAAyB;QAC3B,IAAA,KAAK,GAAmC,MAAM,MAAzC,EAAE,YAAY,GAAqB,MAAM,aAA3B,EAAE,cAAc,GAAK,MAAM,eAAX,CAAY;QAEvD,OAAA,MAAK,YAAC;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,uBAAW;SACxB,CAAC,SAAC;IACL,CAAC;IAEK,wDAAkC,GAAxC,UAAyC,OAAe;;;;;4BACzC,WAAM,IAAI,CAAC,SAAS,CAA+B;4BAC9D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,iBAAiB;4BACxB,MAAM,EAAE,EAAE,OAAO,SAAA,EAAE;yBACpB,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAEK,kDAA4B,GAAlC;;;;;4BACe,WAAM,IAAI,CAAC,SAAS,CAA4B;4BAC3D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,qBAAqB;yBAC7B,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAEK,6CAAuB,GAA7B,UAA8B,IAA6B;;;;;4BACxC,WAAM,IAAI,CAAC,SAAS,CAA4B;4BAC/D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,iBAAiB;4BACxB,IAAI,MAAA;yBACL,CAAC,EAAA;;wBAJI,QAAQ,GAAG,SAIf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IAEK,2CAAqB,GAA3B,UAA4B,MAAc;;;;;4BACvB,WAAM,IAAI,CAAC,SAAS,CAAoC;4BACvE,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,8BAAuB,MAAM,CAAE;yBACvC,CAAC,EAAA;;wBAHI,QAAQ,GAAG,SAGf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IACH,kBAAC;AAAD,CAAC,AAtDD,CAAiC,WAAI,GAsDpC;AAtDY,kCAAW"}
1
+ {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;AAkB1C;IAAiC,+BAAI;IAUnC,qBAAY,MAAyB;QAC3B,IAAA,KAAK,GAAmC,MAAM,MAAzC,EAAE,YAAY,GAAqB,MAAM,aAA3B,EAAE,cAAc,GAAK,MAAM,eAAX,CAAY;QACvD,OAAA,MAAK,YAAC;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,uBAAW;SACxB,CAAC,SAAC;IACL,CAAC;IAUK,qCAAe,GAArB,UAAsB,MAA0B;;;;;4BACjC,WAAM,IAAI,CAAC,SAAS,CAAe;4BAC9C,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,0BAA0B;4BACjC,IAAI,EAAE,MAAM;yBACb,CAAC,EAAA;;wBAJI,IAAI,GAAG,SAIX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,gCAAU,GAAhB;;;;;4BACe,WAAM,IAAI,CAAC,SAAS,CAA6B;4BAC5D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,sBAAsB;yBAC9B,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAOK,0CAAoB,GAA1B,UAA2B,OAAe;;;;;4BAC3B,WAAM,IAAI,CAAC,SAAS,CAA+B;4BAC9D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,+BAAwB,OAAO,CAAE;yBACzC,CAAC,EAAA;;wBAHI,IAAI,GAAG,SAGX;wBACF,WAAO,IAAI,EAAC;;;;KACb;IAUK,kCAAY,GAAlB,UAAmB,IAAgC;;;;;4BAChC,WAAM,IAAI,CAAC,SAAS,CAA6B;4BAChE,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,0BAA0B;4BACjC,IAAI,MAAA;yBACL,CAAC,EAAA;;wBAJI,QAAQ,GAAG,SAIf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IAOK,iDAA2B,GAAjC,UAAkC,MAAc;;;;;4BAC7B,WAAM,IAAI,CAAC,SAAS,CAA0B;4BAC7D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,8BAAuB,MAAM,CAAE;yBACvC,CAAC,EAAA;;wBAHI,QAAQ,GAAG,SAGf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IAOK,gCAAU,GAAhB,UAAiB,KAAe;;;;;4BACb,WAAM,IAAI,CAAC,SAAS,CAAU;4BAC7C,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,uBAAuB;4BAC9B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;yBACnC,CAAC,EAAA;;wBAJI,QAAQ,GAAG,SAIf;wBACF,WAAO,QAAQ,EAAC;;;;KACjB;IACH,kBAAC;AAAD,CAAC,AA1GD,CAAiC,WAAI,GA0GpC;AA1GY,kCAAW"}
@@ -19,40 +19,59 @@ export class Permissions extends Base {
19
19
  serviceKey: SERVICE_KEY,
20
20
  });
21
21
  }
22
- getCurrentUserPermissionsByService(service) {
22
+ registerService(params) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const data = yield this.callApiV2({
25
+ method: 'POST',
26
+ route: '/v1/permissions/services',
27
+ data: params,
28
+ });
29
+ return data;
30
+ });
31
+ }
32
+ getCurrent() {
23
33
  return __awaiter(this, void 0, void 0, function* () {
24
34
  const data = yield this.callApiV2({
25
35
  method: 'GET',
26
- route: '/v1/permissions',
27
- params: { service },
36
+ route: '/v1/permissions/self',
28
37
  });
29
38
  return data;
30
39
  });
31
40
  }
32
- getAllCurrentUserPermissions() {
41
+ getCurrentForService(service) {
33
42
  return __awaiter(this, void 0, void 0, function* () {
34
43
  const data = yield this.callApiV2({
35
44
  method: 'GET',
36
- route: '/v1/permissions/all',
45
+ route: `/v1/permissions/self/${service}`,
37
46
  });
38
47
  return data;
39
48
  });
40
49
  }
41
- updateEntityPermissions(data) {
50
+ updateEntity(data) {
42
51
  return __awaiter(this, void 0, void 0, function* () {
43
52
  const response = yield this.callApiV2({
44
53
  method: 'PUT',
45
- route: '/v1/permissions',
54
+ route: '/v1/permissions/entities',
46
55
  data,
47
56
  });
48
57
  return response;
49
58
  });
50
59
  }
51
- getAllUserPermissions(userid) {
60
+ getByUserIdInCurrentAccount(userId) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const response = yield this.callApiV2({
63
+ method: 'GET',
64
+ route: `/v1/permissions/all/${userId}`,
65
+ });
66
+ return response;
67
+ });
68
+ }
69
+ checkScope(scope) {
52
70
  return __awaiter(this, void 0, void 0, function* () {
53
71
  const response = yield this.callApiV2({
54
72
  method: 'GET',
55
- route: `/v1/permissions/all/${userid}`,
73
+ route: '/v1/permissions/scope',
74
+ params: { scope: scope.join(',') },
56
75
  });
57
76
  return response;
58
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU1C,MAAM,OAAO,WAAY,SAAQ,IAAI;IAUnC,YAAY,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAEvD,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC;IAEK,kCAAkC,CAAC,OAAe;;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA+B;gBAC9D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,EAAE,OAAO,EAAE;aACpB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,4BAA4B;;YAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA4B;gBAC3D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,qBAAqB;aAC7B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,uBAAuB,CAAC,IAA6B;;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA4B;gBAC/D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,iBAAiB;gBACxB,IAAI;aACL,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEK,qBAAqB,CAAC,MAAc;;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAoC;gBACvE,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,uBAAuB,MAAM,EAAE;aACvC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkB1C,MAAM,OAAO,WAAY,SAAQ,IAAI;IAUnC,YAAY,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QACvD,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC;IAUK,eAAe,CAAC,MAA0B;;YAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAe;gBAC9C,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,UAAU;;YACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA6B;gBAC5D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,sBAAsB;aAC9B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAOK,oBAAoB,CAAC,OAAe;;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA+B;gBAC9D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,wBAAwB,OAAO,EAAE;aACzC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAUK,YAAY,CAAC,IAAgC;;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA6B;gBAChE,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,0BAA0B;gBACjC,IAAI;aACL,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAOK,2BAA2B,CAAC,MAAc;;YAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA0B;gBAC7D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,uBAAuB,MAAM,EAAE;aACvC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAOK,UAAU,CAAC,KAAe;;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAU;gBAC7C,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,uBAAuB;gBAC9B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aACnC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { Base } from '@or-sdk/base';
2
- import { GetAllPermissionsByUserIdResponse, GetAllPermissionsResponse, GetPermissionByServiceResult, PermissionsConfig, UpdateEntityPermissions } from './types';
2
+ import { CurrentPermissionsResponse, Permission, PermissionsByServiceResponse, PermissionsConfig, RegisterServiceDto, UpdateEntityPermissionsDto, UserPermissionsResponse } from './types';
3
3
  export declare class Permissions extends Base {
4
4
  constructor(params: PermissionsConfig);
5
- getCurrentUserPermissionsByService(service: string): Promise<GetPermissionByServiceResult>;
6
- getAllCurrentUserPermissions(): Promise<GetAllPermissionsResponse>;
7
- updateEntityPermissions(data: UpdateEntityPermissions): Promise<GetAllPermissionsResponse>;
8
- getAllUserPermissions(userid: string): Promise<GetAllPermissionsByUserIdResponse>;
5
+ registerService(params: RegisterServiceDto): Promise<Permission[]>;
6
+ getCurrent(): Promise<CurrentPermissionsResponse>;
7
+ getCurrentForService(service: string): Promise<PermissionsByServiceResponse>;
8
+ updateEntity(data: UpdateEntityPermissionsDto): Promise<CurrentPermissionsResponse>;
9
+ getByUserIdInCurrentAccount(userId: string): Promise<UserPermissionsResponse>;
10
+ checkScope(scope: string[]): Promise<boolean>;
9
11
  }
10
12
  //# sourceMappingURL=Permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,iCAAiC,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AASjK,qBAAa,WAAY,SAAQ,IAAI;gBAUvB,MAAM,EAAE,iBAAiB;IAW/B,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAS1F,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAQlE,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS1F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC;CAOxF"}
1
+ {"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,SAAS,CAAC;AASjB,qBAAa,WAAY,SAAQ,IAAI;gBAUvB,MAAM,EAAE,iBAAiB;IAkB/B,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAclE,UAAU,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAajD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAgB5E,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAcnF,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAa7E,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAQpD"}
@@ -8,36 +8,47 @@ export type PermissionsConfig = {
8
8
  permissionsUrl: string;
9
9
  discoveryUrl?: string;
10
10
  };
11
- export type GetPermissionByServiceResult = {
11
+ export type PermissionsByServiceResponse = {
12
12
  [key: string]: boolean;
13
13
  };
14
- export type ServicePermission = {
14
+ export type BasicPermission = {
15
15
  name: string;
16
16
  effect: boolean;
17
17
  };
18
- export type ExtendedServicePermission = ServicePermission & {
18
+ export type DetailedPermission = BasicPermission & {
19
19
  description: string;
20
20
  };
21
- export type ServiceWithPermissions = {
21
+ export type PermissionGroup = {
22
22
  serviceName: string;
23
- permissions: ServicePermission[];
23
+ permissions: BasicPermission[];
24
24
  };
25
- export type ExtendedServiceWithPermissions = {
25
+ export type DetailedPermissionGroup = {
26
26
  serviceName: string;
27
27
  serviceLabel: string;
28
- permissions: ExtendedServicePermission[];
28
+ permissions: DetailedPermission[];
29
29
  };
30
- export type GetAllPermissionsResponse = ServiceWithPermissions[];
31
- export type GetAllPermissionsByUserIdResponse = ExtendedServiceWithPermissions[];
30
+ export type CurrentPermissionsResponse = PermissionGroup[];
31
+ export type UserPermissionsResponse = DetailedPermissionGroup[];
32
32
  export type PermissionOverride = {
33
33
  permissionName: string;
34
34
  effect: boolean;
35
35
  };
36
- export type UpdateEntityPermissions = {
36
+ export type UpdateEntityPermissionsDto = {
37
37
  entityType: EntityType;
38
38
  entityId: string;
39
39
  permissions: {
40
40
  [serviceName: string]: PermissionOverride[];
41
41
  };
42
42
  };
43
+ export type Permission = {
44
+ name: string;
45
+ description: string;
46
+ defaultEffect: boolean;
47
+ metadata?: unknown;
48
+ };
49
+ export type RegisterServiceDto = {
50
+ service: string;
51
+ serviceLabel: string;
52
+ permissions: Permission[];
53
+ };
43
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAI9B,KAAK,EAAE,KAAK,CAAC;IAIb,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAC1D,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,EAAE,CAAC;AACjE,MAAM,MAAM,iCAAiC,GAAG,8BAA8B,EAAE,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;KAC7C,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,oBAAY,UAAU;IACpB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAI9B,KAAK,EAAE,KAAK,CAAC;IAIb,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,eAAe,EAAE,CAAC;AAC3D,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,EAAE,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@or-sdk/permissions",
3
- "version": "1.1.0",
3
+ "version": "1.1.1-beta.3267.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -26,6 +26,5 @@
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
29
- },
30
- "gitHead": "468edb5e9810689f4e523fc0df043ed1f9cadef9"
29
+ }
31
30
  }
@@ -1,7 +1,15 @@
1
1
  import { Base } from '@or-sdk/base';
2
2
 
3
3
  import { SERVICE_KEY } from './constants';
4
- import { GetAllPermissionsByUserIdResponse, GetAllPermissionsResponse, GetPermissionByServiceResult, PermissionsConfig, UpdateEntityPermissions } from './types';
4
+ import {
5
+ CurrentPermissionsResponse,
6
+ Permission,
7
+ PermissionsByServiceResponse,
8
+ PermissionsConfig,
9
+ RegisterServiceDto,
10
+ UpdateEntityPermissionsDto,
11
+ UserPermissionsResponse,
12
+ } from './types';
5
13
 
6
14
  /**
7
15
  * OneReach Permissions service client
@@ -22,7 +30,6 @@ export class Permissions extends Base {
22
30
  */
23
31
  constructor(params: PermissionsConfig) {
24
32
  const { token, discoveryUrl, permissionsUrl } = params;
25
-
26
33
  super({
27
34
  token,
28
35
  discoveryUrl,
@@ -31,36 +38,89 @@ export class Permissions extends Base {
31
38
  });
32
39
  }
33
40
 
34
- async getCurrentUserPermissionsByService(service: string): Promise<GetPermissionByServiceResult> {
35
- const data = await this.callApiV2<GetPermissionByServiceResult>({
41
+ /**
42
+ * Registers a new service with its permissions
43
+ * @param {RegisterServiceParams} params - Service registration data
44
+ * @param {string} params.service - Service identifier
45
+ * @param {string} params.serviceLabel - Human-readable service name
46
+ * @param {Permission[]} params.permissions - List of permissions to register
47
+ * @returns {Promise<Permission[]>} Registered permissions
48
+ */
49
+ async registerService(params: RegisterServiceDto): Promise<Permission[]> {
50
+ const data = await this.callApiV2<Permission[]>({
51
+ method: 'POST',
52
+ route: '/v1/permissions/services',
53
+ data: params,
54
+ });
55
+ return data;
56
+ }
57
+
58
+ /**
59
+ * Gets all permissions for current user across all services
60
+ * @returns {Promise<CurrentPermissionsResponse>} List of services with their permissions
61
+ */
62
+
63
+ async getCurrent(): Promise<CurrentPermissionsResponse> {
64
+ const data = await this.callApiV2<CurrentPermissionsResponse>({
36
65
  method: 'GET',
37
- route: '/v1/permissions',
38
- params: { service },
66
+ route: '/v1/permissions/self',
39
67
  });
40
68
  return data;
41
69
  }
42
70
 
43
- async getAllCurrentUserPermissions(): Promise<GetAllPermissionsResponse> {
44
- const data = await this.callApiV2<GetAllPermissionsResponse>({
71
+ /**
72
+ * Gets current user permissions for a specific service
73
+ * @param {string} service - Service identifier
74
+ * @returns {Promise<PermissionsByServiceResponse>} Map of permission names to their effects
75
+ */
76
+ async getCurrentForService(service: string): Promise<PermissionsByServiceResponse> {
77
+ const data = await this.callApiV2<PermissionsByServiceResponse>({
45
78
  method: 'GET',
46
- route: '/v1/permissions/all',
79
+ route: `/v1/permissions/self/${service}`,
47
80
  });
48
81
  return data;
49
82
  }
50
83
 
51
- async updateEntityPermissions(data: UpdateEntityPermissions): Promise<GetAllPermissionsResponse> {
52
- const response = await this.callApiV2<GetAllPermissionsResponse>({
84
+ /**
85
+ * Updates permissions for a specific entity (SingleUser or MultiUser)
86
+ * @param {UpdateEntityPermissionsDto} data - Update parameters
87
+ * @param {EntityType} data.entityType - Type of entity (SingleUser/MultiUser)
88
+ * @param {string} data.entityId - Entity identifier
89
+ * @param {Object} data.permissions - Map of service names to permission overrides
90
+ * @returns {Promise<CurrentPermissionsResponse>}
91
+ */
92
+ async updateEntity(data: UpdateEntityPermissionsDto): Promise<CurrentPermissionsResponse> {
93
+ const response = await this.callApiV2<CurrentPermissionsResponse>({
53
94
  method: 'PUT',
54
- route: '/v1/permissions',
95
+ route: '/v1/permissions/entities',
55
96
  data,
56
97
  });
57
98
  return response;
58
99
  }
59
100
 
60
- async getAllUserPermissions(userid: string): Promise<GetAllPermissionsByUserIdResponse> {
61
- const response = await this.callApiV2<GetAllPermissionsByUserIdResponse>({
101
+ /**
102
+ * Gets permissions for a specific user within an account
103
+ * @param {string} userId - User identifier
104
+ * @returns {Promise<UserPermissionsResponse>} List of services with detailed permissions
105
+ */
106
+ async getByUserIdInCurrentAccount(userId: string): Promise<UserPermissionsResponse> {
107
+ const response = await this.callApiV2<UserPermissionsResponse>({
108
+ method: 'GET',
109
+ route: `/v1/permissions/all/${userId}`,
110
+ });
111
+ return response;
112
+ }
113
+
114
+ /**
115
+ * Checks if user has the specified permission scopes
116
+ * @param {string[]} scope - List of permission scopes to check
117
+ * @returns {Promise<boolean>} True if user has all specified scopes, false otherwise
118
+ */
119
+ async checkScope(scope: string[]): Promise<boolean> {
120
+ const response = await this.callApiV2<boolean>({
62
121
  method: 'GET',
63
- route: `/v1/permissions/all/${userid}`,
122
+ route: '/v1/permissions/scope',
123
+ params: { scope: scope.join(',') },
64
124
  });
65
125
  return response;
66
126
  }
package/src/types.ts CHANGED
@@ -11,48 +11,61 @@ export type PermissionsConfig = {
11
11
  */
12
12
  token: Token;
13
13
  /**
14
- * function which return token
15
- */
14
+ * function which return token
15
+ */
16
16
  permissionsUrl: string;
17
17
  discoveryUrl?: string;
18
18
  };
19
19
 
20
- export type GetPermissionByServiceResult = {
20
+ export type PermissionsByServiceResponse = {
21
21
  [key: string]: boolean;
22
22
  };
23
23
 
24
- export type ServicePermission = {
24
+ export type BasicPermission = {
25
25
  name: string;
26
26
  effect: boolean;
27
27
  };
28
28
 
29
- export type ExtendedServicePermission = ServicePermission & {
29
+ export type DetailedPermission = BasicPermission & {
30
30
  description: string;
31
31
  };
32
32
 
33
- export type ServiceWithPermissions = {
33
+ export type PermissionGroup = {
34
34
  serviceName: string;
35
- permissions: ServicePermission[];
35
+ permissions: BasicPermission[];
36
36
  };
37
37
 
38
- export type ExtendedServiceWithPermissions = {
38
+ export type DetailedPermissionGroup = {
39
39
  serviceName: string;
40
40
  serviceLabel: string;
41
- permissions: ExtendedServicePermission[];
41
+ permissions: DetailedPermission[];
42
42
  };
43
43
 
44
- export type GetAllPermissionsResponse = ServiceWithPermissions[];
45
- export type GetAllPermissionsByUserIdResponse = ExtendedServiceWithPermissions[];
44
+ export type CurrentPermissionsResponse = PermissionGroup[];
45
+ export type UserPermissionsResponse = DetailedPermissionGroup[];
46
46
 
47
47
  export type PermissionOverride = {
48
48
  permissionName: string;
49
49
  effect: boolean;
50
50
  };
51
51
 
52
- export type UpdateEntityPermissions = {
52
+ export type UpdateEntityPermissionsDto = {
53
53
  entityType: EntityType;
54
54
  entityId: string;
55
55
  permissions: {
56
56
  [serviceName: string]: PermissionOverride[];
57
57
  };
58
58
  };
59
+
60
+ export type Permission = {
61
+ name: string;
62
+ description: string;
63
+ defaultEffect: boolean;
64
+ metadata?: unknown;
65
+ };
66
+
67
+ export type RegisterServiceDto = {
68
+ service: string;
69
+ serviceLabel: string;
70
+ permissions: Permission[];
71
+ };