geoserver-node-client 1.6.1 → 1.6.2
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/dist/geoserver-rest-client.js +38 -39
- package/dist/package.json +7 -7
- package/dist/src/about.js +35 -86
- package/dist/src/datastore.js +524 -950
- package/dist/src/imagemosaic.js +103 -211
- package/dist/src/layer.js +718 -1287
- package/dist/src/layergroup.js +128 -226
- package/dist/src/namespace.js +110 -222
- package/dist/src/reset-reload.js +41 -96
- package/dist/src/security.js +279 -567
- package/dist/src/settings.js +127 -255
- package/dist/src/style.js +228 -448
- package/dist/src/util/geoserver.js +17 -44
- package/dist/src/workspace.js +116 -229
- package/package.json +7 -7
package/dist/src/security.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
7
|
+
exports.default = void 0;
|
|
12
8
|
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
13
9
|
var _geoserver = require("./util/geoserver.js");
|
|
14
10
|
/**
|
|
@@ -16,15 +12,14 @@ var _geoserver = require("./util/geoserver.js");
|
|
|
16
12
|
*
|
|
17
13
|
* @module SecurityClient
|
|
18
14
|
*/
|
|
19
|
-
|
|
15
|
+
class SecurityClient {
|
|
20
16
|
/**
|
|
21
17
|
* Creates a GeoServer REST SecurityClient instance.
|
|
22
18
|
*
|
|
23
19
|
* @param {String} url The URL of the GeoServer REST API endpoint
|
|
24
20
|
* @param {String} auth The Basic Authentication string
|
|
25
21
|
*/
|
|
26
|
-
|
|
27
|
-
(0, _classCallCheck2["default"])(this, SecurityClient);
|
|
22
|
+
constructor(url, auth) {
|
|
28
23
|
this.url = url;
|
|
29
24
|
this.auth = auth;
|
|
30
25
|
}
|
|
@@ -36,572 +31,289 @@ var SecurityClient = exports["default"] = /*#__PURE__*/function () {
|
|
|
36
31
|
*
|
|
37
32
|
* @returns {Object} An object with all users
|
|
38
33
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
while (1) switch (_context.prev = _context.next) {
|
|
46
|
-
case 0:
|
|
47
|
-
_context.next = 1;
|
|
48
|
-
return (0, _nodeFetch["default"])(this.url + 'security/usergroup/users.json', {
|
|
49
|
-
credentials: 'include',
|
|
50
|
-
method: 'GET',
|
|
51
|
-
headers: {
|
|
52
|
-
Authorization: this.auth
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
case 1:
|
|
56
|
-
response = _context.sent;
|
|
57
|
-
if (response.ok) {
|
|
58
|
-
_context.next = 3;
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
_context.next = 2;
|
|
62
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
63
|
-
case 2:
|
|
64
|
-
geoServerResponse = _context.sent;
|
|
65
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
66
|
-
case 3:
|
|
67
|
-
return _context.abrupt("return", response.json());
|
|
68
|
-
case 4:
|
|
69
|
-
case "end":
|
|
70
|
-
return _context.stop();
|
|
71
|
-
}
|
|
72
|
-
}, _callee, this);
|
|
73
|
-
}));
|
|
74
|
-
function getAllUsers() {
|
|
75
|
-
return _getAllUsers.apply(this, arguments);
|
|
34
|
+
async getAllUsers() {
|
|
35
|
+
const response = await (0, _nodeFetch.default)(this.url + 'security/usergroup/users.json', {
|
|
36
|
+
credentials: 'include',
|
|
37
|
+
method: 'GET',
|
|
38
|
+
headers: {
|
|
39
|
+
Authorization: this.auth
|
|
76
40
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
password: password,
|
|
100
|
-
enabled: true
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
_context2.next = 1;
|
|
104
|
-
return (0, _nodeFetch["default"])(this.url + 'security/usergroup/users.json', {
|
|
105
|
-
credentials: 'include',
|
|
106
|
-
method: 'POST',
|
|
107
|
-
headers: {
|
|
108
|
-
Authorization: this.auth,
|
|
109
|
-
'Content-Type': 'application/json'
|
|
110
|
-
},
|
|
111
|
-
body: JSON.stringify(body)
|
|
112
|
-
});
|
|
113
|
-
case 1:
|
|
114
|
-
response = _context2.sent;
|
|
115
|
-
if (response.ok) {
|
|
116
|
-
_context2.next = 5;
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
_context2.next = 2;
|
|
120
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
121
|
-
case 2:
|
|
122
|
-
geoServerResponse = _context2.sent;
|
|
123
|
-
_t = response.status;
|
|
124
|
-
_context2.next = _t === 404 ? 3 : 4;
|
|
125
|
-
break;
|
|
126
|
-
case 3:
|
|
127
|
-
throw new _geoserver.GeoServerResponseError("User ".concat(username, " might already exists."), geoServerResponse);
|
|
128
|
-
case 4:
|
|
129
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
130
|
-
case 5:
|
|
131
|
-
case "end":
|
|
132
|
-
return _context2.stop();
|
|
133
|
-
}
|
|
134
|
-
}, _callee2, this);
|
|
135
|
-
}));
|
|
136
|
-
function createUser(_x, _x2) {
|
|
137
|
-
return _createUser.apply(this, arguments);
|
|
41
|
+
});
|
|
42
|
+
if (!response.ok) {
|
|
43
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
44
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
45
|
+
}
|
|
46
|
+
return response.json();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Creates a new user.
|
|
51
|
+
*
|
|
52
|
+
* @param {String} username The name of the user to be created
|
|
53
|
+
* @param {String} password The password of the user to be created
|
|
54
|
+
*
|
|
55
|
+
* @throws Error if request fails
|
|
56
|
+
*/
|
|
57
|
+
async createUser(username, password) {
|
|
58
|
+
const body = {
|
|
59
|
+
user: {
|
|
60
|
+
userName: username,
|
|
61
|
+
password: password,
|
|
62
|
+
enabled: true
|
|
138
63
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
var body, response, geoServerResponse;
|
|
157
|
-
return _regenerator["default"].wrap(function (_context3) {
|
|
158
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
159
|
-
case 0:
|
|
160
|
-
body = {
|
|
161
|
-
user: {
|
|
162
|
-
password: password,
|
|
163
|
-
enabled: enabled
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
_context3.next = 1;
|
|
167
|
-
return (0, _nodeFetch["default"])(this.url + 'security/usergroup/user/' + username, {
|
|
168
|
-
credentials: 'include',
|
|
169
|
-
method: 'POST',
|
|
170
|
-
headers: {
|
|
171
|
-
Authorization: this.auth,
|
|
172
|
-
'Content-Type': 'application/json'
|
|
173
|
-
},
|
|
174
|
-
body: JSON.stringify(body)
|
|
175
|
-
});
|
|
176
|
-
case 1:
|
|
177
|
-
response = _context3.sent;
|
|
178
|
-
if (response.ok) {
|
|
179
|
-
_context3.next = 3;
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
_context3.next = 2;
|
|
183
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
184
|
-
case 2:
|
|
185
|
-
geoServerResponse = _context3.sent;
|
|
186
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
187
|
-
case 3:
|
|
188
|
-
case "end":
|
|
189
|
-
return _context3.stop();
|
|
190
|
-
}
|
|
191
|
-
}, _callee3, this);
|
|
192
|
-
}));
|
|
193
|
-
function updateUser(_x3, _x4, _x5) {
|
|
194
|
-
return _updateUser.apply(this, arguments);
|
|
64
|
+
};
|
|
65
|
+
const response = await (0, _nodeFetch.default)(this.url + 'security/usergroup/users.json', {
|
|
66
|
+
credentials: 'include',
|
|
67
|
+
method: 'POST',
|
|
68
|
+
headers: {
|
|
69
|
+
Authorization: this.auth,
|
|
70
|
+
'Content-Type': 'application/json'
|
|
71
|
+
},
|
|
72
|
+
body: JSON.stringify(body)
|
|
73
|
+
});
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
76
|
+
switch (response.status) {
|
|
77
|
+
case 404:
|
|
78
|
+
throw new _geoserver.GeoServerResponseError(`User ${username} might already exists.`, geoServerResponse);
|
|
79
|
+
default:
|
|
80
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
195
81
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
_context4.next = 1;
|
|
215
|
-
return (0, _nodeFetch["default"])(this.url + 'security/usergroup/user/' + username, {
|
|
216
|
-
credentials: 'include',
|
|
217
|
-
method: 'DELETE',
|
|
218
|
-
headers: {
|
|
219
|
-
Authorization: this.auth
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
case 1:
|
|
223
|
-
response = _context4.sent;
|
|
224
|
-
if (response.ok) {
|
|
225
|
-
_context4.next = 3;
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
_context4.next = 2;
|
|
229
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
230
|
-
case 2:
|
|
231
|
-
geoServerResponse = _context4.sent;
|
|
232
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
233
|
-
case 3:
|
|
234
|
-
case "end":
|
|
235
|
-
return _context4.stop();
|
|
236
|
-
}
|
|
237
|
-
}, _callee4, this);
|
|
238
|
-
}));
|
|
239
|
-
function deleteUser(_x6) {
|
|
240
|
-
return _deleteUser.apply(this, arguments);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Updates an existing user. User name is only taken for identification and
|
|
87
|
+
* cannot be changed with this API call.
|
|
88
|
+
*
|
|
89
|
+
* @param {String} username The name of the user to be created
|
|
90
|
+
* @param {String} password The password of the user to be created
|
|
91
|
+
* @param {Boolean} enabled Enable / disable the user
|
|
92
|
+
*
|
|
93
|
+
* @throws Error if request fails
|
|
94
|
+
*/
|
|
95
|
+
async updateUser(username, password, enabled) {
|
|
96
|
+
const body = {
|
|
97
|
+
user: {
|
|
98
|
+
password: password,
|
|
99
|
+
enabled: enabled
|
|
241
100
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
)
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
if (response.ok) {
|
|
272
|
-
_context5.next = 3;
|
|
273
|
-
break;
|
|
274
|
-
}
|
|
275
|
-
_context5.next = 2;
|
|
276
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
277
|
-
case 2:
|
|
278
|
-
geoServerResponse = _context5.sent;
|
|
279
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
280
|
-
case 3:
|
|
281
|
-
return _context5.abrupt("return", response.json());
|
|
282
|
-
case 4:
|
|
283
|
-
case "end":
|
|
284
|
-
return _context5.stop();
|
|
285
|
-
}
|
|
286
|
-
}, _callee5, this);
|
|
287
|
-
}));
|
|
288
|
-
function getAllRoles() {
|
|
289
|
-
return _getAllRoles.apply(this, arguments);
|
|
101
|
+
};
|
|
102
|
+
const response = await (0, _nodeFetch.default)(this.url + 'security/usergroup/user/' + username, {
|
|
103
|
+
credentials: 'include',
|
|
104
|
+
method: 'POST',
|
|
105
|
+
headers: {
|
|
106
|
+
Authorization: this.auth,
|
|
107
|
+
'Content-Type': 'application/json'
|
|
108
|
+
},
|
|
109
|
+
body: JSON.stringify(body)
|
|
110
|
+
});
|
|
111
|
+
if (!response.ok) {
|
|
112
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
113
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Deletes an existing user.
|
|
119
|
+
*
|
|
120
|
+
* @param {String} username The name of the user to be deleted
|
|
121
|
+
*
|
|
122
|
+
* @throws Error if request fails
|
|
123
|
+
*/
|
|
124
|
+
async deleteUser(username) {
|
|
125
|
+
const response = await (0, _nodeFetch.default)(this.url + 'security/usergroup/user/' + username, {
|
|
126
|
+
credentials: 'include',
|
|
127
|
+
method: 'DELETE',
|
|
128
|
+
headers: {
|
|
129
|
+
Authorization: this.auth
|
|
290
130
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
credentials: 'include',
|
|
313
|
-
method: 'POST',
|
|
314
|
-
headers: {
|
|
315
|
-
Authorization: this.auth
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
case 1:
|
|
319
|
-
response = _context6.sent;
|
|
320
|
-
if (response.ok) {
|
|
321
|
-
_context6.next = 5;
|
|
322
|
-
break;
|
|
323
|
-
}
|
|
324
|
-
_context6.next = 2;
|
|
325
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
326
|
-
case 2:
|
|
327
|
-
geoServerResponse = _context6.sent;
|
|
328
|
-
_t2 = response.status;
|
|
329
|
-
_context6.next = _t2 === 404 ? 3 : 4;
|
|
330
|
-
break;
|
|
331
|
-
case 3:
|
|
332
|
-
throw new _geoserver.GeoServerResponseError("Role ".concat(role, " might already exist."), geoServerResponse);
|
|
333
|
-
case 4:
|
|
334
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
335
|
-
case 5:
|
|
336
|
-
case "end":
|
|
337
|
-
return _context6.stop();
|
|
338
|
-
}
|
|
339
|
-
}, _callee6, this);
|
|
340
|
-
}));
|
|
341
|
-
function createRole(_x7) {
|
|
342
|
-
return _createRole.apply(this, arguments);
|
|
131
|
+
});
|
|
132
|
+
if (!response.ok) {
|
|
133
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
134
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Returns all roles registered in GeoServer.
|
|
140
|
+
*
|
|
141
|
+
* @throws Error if request fails
|
|
142
|
+
*
|
|
143
|
+
* @returns {Object} An object with all roles like { "roles": ["ADMIN", "GROUP_ADMIN"] }
|
|
144
|
+
*/
|
|
145
|
+
async getAllRoles() {
|
|
146
|
+
const url = `${this.url}security/roles.json`;
|
|
147
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
148
|
+
credentials: 'include',
|
|
149
|
+
method: 'GET',
|
|
150
|
+
headers: {
|
|
151
|
+
Authorization: this.auth
|
|
343
152
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
method: 'DELETE',
|
|
367
|
-
headers: {
|
|
368
|
-
Authorization: this.auth
|
|
369
|
-
}
|
|
370
|
-
});
|
|
371
|
-
case 1:
|
|
372
|
-
response = _context7.sent;
|
|
373
|
-
if (response.ok) {
|
|
374
|
-
_context7.next = 5;
|
|
375
|
-
break;
|
|
376
|
-
}
|
|
377
|
-
_context7.next = 2;
|
|
378
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
379
|
-
case 2:
|
|
380
|
-
geoServerResponse = _context7.sent;
|
|
381
|
-
_t3 = response.status;
|
|
382
|
-
_context7.next = _t3 === 404 ? 3 : 4;
|
|
383
|
-
break;
|
|
384
|
-
case 3:
|
|
385
|
-
throw new _geoserver.GeoServerResponseError("Role ".concat(role, " not existing."), geoServerResponse);
|
|
386
|
-
case 4:
|
|
387
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
388
|
-
case 5:
|
|
389
|
-
case "end":
|
|
390
|
-
return _context7.stop();
|
|
391
|
-
}
|
|
392
|
-
}, _callee7, this);
|
|
393
|
-
}));
|
|
394
|
-
function deleteRole(_x8) {
|
|
395
|
-
return _deleteRole.apply(this, arguments);
|
|
153
|
+
});
|
|
154
|
+
if (!response.ok) {
|
|
155
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
156
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
157
|
+
}
|
|
158
|
+
return response.json();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Creates a new role.
|
|
163
|
+
*
|
|
164
|
+
* @param {String} role The name of the role to be created
|
|
165
|
+
*
|
|
166
|
+
* @throws Error if request fails
|
|
167
|
+
*/
|
|
168
|
+
async createRole(role) {
|
|
169
|
+
const url = `${this.url}security/roles/role/${role}`;
|
|
170
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
171
|
+
credentials: 'include',
|
|
172
|
+
method: 'POST',
|
|
173
|
+
headers: {
|
|
174
|
+
Authorization: this.auth
|
|
396
175
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
* @throws Error if request fails
|
|
406
|
-
*/
|
|
407
|
-
)
|
|
408
|
-
}, {
|
|
409
|
-
key: "associateUserRole",
|
|
410
|
-
value: (function () {
|
|
411
|
-
var _associateUserRole = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(username, role) {
|
|
412
|
-
var response, geoServerResponse;
|
|
413
|
-
return _regenerator["default"].wrap(function (_context8) {
|
|
414
|
-
while (1) switch (_context8.prev = _context8.next) {
|
|
415
|
-
case 0:
|
|
416
|
-
_context8.next = 1;
|
|
417
|
-
return (0, _nodeFetch["default"])("".concat(this.url, "security/roles/role/").concat(role, "/user/").concat(username), {
|
|
418
|
-
credentials: 'include',
|
|
419
|
-
method: 'POST',
|
|
420
|
-
headers: {
|
|
421
|
-
Authorization: this.auth
|
|
422
|
-
}
|
|
423
|
-
});
|
|
424
|
-
case 1:
|
|
425
|
-
response = _context8.sent;
|
|
426
|
-
if (response.ok) {
|
|
427
|
-
_context8.next = 3;
|
|
428
|
-
break;
|
|
429
|
-
}
|
|
430
|
-
_context8.next = 2;
|
|
431
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
432
|
-
case 2:
|
|
433
|
-
geoServerResponse = _context8.sent;
|
|
434
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
435
|
-
case 3:
|
|
436
|
-
case "end":
|
|
437
|
-
return _context8.stop();
|
|
438
|
-
}
|
|
439
|
-
}, _callee8, this);
|
|
440
|
-
}));
|
|
441
|
-
function associateUserRole(_x9, _x0) {
|
|
442
|
-
return _associateUserRole.apply(this, arguments);
|
|
176
|
+
});
|
|
177
|
+
if (!response.ok) {
|
|
178
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
179
|
+
switch (response.status) {
|
|
180
|
+
case 404:
|
|
181
|
+
throw new _geoserver.GeoServerResponseError(`Role ${role} might already exist.`, geoServerResponse);
|
|
182
|
+
default:
|
|
183
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
443
184
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
case 0:
|
|
462
|
-
url = "".concat(this.url, "security/acl/layers.json");
|
|
463
|
-
_context9.next = 1;
|
|
464
|
-
return (0, _nodeFetch["default"])(url, {
|
|
465
|
-
credentials: 'include',
|
|
466
|
-
method: 'GET',
|
|
467
|
-
headers: {
|
|
468
|
-
Authorization: this.auth
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
case 1:
|
|
472
|
-
response = _context9.sent;
|
|
473
|
-
if (response.ok) {
|
|
474
|
-
_context9.next = 3;
|
|
475
|
-
break;
|
|
476
|
-
}
|
|
477
|
-
_context9.next = 2;
|
|
478
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
479
|
-
case 2:
|
|
480
|
-
geoServerResponse = _context9.sent;
|
|
481
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
482
|
-
case 3:
|
|
483
|
-
return _context9.abrupt("return", response.json());
|
|
484
|
-
case 4:
|
|
485
|
-
case "end":
|
|
486
|
-
return _context9.stop();
|
|
487
|
-
}
|
|
488
|
-
}, _callee9, this);
|
|
489
|
-
}));
|
|
490
|
-
function getAllAccessRules() {
|
|
491
|
-
return _getAllAccessRules.apply(this, arguments);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Deletes an existing role.
|
|
190
|
+
*
|
|
191
|
+
* @param {String} role The name of the role to be deleted
|
|
192
|
+
*
|
|
193
|
+
* @throws Error if request fails
|
|
194
|
+
*/
|
|
195
|
+
async deleteRole(role) {
|
|
196
|
+
const url = `${this.url}security/roles/role/${role}`;
|
|
197
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
198
|
+
credentials: 'include',
|
|
199
|
+
method: 'DELETE',
|
|
200
|
+
headers: {
|
|
201
|
+
Authorization: this.auth
|
|
492
202
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
* @throws Error if request fails
|
|
502
|
-
*/
|
|
503
|
-
)
|
|
504
|
-
}, {
|
|
505
|
-
key: "createDataAccessRule",
|
|
506
|
-
value: (function () {
|
|
507
|
-
var _createDataAccessRule = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0(rule, roles) {
|
|
508
|
-
var url, body, response, geoServerResponse, _t4;
|
|
509
|
-
return _regenerator["default"].wrap(function (_context0) {
|
|
510
|
-
while (1) switch (_context0.prev = _context0.next) {
|
|
511
|
-
case 0:
|
|
512
|
-
url = "".concat(this.url, "security/acl/layers");
|
|
513
|
-
body = {};
|
|
514
|
-
body[rule] = roles.join(',');
|
|
515
|
-
_context0.next = 1;
|
|
516
|
-
return (0, _nodeFetch["default"])(url, {
|
|
517
|
-
credentials: 'include',
|
|
518
|
-
method: 'POST',
|
|
519
|
-
headers: {
|
|
520
|
-
Authorization: this.auth,
|
|
521
|
-
'Content-Type': 'application/json'
|
|
522
|
-
},
|
|
523
|
-
body: JSON.stringify(body)
|
|
524
|
-
});
|
|
525
|
-
case 1:
|
|
526
|
-
response = _context0.sent;
|
|
527
|
-
if (response.ok) {
|
|
528
|
-
_context0.next = 5;
|
|
529
|
-
break;
|
|
530
|
-
}
|
|
531
|
-
_context0.next = 2;
|
|
532
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
533
|
-
case 2:
|
|
534
|
-
geoServerResponse = _context0.sent;
|
|
535
|
-
_t4 = response.status;
|
|
536
|
-
_context0.next = _t4 === 404 ? 3 : 4;
|
|
537
|
-
break;
|
|
538
|
-
case 3:
|
|
539
|
-
throw new _geoserver.GeoServerResponseError("Rule ".concat(rule, " might already exists."), geoServerResponse);
|
|
540
|
-
case 4:
|
|
541
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
542
|
-
case 5:
|
|
543
|
-
case "end":
|
|
544
|
-
return _context0.stop();
|
|
545
|
-
}
|
|
546
|
-
}, _callee0, this);
|
|
547
|
-
}));
|
|
548
|
-
function createDataAccessRule(_x1, _x10) {
|
|
549
|
-
return _createDataAccessRule.apply(this, arguments);
|
|
203
|
+
});
|
|
204
|
+
if (!response.ok) {
|
|
205
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
206
|
+
switch (response.status) {
|
|
207
|
+
case 404:
|
|
208
|
+
throw new _geoserver.GeoServerResponseError(`Role ${role} not existing.`, geoServerResponse);
|
|
209
|
+
default:
|
|
210
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
550
211
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
break;
|
|
591
|
-
case 3:
|
|
592
|
-
throw new _geoserver.GeoServerResponseError("Rule ".concat(rule, " not existing."), geoServerResponse);
|
|
593
|
-
case 4:
|
|
594
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
595
|
-
case 5:
|
|
596
|
-
case "end":
|
|
597
|
-
return _context1.stop();
|
|
598
|
-
}
|
|
599
|
-
}, _callee1, this);
|
|
600
|
-
}));
|
|
601
|
-
function deleteDataAccessRule(_x11) {
|
|
602
|
-
return _deleteDataAccessRule.apply(this, arguments);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Associates the given role to the user.
|
|
217
|
+
*
|
|
218
|
+
* @param {String} username The name of the user to add the role to
|
|
219
|
+
* @param {String} role The role to associate
|
|
220
|
+
*
|
|
221
|
+
* @throws Error if request fails
|
|
222
|
+
*/
|
|
223
|
+
async associateUserRole(username, role) {
|
|
224
|
+
const response = await (0, _nodeFetch.default)(`${this.url}security/roles/role/${role}/user/${username}`, {
|
|
225
|
+
credentials: 'include',
|
|
226
|
+
method: 'POST',
|
|
227
|
+
headers: {
|
|
228
|
+
Authorization: this.auth
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
if (!response.ok) {
|
|
232
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
233
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Returns all data access rules registered in GeoServer.
|
|
239
|
+
*
|
|
240
|
+
* @throws Error if request fails
|
|
241
|
+
*
|
|
242
|
+
* @returns {Object} An object with all data access rules like { "*.*.r": ["ADMIN", "GROUP_ADMIN"] }
|
|
243
|
+
*/
|
|
244
|
+
async getAllAccessRules() {
|
|
245
|
+
const url = `${this.url}security/acl/layers.json`;
|
|
246
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
247
|
+
credentials: 'include',
|
|
248
|
+
method: 'GET',
|
|
249
|
+
headers: {
|
|
250
|
+
Authorization: this.auth
|
|
603
251
|
}
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
252
|
+
});
|
|
253
|
+
if (!response.ok) {
|
|
254
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
255
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
256
|
+
}
|
|
257
|
+
return response.json();
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Creates a new data access rule.
|
|
262
|
+
*
|
|
263
|
+
* @param {String} rule The rule in the form '<MY_WS>.<MY_LAYER>.r'
|
|
264
|
+
* @param {String[]} roles The roles to allow access to rule
|
|
265
|
+
*
|
|
266
|
+
* @throws Error if request fails
|
|
267
|
+
*/
|
|
268
|
+
async createDataAccessRule(rule, roles) {
|
|
269
|
+
const url = `${this.url}security/acl/layers`;
|
|
270
|
+
const body = {};
|
|
271
|
+
body[rule] = roles.join(',');
|
|
272
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
273
|
+
credentials: 'include',
|
|
274
|
+
method: 'POST',
|
|
275
|
+
headers: {
|
|
276
|
+
Authorization: this.auth,
|
|
277
|
+
'Content-Type': 'application/json'
|
|
278
|
+
},
|
|
279
|
+
body: JSON.stringify(body)
|
|
280
|
+
});
|
|
281
|
+
if (!response.ok) {
|
|
282
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
283
|
+
switch (response.status) {
|
|
284
|
+
case 404:
|
|
285
|
+
throw new _geoserver.GeoServerResponseError(`Rule ${rule} might already exists.`, geoServerResponse);
|
|
286
|
+
default:
|
|
287
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Deletes an existing data access rule.
|
|
294
|
+
*
|
|
295
|
+
* @param {String} rule The rule to be deleted, like '<MY_WS>.<MY_LAYER>.r'
|
|
296
|
+
*
|
|
297
|
+
* @throws Error if request fails
|
|
298
|
+
*/
|
|
299
|
+
async deleteDataAccessRule(rule) {
|
|
300
|
+
const url = `${this.url}security/acl/layers/${rule}`;
|
|
301
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
302
|
+
credentials: 'include',
|
|
303
|
+
method: 'DELETE',
|
|
304
|
+
headers: {
|
|
305
|
+
Authorization: this.auth
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
if (!response.ok) {
|
|
309
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
310
|
+
switch (response.status) {
|
|
311
|
+
case 404:
|
|
312
|
+
throw new _geoserver.GeoServerResponseError(`Rule ${rule} not existing.`, geoServerResponse);
|
|
313
|
+
default:
|
|
314
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
exports.default = SecurityClient;
|