chyz 1.0.13-rc.7 → 1.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/BaseChyz.ts +80 -21
  2. package/Doc/Moel kullanma.md +13 -0
  3. package/Examples/Controllers/ApiController.ts +22 -22
  4. package/Examples/Controllers/BasicApiController.ts +121 -0
  5. package/Examples/Controllers/SiteController.ts +18 -8
  6. package/Examples/Models/AuthAssignment.ts +50 -0
  7. package/Examples/Models/AuthItem.ts +59 -0
  8. package/Examples/Models/AuthItemChild.ts +49 -0
  9. package/Examples/Models/Categories.ts +4 -0
  10. package/Examples/Models/KeycloakUser.ts +4 -0
  11. package/Examples/Models/User.ts +8 -1
  12. package/Examples/index.ts +22 -2
  13. package/Examples/log/app.log +14466 -0
  14. package/Examples/log/errors.log +594 -0
  15. package/Examples/package.json +5 -2
  16. package/README.md +265 -12
  17. package/base/ActionFilter.ts +1 -1
  18. package/base/BaseError.ts +4 -2
  19. package/base/DbConnection.ts +9 -5
  20. package/base/InvalidArgumentException.ts +16 -0
  21. package/base/Model.ts +231 -34
  22. package/base/ModelManager.ts +6 -1
  23. package/base/RestClient.ts +4 -4
  24. package/base/ValidationHttpException.ts +1 -1
  25. package/base/index.ts +1 -0
  26. package/dist/BaseChyz.js +49 -10
  27. package/dist/BaseChyz.js.map +1 -1
  28. package/dist/base/ActionFilter.js +1 -1
  29. package/dist/base/ActionFilter.js.map +1 -1
  30. package/dist/base/BaseError.js +6 -2
  31. package/dist/base/BaseError.js.map +1 -1
  32. package/dist/base/DbConnection.js.map +1 -1
  33. package/dist/base/InvalidArgumentException.js +18 -0
  34. package/dist/base/InvalidArgumentException.js.map +1 -0
  35. package/dist/base/Model.js +186 -4
  36. package/dist/base/Model.js.map +1 -1
  37. package/dist/base/ModelManager.js +0 -8
  38. package/dist/base/ModelManager.js.map +1 -1
  39. package/dist/base/RestClient.js +4 -4
  40. package/dist/base/RestClient.js.map +1 -1
  41. package/dist/base/ValidationHttpException.js +1 -1
  42. package/dist/base/index.js +1 -0
  43. package/dist/base/index.js.map +1 -1
  44. package/dist/filters/AccessControl.js +15 -3
  45. package/dist/filters/AccessControl.js.map +1 -1
  46. package/dist/filters/AccessRule.js +99 -38
  47. package/dist/filters/AccessRule.js.map +1 -1
  48. package/dist/filters/auth/HttpBasicAuth.js +65 -0
  49. package/dist/filters/auth/HttpBasicAuth.js.map +1 -1
  50. package/dist/filters/auth/JwtHttpBearerAuth.js +1 -1
  51. package/dist/filters/auth/JwtHttpBearerAuth.js.map +1 -1
  52. package/dist/filters/auth/index.js +1 -0
  53. package/dist/filters/auth/index.js.map +1 -1
  54. package/dist/package.json +2 -4
  55. package/dist/rbac/AuthAssignment.js +45 -0
  56. package/dist/rbac/AuthAssignment.js.map +1 -0
  57. package/dist/rbac/AuthItem.js +52 -0
  58. package/dist/rbac/AuthItem.js.map +1 -0
  59. package/dist/rbac/AuthItemChild.js +44 -0
  60. package/dist/rbac/AuthItemChild.js.map +1 -0
  61. package/dist/rbac/AuthManager.js +359 -0
  62. package/dist/rbac/AuthManager.js.map +1 -0
  63. package/dist/requiments/Utils.js +5 -1
  64. package/dist/requiments/Utils.js.map +1 -1
  65. package/dist/web/WebUser.js +78 -0
  66. package/dist/web/WebUser.js.map +1 -1
  67. package/filters/AccessControl.ts +19 -6
  68. package/filters/AccessRule.ts +61 -16
  69. package/filters/auth/HttpBasicAuth.ts +68 -0
  70. package/filters/auth/JwtHttpBearerAuth.ts +1 -1
  71. package/filters/auth/index.ts +1 -0
  72. package/package.json +3 -4
  73. package/rbac/AuthAssignment.ts +50 -0
  74. package/rbac/AuthItem.ts +57 -0
  75. package/rbac/AuthItemChild.ts +50 -0
  76. package/rbac/AuthManager.ts +398 -0
  77. package/requiments/Utils.ts +6 -0
  78. package/web/IdentityInterface.ts +6 -0
  79. package/web/WebUser.ts +88 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021. Chy Bilgisayar Bilisim
4
+ * Author: Cihan Ozturk
5
+ * E-mail: cihan@chy.com.tr
6
+ * Github:https://github.com/cihan53/
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InvalidArgumentException = void 0;
10
+ const BaseError_1 = require("./BaseError");
11
+ class InvalidArgumentException extends BaseError_1.BaseError {
12
+ constructor(message) {
13
+ super(message, 500);
14
+ this.message = message;
15
+ }
16
+ }
17
+ exports.InvalidArgumentException = InvalidArgumentException;
18
+ //# sourceMappingURL=InvalidArgumentException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidArgumentException.js","sourceRoot":"","sources":["../../base/InvalidArgumentException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,2CAAsC;AAEtC,MAAa,wBAAyB,SAAQ,qBAAS;IACnD,YAAqB,OAAe;QAChC,KAAK,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC;QADF,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACJ;AAJD,4DAIC"}
@@ -86,14 +86,15 @@ class Model extends Component_1.Component {
86
86
  super();
87
87
  this._attributes = {};
88
88
  this._errors = {};
89
- this._tableName = this.constructor.name;
89
+ this._tableName = this.alias();
90
+ BaseChyz_1.default.debug("Model constructor", this._tableName);
90
91
  // this._sequelize = BaseChyz.getComponent("db").db;
91
92
  if (sequelize != null)
92
93
  this._sequelize = sequelize;
93
94
  else
94
- this._sequelize = BaseChyz_1.default.getComponent("db").db;
95
+ this._sequelize = this.getDb();
95
96
  if (!Utils_1.default.isEmpty(this.attributes())) {
96
- this._model = this._sequelize.define(this.constructor.name, this.attributes(), {
97
+ this._model = this._sequelize.define(this._tableName, this.attributes(), {
97
98
  tableName: this.tableName(),
98
99
  timestamps: false,
99
100
  createdAt: false,
@@ -111,7 +112,7 @@ class Model extends Component_1.Component {
111
112
  * You may override this method if you want to use a different database connection.
112
113
  * @return Connection the database connection used by this AR class.
113
114
  */
114
- static getDb() {
115
+ getDb() {
115
116
  return BaseChyz_1.default.getComponent("db").db;
116
117
  }
117
118
  get sequelize() {
@@ -160,6 +161,9 @@ class Model extends Component_1.Component {
160
161
  }
161
162
  }
162
163
  }
164
+ alias() {
165
+ return this.constructor.name;
166
+ }
163
167
  tableName() {
164
168
  return this._tableName;
165
169
  }
@@ -169,6 +173,9 @@ class Model extends Component_1.Component {
169
173
  rules() {
170
174
  return [];
171
175
  }
176
+ set setModel(value) {
177
+ this._model = value;
178
+ }
172
179
  model() {
173
180
  return this._model;
174
181
  }
@@ -246,6 +253,174 @@ class Model extends Component_1.Component {
246
253
  let p = Object.assign(params, this._attributes);
247
254
  return this.model().delete(p, options);
248
255
  }
256
+ /**
257
+ * As there are often use cases in which it is just easier to execute raw / already prepared SQL queries, you can use the sequelize.query method.
258
+ *
259
+ * By default the function will return two arguments - a results array, and an object containing metadata (such as amount of affected rows, etc). Note that since this is a raw query, the metadata are dialect specific. Some dialects return the metadata "within" the results object (as properties on an array). However, two arguments will always be returned, but for MSSQL and MySQL it will be two references to the same object.
260
+ *
261
+ * const [results, metadata] = await sequelize.query("UPDATE users SET y = 42 WHERE x = 12");
262
+ * // Results will be an empty array and metadata will contain the number of affected rows.
263
+ *
264
+ * In cases where you don't need to access the metadata you can pass in a query type to tell sequelize how to format the results. For example, for a simple select query you could do:
265
+ *
266
+ * const { QueryTypes } = require('@sequelize/core');
267
+ * const users = await sequelize.query("SELECT * FROM `users`", { type: QueryTypes.SELECT });
268
+ * // We didn't need to destructure the result here - the results were returned directly
269
+ *
270
+ * Several other query types are available. Peek into the source for details.
271
+ *
272
+ * A second option is the model. If you pass a model the returned data will be instances of that model.
273
+ *
274
+ * // Callee is the model definition. This allows you to easily map a query to a predefined model
275
+ * const projects = await sequelize.query('SELECT * FROM projects', {
276
+ * model: Projects,
277
+ * mapToModel: true // pass true here if you have any mapped fields
278
+ * });
279
+ * // Each element of `projects` is now an instance of Project
280
+ *
281
+ * See more options in the query API reference. Some examples:
282
+ * ``
283
+ * const { QueryTypes } = require('@sequelize/core');
284
+ * await sequelize.query('SELECT 1', {
285
+ * // A function (or false) for logging your queries
286
+ * // Will get called for every SQL query that gets sent
287
+ * // to the server.
288
+ * logging: console.log,
289
+ *
290
+ * // If plain is true, then sequelize will only return the first
291
+ * // record of the result set. In case of false it will return all records.
292
+ * plain: false,
293
+ *
294
+ * // Set this to true if you don't have a model definition for your query.
295
+ * raw: false,
296
+ *
297
+ * // The type of query you are executing. The query type affects how results are formatted before they are passed back.
298
+ * type: QueryTypes.SELECT
299
+ * });
300
+ *``
301
+ * // Note the second argument being null!
302
+ * // Even if we declared a callee here, the raw: true would
303
+ * // supersede and return a raw object.
304
+ * console.log(await sequelize.query('SELECT * FROM projects', { raw: true }));
305
+ *
306
+ * ##"Dotted" attributes and the nest option
307
+ *
308
+ * If an attribute name of the table contains dots, the resulting objects can become nested objects by setting the nest: true option. This is achieved with dottie.js under the hood. See below:
309
+ *
310
+ * Without nest: true:
311
+ * ``
312
+ * const { QueryTypes } = require('@sequelize/core');
313
+ * const records = await sequelize.query('select 1 as `foo.bar.baz`', {
314
+ * type: QueryTypes.SELECT
315
+ * });
316
+ * console.log(JSON.stringify(records[0], null, 2));
317
+ *
318
+ * {
319
+ * "foo.bar.baz": 1
320
+ * }
321
+ *
322
+ * With nest: true:
323
+ *
324
+ * const { QueryTypes } = require('@sequelize/core');
325
+ * const records = await sequelize.query('select 1 as `foo.bar.baz`', {
326
+ * nest: true,
327
+ * type: QueryTypes.SELECT
328
+ * });
329
+ * console.log(JSON.stringify(records[0], null, 2));
330
+ *
331
+ * {
332
+ * "foo": {
333
+ * "bar": {
334
+ * "baz": 1
335
+ * }
336
+ * }
337
+ * }
338
+ * ``
339
+ * ##Replacements
340
+ *
341
+ * Replacements in a query can be done in two different ways, either using named parameters (starting with :), or unnamed, represented by a ?. Replacements are passed in the options object.
342
+ *
343
+ * If an array is passed, ? will be replaced in the order that they appear in the array
344
+ * If an object is passed, :key will be replaced with the keys from that object. If the object contains keys not found in the query or vice versa, an exception will be thrown.
345
+ * ``
346
+ * const { QueryTypes } = require('@sequelize/core');
347
+ *
348
+ * await sequelize.query(
349
+ * 'SELECT * FROM projects WHERE status = ?',
350
+ * {
351
+ * replacements: ['active'],
352
+ * type: QueryTypes.SELECT
353
+ * }
354
+ * );
355
+ *
356
+ * await sequelize.query(
357
+ * 'SELECT * FROM projects WHERE status = :status',
358
+ * {
359
+ * replacements: { status: 'active' },
360
+ * type: QueryTypes.SELECT
361
+ * }
362
+ * );
363
+ * ``
364
+ * Array replacements will automatically be handled, the following query searches for projects where the status matches an array of values.
365
+ * ``
366
+ * const { QueryTypes } = require('@sequelize/core');
367
+ *
368
+ * await sequelize.query(
369
+ * 'SELECT * FROM projects WHERE status IN(:status)',
370
+ * {
371
+ * replacements: { status: ['active', 'inactive'] },
372
+ * type: QueryTypes.SELECT
373
+ * }
374
+ * );
375
+ * ``
376
+ * To use the wildcard operator %, append it to your replacement. The following query matches users with names that start with 'ben'.
377
+ * ``
378
+ * const { QueryTypes } = require('@sequelize/core');
379
+ *
380
+ * await sequelize.query(
381
+ * 'SELECT * FROM users WHERE name LIKE :search_name',
382
+ * {
383
+ * replacements: { search_name: 'ben%' },
384
+ * type: QueryTypes.SELECT
385
+ * }
386
+ * ); ``
387
+ *
388
+ * ##Bind Parameter
389
+ *
390
+ * Bind parameters are like replacements. Except replacements are escaped and inserted into the query by sequelize before the query is sent to the database, while bind parameters are sent to the database outside the SQL query text. A query can have either bind parameters or replacements. Bind parameters are referred to by either $1, $2, ... (numeric) or $key (alpha-numeric). This is independent of the dialect.
391
+ *
392
+ * If an array is passed, $1 is bound to the 1st element in the array (bind[0])
393
+ * If an object is passed, $key is bound to object['key']. Each key must begin with a non-numeric char. $1 is not a valid key, even if object['1'] exists.
394
+ * In either case $$ can be used to escape a literal $ sign.
395
+ *
396
+ * The array or object must contain all bound values or Sequelize will throw an exception. This applies even to cases in which the database may ignore the bound parameter.
397
+ *
398
+ * The database may add further restrictions to this. Bind parameters cannot be SQL keywords, nor table or column names. They are also ignored in quoted text or data. In PostgreSQL it may also be needed to typecast them, if the type cannot be inferred from the context $1::varchar.
399
+ *``
400
+ * const { QueryTypes } = require('@sequelize/core');
401
+ *
402
+ * await sequelize.query(
403
+ * 'SELECT *, "text with literal $$1 and literal $$status" as t FROM projects WHERE status = $1',
404
+ * {
405
+ * bind: ['active'],
406
+ * type: QueryTypes.SELECT
407
+ * }
408
+ * ); ``
409
+ *
410
+ * `` await sequelize.query(
411
+ * 'SELECT *, "text with literal $$1 and literal $$status" as t FROM projects WHERE status = $status',
412
+ * {
413
+ * bind: { status: 'active' },
414
+ * type: QueryTypes.SELECT
415
+ * }
416
+ * );``
417
+ * @param query
418
+ */
419
+ rawQuery(query, options = { type: sequelize_1.QueryTypes.SELECT, nest: true }) {
420
+ return __awaiter(this, void 0, void 0, function* () {
421
+ return yield this.model().query(query, options);
422
+ });
423
+ }
249
424
  /**
250
425
  *
251
426
  * @param args
@@ -260,6 +435,13 @@ class Model extends Component_1.Component {
260
435
  findAll(...args) {
261
436
  return this._model.findAll(...arguments);
262
437
  }
438
+ /**
439
+ * return {count : number , rows: any}
440
+ * @param args
441
+ */
442
+ findAndCountAll(...args) {
443
+ return this._model.findAndCountAll(...arguments);
444
+ }
263
445
  validate() {
264
446
  }
265
447
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../base/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../base/Model.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
1
  "use strict";
2
- /*
3
- *
4
- * Copyright (c) 2021.. Chy Bilgisayar Bilisim
5
- * Author: Cihan Ozturk
6
- * E-mail: cihan@chy.com.tr
7
- * Github:https://github.com/cihan53/
8
- *
9
- */
10
2
  Object.defineProperty(exports, "__esModule", { value: true });
11
3
  exports.ModelManager = void 0;
12
4
  exports.ModelManager = {
@@ -1 +1 @@
1
- {"version":3,"file":"ModelManager.js","sourceRoot":"","sources":["../../base/ModelManager.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,YAAY,GAAQ;IAC7B,SAAS,CAAC,GAAQ;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ,CAAA"}
1
+ {"version":3,"file":"ModelManager.js","sourceRoot":"","sources":["../../base/ModelManager.ts"],"names":[],"mappings":";;;AAca,QAAA,YAAY,GAAQ;IAC7B,SAAS,CAAC,GAAU;QAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ,CAAA"}
@@ -12,11 +12,11 @@ exports.RestClient = void 0;
12
12
  const Component_1 = require("./Component");
13
13
  const axios = require('axios');
14
14
  class RestClient extends Component_1.Component {
15
- post(url, args) {
16
- return axios.post(url, args);
15
+ post(url, args, headers = {}) {
16
+ return axios.post(url, args, headers);
17
17
  }
18
- get(url, args) {
19
- return axios.post(url, args);
18
+ get(url, args, headers = {}) {
19
+ return axios.get(url, args, headers);
20
20
  }
21
21
  Rest(params) {
22
22
  return axios(params);
@@ -1 +1 @@
1
- {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../base/RestClient.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,2CAAsC;AAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAa,UAAW,SAAQ,qBAAS;IAC9B,IAAI,CAAC,GAAW,EAAE,IAAW;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,IAAW;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,IAAI,CAAC,MAAW;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;CACJ;AAZD,gCAYC;AACD,kBAAe,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../base/RestClient.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,2CAAsC;AAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAa,UAAW,SAAQ,qBAAS;IAC9B,IAAI,CAAC,GAAW,EAAE,IAAW,EAAC,UAAY,EAAE;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,IAAW,EAAC,UAAY,EAAE;QAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAE,CAAA;IACzC,CAAC;IAEM,IAAI,CAAC,MAAW;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;CACJ;AAZD,gCAYC;AACD,kBAAe,IAAI,UAAU,EAAE,CAAC"}
@@ -10,7 +10,7 @@ exports.ValidationHttpException = void 0;
10
10
  const BaseError_1 = require("./BaseError");
11
11
  class ValidationHttpException extends BaseError_1.BaseError {
12
12
  constructor(message) {
13
- super(message, 401);
13
+ super(message, 403);
14
14
  this.message = message;
15
15
  }
16
16
  }
@@ -20,6 +20,7 @@ __exportStar(require("./Controller"), exports);
20
20
  __exportStar(require("./DbConnection"), exports);
21
21
  __exportStar(require("./ForbiddenHttpException"), exports);
22
22
  __exportStar(require("./InvalidConfigException"), exports);
23
+ __exportStar(require("./InvalidArgumentException"), exports);
23
24
  __exportStar(require("./NotFoundHttpException"), exports);
24
25
  __exportStar(require("./UnauthorizedHttpException"), exports);
25
26
  __exportStar(require("./DataErrorDbException"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8B;AAC9B,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,8CAA2B;AAC3B,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B;AAC9B,2DAAwC;AACxC,2DAAwC;AACxC,0DAAuC;AACvC,8DAA2C;AAC3C,yDAAsC;AACtC,4DAAyC;AACzC,0CAAuB;AACvB,+CAA4B;AAC5B,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8B;AAC9B,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,8CAA2B;AAC3B,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B;AAC9B,2DAAwC;AACxC,2DAAwC;AACxC,6DAA0C;AAC1C,0DAAuC;AACvC,8DAA2C;AAC3C,yDAAsC;AACtC,4DAAyC;AACzC,0CAAuB;AACvB,+CAA4B;AAC5B,iDAA8B"}
@@ -30,6 +30,7 @@ class AccessControl extends ActionFilter_1.ActionFilter {
30
30
  constructor() {
31
31
  super(...arguments);
32
32
  this.user = null;
33
+ this.denyCallback = null;
33
34
  }
34
35
  init() {
35
36
  var _a;
@@ -52,15 +53,26 @@ class AccessControl extends ActionFilter_1.ActionFilter {
52
53
  // @ts-ignore
53
54
  user.identity = (_b = request.identity) !== null && _b !== void 0 ? _b : null;
54
55
  for (const rulesKey in this.rules) {
55
- if ((allow = this.rules[rulesKey].allows(action, user, request))) {
56
+ let rule = this.rules[rulesKey];
57
+ if ((allow = yield rule.allows(action, user, request))) {
56
58
  return true;
57
59
  }
58
60
  else if (allow === false) {
59
- this.denyAccess(user);
61
+ if (this.denyCallback != null) {
62
+ rule.denyCallback.apply(rule, action);
63
+ }
64
+ else {
65
+ this.denyAccess(user);
66
+ }
60
67
  return false;
61
68
  }
62
69
  }
63
- this.denyAccess(user);
70
+ if (this.denyCallback != null) {
71
+ this.denyCallback.apply(null, action);
72
+ }
73
+ else {
74
+ this.denyAccess(user);
75
+ }
64
76
  return false;
65
77
  });
66
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../../filters/AccessControl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,2DAAmC;AACnC,2EAAsE;AACtE,uDAAkD;AAClD,6CAAwC;AACxC,4CAAuC;AACvC,gEAAwC;AAGxC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAG1B,MAAa,aAAc,SAAQ,2BAAY;IAA/C;;QAEW,SAAI,GAAQ,IAAI,CAAC;IA4C5B,CAAC;IAzCU,IAAI;;QACP,KAAK,CAAC,IAAI,EAAE,CAAA;QAEZ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,GAAG,MAAA,eAAK,CAAC,SAAS,CAAC,kBAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,iBAAO,EAAE,CAAC;SAC/E;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAQ,EAAE,KAAY,EAAE,EAAE;YAC1C,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,YAAY,CAAC,IAAI,uBAAU,EAAE,EAAE,IAAI,CAAC,CAAC;aAClE;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAGY,YAAY,CAAC,MAAU,EAAE,OAAe;;;YACjD,IAAI,KAAK,CAAC;YACV,aAAa;YACb,IAAI,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC,IAAI,CAAC;YACrC,aAAa;YACb,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,IAAI,CAAC;YAEzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;oBAC9D,OAAO,IAAI,CAAC;iBACf;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE;oBACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAEtB,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;;KAChB;IAEM,UAAU,CAAC,IAAa;QAC3B,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;;YAAM,MAAM,IAAI,+CAAsB,CAAC,kBAAQ,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvG,CAAC;CAEJ;AA9CD,sCA8CC"}
1
+ {"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../../filters/AccessControl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,2DAAmC;AACnC,2EAAsE;AACtE,uDAAkD;AAClD,6CAAwC;AACxC,4CAAuC;AACvC,gEAAwC;AAGxC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAG1B,MAAa,aAAc,SAAQ,2BAAY;IAA/C;;QAEW,SAAI,GAAQ,IAAI,CAAC;QAEjB,iBAAY,GAAQ,IAAI,CAAC;IAuDpC,CAAC;IArDU,IAAI;;QACP,KAAK,CAAC,IAAI,EAAE,CAAA;QAEZ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,GAAG,MAAA,eAAK,CAAC,SAAS,CAAC,kBAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,iBAAO,EAAE,CAAC;SAC/E;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE;YAC5C,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,YAAY,CAAC,IAAI,uBAAU,EAAE,EAAE,IAAI,CAAC,CAAC;aAClE;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAGY,YAAY,CAAC,MAAW,EAAE,OAAgB;;;YACnD,IAAI,KAAK,CAAC;YACV,aAAa;YACb,IAAI,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC,IAAI,CAAC;YACrC,aAAa;YACb,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,IAAI,CAAC;YAEzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;gBAE/B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;oBACpD,OAAO,IAAI,CAAC;iBACf;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE;oBACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;qBACzC;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;qBACzB;oBACD,OAAO,KAAK,CAAC;iBAChB;aACJ;YAGD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aACzC;iBAAM;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,OAAO,KAAK,CAAC;;KAChB;IAEM,UAAU,CAAC,IAAa;QAC3B,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;;YAAM,MAAM,IAAI,+CAAsB,CAAC,kBAAQ,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvG,CAAC;CAEJ;AA3DD,sCA2DC"}
@@ -1,25 +1,77 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.AccessRule = void 0;
4
16
  var _ = require('lodash');
5
17
  const Component_1 = require("../base/Component");
6
18
  const InvalidConfigException_1 = require("../base/InvalidConfigException");
19
+ const Utils_1 = __importDefault(require("../requiments/Utils"));
7
20
  class AccessRule extends Component_1.Component {
21
+ constructor() {
22
+ super(...arguments);
23
+ /**
24
+ * @var array|Closure parameters to pass to the [[User::can()]] function for evaluating
25
+ * user permissions in [[$roles]].
26
+ *
27
+ * If this is an array, it will be passed directly to [[User::can()]]. For example for passing an
28
+ * ID from the current request, you may use the following:
29
+ *
30
+ * ```php
31
+ * ['postId' => Yii::$app->request->get('id')]
32
+ * ```
33
+ *
34
+ * You may also specify a closure that returns an array. This can be used to
35
+ * evaluate the array values only if they are needed, for example when a model needs to be
36
+ * loaded like in the following code:
37
+ *
38
+ * ```php
39
+ * 'rules' => [
40
+ * [
41
+ * 'allow' => true,
42
+ * 'actions' => ['update'],
43
+ * 'roles' => ['updatePost'],
44
+ * 'roleParams' => function($rule) {
45
+ * return ['post' => Post::findOne(Yii::$app->request->get('id'))];
46
+ * },
47
+ * ],
48
+ * ],
49
+ * ```
50
+ *
51
+ * A reference to the [[AccessRule]] instance will be passed to the closure as the first parameter.
52
+ *
53
+ * @see roles
54
+ * @since 2.0.12
55
+ */
56
+ this.roleParams = [];
57
+ }
8
58
  allows(action, user, request) {
9
- if (this.matchAction(action)
10
- && this.matchRole(user)) {
11
- return this.allow;
12
- }
13
- // if (this.matchAction($action)
14
- // && this.matchRole($user)
15
- // && this.matchIP($request->getUserIP())
16
- // && this.matchVerb($request->getMethod())
17
- // && this.matchController($action->controller)
18
- // && this.matchCustom($action)
19
- // ) {
20
- // return $this->allow ? true : false;
21
- // }
22
- return null;
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (this.matchAction(action)
61
+ && (yield this.matchRole(user))) {
62
+ return this.allow;
63
+ }
64
+ // if (this.matchAction($action)
65
+ // && this.matchRole($user)
66
+ // && this.matchIP($request->getUserIP())
67
+ // && this.matchVerb($request->getMethod())
68
+ // && this.matchController($action->controller)
69
+ // && this.matchCustom($action)
70
+ // ) {
71
+ // return $this->allow ? true : false;
72
+ // }
73
+ return null;
74
+ });
23
75
  }
24
76
  /**
25
77
  * @param Action $action the action
@@ -46,33 +98,42 @@ class AccessRule extends Component_1.Component {
46
98
  return false;
47
99
  }
48
100
  matchRole(user) {
49
- let items = _.isEmpty(this.roles) ? [] : this.roles;
50
- if (!_.isEmpty(this.permissions)) {
51
- items = _.merge(items, this.permissions);
52
- }
53
- if (_.isEmpty(items)) {
54
- return true;
55
- }
56
- if (user === false) {
57
- throw new InvalidConfigException_1.InvalidConfigException('The user application component must be available to specify roles in AccessRule.');
58
- }
59
- for (const itemsKey in items) {
60
- let item = items[itemsKey];
61
- if (item === '?') {
62
- if (user.getIsGuest()) {
63
- return true;
64
- }
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ let items = Utils_1.default.isEmpty(this.roles) ? [] : this.roles;
103
+ if (!Utils_1.default.isEmpty(this.permissions)) {
104
+ items = Utils_1.default.merge(items, this.permissions);
65
105
  }
66
- else if (item === '@') {
67
- if (!user.getIsGuest()) {
68
- return true;
69
- }
106
+ if (Utils_1.default.isEmpty(items)) {
107
+ return true;
70
108
  }
71
- else {
72
- //roleparams
109
+ if (!user) {
110
+ throw new InvalidConfigException_1.InvalidConfigException('The user application component must be available to specify roles in AccessRule.');
73
111
  }
74
- }
75
- return false;
112
+ let roleParams = [];
113
+ for (const itemsKey in items) {
114
+ let item = items[itemsKey];
115
+ if (item === '?') {
116
+ if (user.getIsGuest()) {
117
+ return true;
118
+ }
119
+ }
120
+ else if (item === '@') {
121
+ if (!user.getIsGuest()) {
122
+ return true;
123
+ }
124
+ }
125
+ else {
126
+ //roleparams
127
+ if (!Utils_1.default.isEmpty(this.roleParams)) {
128
+ roleParams = !Utils_1.default.isArray(this.roleParams) ? this.roleParams.apply(this) : this.roleParams;
129
+ }
130
+ if (yield user.can(item, this.roleParams)) {
131
+ return true;
132
+ }
133
+ }
134
+ }
135
+ return false;
136
+ });
76
137
  }
77
138
  }
78
139
  exports.AccessRule = AccessRule;
@@ -1 +1 @@
1
- {"version":3,"file":"AccessRule.js","sourceRoot":"","sources":["../../filters/AccessRule.ts"],"names":[],"mappings":";;;AAQA,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1B,iDAA4C;AAC5C,2EAAsE;AAGtE,MAAa,UAAW,SAAQ,qBAAS;IAwC9B,MAAM,CAAC,MAAU,EAAE,IAAY,EAAE,OAAe;QACnD,IACI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;eACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACzB;YACE,OAAO,IAAI,CAAC,KAAK,CAAA;SACpB;QACD,oCAAoC;QACpC,mCAAmC;QACnC,yCAAyC;QACzC,2CAA2C;QAC3C,+CAA+C;QAC/C,+BAA+B;QAC/B,MAAM;QACN,0CAA0C;QAC1C,IAAI;QAEJ,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,MAAU;QAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,UAAc;QACpC,uCAAuC;QACvC,uBAAuB;QACvB,QAAQ;QACR,EAAE;QACF,wCAAwC;QACxC,iDAAiD;QACjD,wDAAwD;QACxD,uBAAuB;QACvB,QAAQ;QACR,IAAI;QAEJ,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,SAAS,CAAC,IAAQ;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAEpD,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC9B,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAGD,IAAI,IAAI,KAAK,KAAK,EAAE;YAChB,MAAM,IAAI,+CAAsB,CAAC,kFAAkF,CAAC,CAAC;SACxH;QAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC1B,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,IAAI,KAAK,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;oBACpB,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,YAAY;aACf;SACJ;QAGD,OAAO,KAAK,CAAC;IACjB,CAAC;CAGJ;AA3HD,gCA2HC"}
1
+ {"version":3,"file":"AccessRule.js","sourceRoot":"","sources":["../../filters/AccessRule.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,69 @@
5
5
  * E-mail: cihan@chy.com.tr
6
6
  * Github:https://github.com/cihan53/
7
7
  */
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.HttpBasicAuth = void 0;
22
+ const AuthMethod_1 = require("./AuthMethod");
23
+ const base_1 = require("../../base");
24
+ const BaseChyz_1 = __importDefault(require("../../BaseChyz"));
25
+ class HttpBasicAuth extends AuthMethod_1.AuthMethod {
26
+ constructor() {
27
+ super(...arguments);
28
+ /**
29
+ * @var string the HTTP header name
30
+ */
31
+ this.header = 'Authorization';
32
+ /**
33
+ * @var string a pattern to use to extract the HTTP authentication value
34
+ */
35
+ this.pattern = /^Basic\s+(.*?)$/;
36
+ }
37
+ /**
38
+ * @throws InvalidConfigException
39
+ */
40
+ init() {
41
+ var _a;
42
+ super.init();
43
+ if (!this.pattern) {
44
+ throw new base_1.InvalidConfigException('You must provide pattern to use to extract the HTTP authentication value!');
45
+ }
46
+ this.user = (_a = BaseChyz_1.default.getComponent("user")) !== null && _a !== void 0 ? _a : null;
47
+ }
48
+ authenticate(user, request, response) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ let autHeader = this.getHeaderByKey(request.headers, this.header);
51
+ if (autHeader == null || (autHeader = this.patternCheck(autHeader, this.pattern)) == null) {
52
+ return null;
53
+ }
54
+ let basicauth = autHeader[1].split(":");
55
+ let identity = yield user.loginByAccessToken(basicauth, "HttpBasicAuth");
56
+ if (identity === null) {
57
+ this.challenge(response);
58
+ this.handleFailure(response);
59
+ }
60
+ return identity;
61
+ return null;
62
+ });
63
+ }
64
+ /**
65
+ * @throws UnauthorizedHttpException
66
+ */
67
+ fail(response) {
68
+ this.challenge(response);
69
+ this.handleFailure(response);
70
+ }
71
+ }
72
+ exports.HttpBasicAuth = HttpBasicAuth;
8
73
  //# sourceMappingURL=HttpBasicAuth.js.map