chyz 2.0.1-rc.3 → 2.0.1-rc.36

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 (229) hide show
  1. package/BaseChyz.ts +623 -0
  2. package/README.md +518 -518
  3. package/base/ActionFilter.ts +88 -0
  4. package/base/BadRequestHttpException.ts +14 -0
  5. package/base/{BaseError.js → BaseError.ts} +26 -18
  6. package/base/Behavior.ts +6 -0
  7. package/base/CBaseObject.ts +17 -0
  8. package/base/CEvents.ts +24 -0
  9. package/base/{CRequest.js → CRequest.ts} +6 -2
  10. package/base/CWebController.ts +90 -0
  11. package/base/Component.ts +66 -0
  12. package/{model/RouteDefinition.js → base/Configurable.ts} +4 -2
  13. package/base/DataErrorDbException.ts +16 -0
  14. package/base/DbConnection.ts +55 -0
  15. package/base/ForbiddenHttpException.ts +15 -0
  16. package/base/InvalidArgumentException.ts +16 -0
  17. package/base/InvalidConfigException.ts +16 -0
  18. package/base/{Logs.js → Logs.ts} +41 -24
  19. package/base/{Model.js → Model.ts} +225 -158
  20. package/base/{ModelManager.js → ModelManager.ts} +7 -7
  21. package/base/NotFoundHttpException.ts +14 -0
  22. package/base/RestClient.ts +26 -0
  23. package/base/UnauthorizedHttpException.ts +17 -0
  24. package/base/ValidationHttpException.ts +14 -0
  25. package/base/db/Exception.ts +14 -0
  26. package/base/index.ts +19 -0
  27. package/decorator/Middleware.ts +9 -0
  28. package/decorator/{controller.js → controller.ts} +7 -9
  29. package/decorator/{delete.js → delete.ts} +9 -9
  30. package/decorator/enums/ControllerDecoratorParams.ts +5 -0
  31. package/decorator/{get.js → get.ts} +11 -10
  32. package/decorator/index.ts +5 -0
  33. package/decorator/{post.js → post.ts} +10 -10
  34. package/decorator/{put.js → put.ts} +9 -9
  35. package/filters/AccessControl.ts +74 -0
  36. package/filters/AccessRule.ts +182 -0
  37. package/filters/auth/{AuthInterface.d.ts → AuthInterface.ts} +15 -7
  38. package/filters/auth/AuthMethod.ts +100 -0
  39. package/filters/auth/HttpBasicAuth.ts +79 -0
  40. package/filters/auth/HttpBearerAuth.ts +34 -0
  41. package/filters/auth/HttpHeaderAuth.ts +61 -0
  42. package/filters/auth/JwtHttpBearerAuth.ts +83 -0
  43. package/filters/auth/KeyCloakHttpBearerAuth.ts +114 -0
  44. package/filters/auth/index.ts +4 -0
  45. package/filters/index.ts +2 -0
  46. package/index.ts +80 -0
  47. package/log/config/log4js.json +55 -55
  48. package/model/RouteDefinition.ts +18 -0
  49. package/package.json +63 -61
  50. package/rbac/AuthAssignment.ts +50 -0
  51. package/rbac/{AuthItem.js → AuthItem.ts} +22 -16
  52. package/rbac/{AuthItemChild.js → AuthItemChild.ts} +21 -14
  53. package/rbac/AuthManager.ts +399 -0
  54. package/rbac/index.ts +12 -0
  55. package/{web/IdentityInterface.js → requiments/Glob.ts} +3 -2
  56. package/requiments/{ReflectUtil.js → ReflectUtil.ts} +6 -4
  57. package/requiments/{Utils.js → Utils.ts} +40 -34
  58. package/validators/BooleanValidator.ts +0 -0
  59. package/validators/CompareValidator.ts +0 -0
  60. package/validators/DateValidator.ts +0 -0
  61. package/validators/EmailValidator.ts +0 -0
  62. package/validators/Validator.ts +27 -0
  63. package/web/{IdentityInterface.d.ts → IdentityInterface.ts} +15 -2
  64. package/web/WebUser.ts +187 -0
  65. package/BaseChyz.d.ts +0 -74
  66. package/BaseChyz.d.ts.map +0 -1
  67. package/BaseChyz.js +0 -569
  68. package/base/ActionFilter.d.ts +0 -33
  69. package/base/ActionFilter.d.ts.map +0 -1
  70. package/base/ActionFilter.js +0 -90
  71. package/base/BadRequestHttpException.d.ts +0 -6
  72. package/base/BadRequestHttpException.d.ts.map +0 -1
  73. package/base/BadRequestHttpException.js +0 -17
  74. package/base/BaseError.d.ts +0 -44
  75. package/base/BaseError.d.ts.map +0 -1
  76. package/base/Behavior.d.ts +0 -4
  77. package/base/Behavior.d.ts.map +0 -1
  78. package/base/Behavior.js +0 -7
  79. package/base/CBaseObject.d.ts +0 -5
  80. package/base/CBaseObject.d.ts.map +0 -1
  81. package/base/CBaseObject.js +0 -16
  82. package/base/CEvents.d.ts +0 -13
  83. package/base/CEvents.d.ts.map +0 -1
  84. package/base/CEvents.js +0 -24
  85. package/base/CRequest.d.ts +0 -2
  86. package/base/CRequest.d.ts.map +0 -1
  87. package/base/CWebController.d.ts +0 -44
  88. package/base/CWebController.d.ts.map +0 -1
  89. package/base/CWebController.js +0 -81
  90. package/base/Component.d.ts +0 -21
  91. package/base/Component.d.ts.map +0 -1
  92. package/base/Component.js +0 -57
  93. package/base/Configurable.d.ts +0 -3
  94. package/base/Configurable.d.ts.map +0 -1
  95. package/base/Configurable.js +0 -8
  96. package/base/DataErrorDbException.d.ts +0 -6
  97. package/base/DataErrorDbException.d.ts.map +0 -1
  98. package/base/DataErrorDbException.js +0 -17
  99. package/base/DbConnection.d.ts +0 -13
  100. package/base/DbConnection.d.ts.map +0 -1
  101. package/base/DbConnection.js +0 -53
  102. package/base/ForbiddenHttpException.d.ts +0 -5
  103. package/base/ForbiddenHttpException.d.ts.map +0 -1
  104. package/base/ForbiddenHttpException.js +0 -16
  105. package/base/InvalidArgumentException.d.ts +0 -6
  106. package/base/InvalidArgumentException.d.ts.map +0 -1
  107. package/base/InvalidArgumentException.js +0 -17
  108. package/base/InvalidConfigException.d.ts +0 -6
  109. package/base/InvalidConfigException.d.ts.map +0 -1
  110. package/base/InvalidConfigException.js +0 -17
  111. package/base/Logs.d.ts +0 -22
  112. package/base/Logs.d.ts.map +0 -1
  113. package/base/Model.d.ts +0 -302
  114. package/base/Model.d.ts.map +0 -1
  115. package/base/ModelManager.d.ts +0 -2
  116. package/base/ModelManager.d.ts.map +0 -1
  117. package/base/NotFoundHttpException.d.ts +0 -6
  118. package/base/NotFoundHttpException.d.ts.map +0 -1
  119. package/base/NotFoundHttpException.js +0 -17
  120. package/base/RestClient.d.ts +0 -7
  121. package/base/RestClient.d.ts.map +0 -1
  122. package/base/RestClient.js +0 -25
  123. package/base/UnauthorizedHttpException.d.ts +0 -6
  124. package/base/UnauthorizedHttpException.d.ts.map +0 -1
  125. package/base/UnauthorizedHttpException.js +0 -17
  126. package/base/ValidationHttpException.d.ts +0 -6
  127. package/base/ValidationHttpException.d.ts.map +0 -1
  128. package/base/ValidationHttpException.js +0 -17
  129. package/base/db/Exception.d.ts +0 -7
  130. package/base/db/Exception.d.ts.map +0 -1
  131. package/base/db/Exception.js +0 -15
  132. package/base/index.d.ts +0 -20
  133. package/base/index.d.ts.map +0 -1
  134. package/base/index.js +0 -41
  135. package/decorator/Middleware.d.ts +0 -4
  136. package/decorator/Middleware.d.ts.map +0 -1
  137. package/decorator/Middleware.js +0 -11
  138. package/decorator/controller.d.ts +0 -3
  139. package/decorator/controller.d.ts.map +0 -1
  140. package/decorator/delete.d.ts +0 -3
  141. package/decorator/delete.d.ts.map +0 -1
  142. package/decorator/enums/ControllerDecoratorParams.d.ts +0 -6
  143. package/decorator/enums/ControllerDecoratorParams.d.ts.map +0 -1
  144. package/decorator/enums/ControllerDecoratorParams.js +0 -9
  145. package/decorator/get.d.ts +0 -3
  146. package/decorator/get.d.ts.map +0 -1
  147. package/decorator/index.d.ts +0 -6
  148. package/decorator/index.d.ts.map +0 -1
  149. package/decorator/index.js +0 -13
  150. package/decorator/post.d.ts +0 -3
  151. package/decorator/post.d.ts.map +0 -1
  152. package/decorator/put.d.ts +0 -3
  153. package/decorator/put.d.ts.map +0 -1
  154. package/filters/AccessControl.d.ts +0 -13
  155. package/filters/AccessControl.d.ts.map +0 -1
  156. package/filters/AccessControl.js +0 -83
  157. package/filters/AccessRule.d.ts +0 -83
  158. package/filters/AccessRule.d.ts.map +0 -1
  159. package/filters/AccessRule.js +0 -136
  160. package/filters/auth/AuthInterface.d.ts.map +0 -1
  161. package/filters/auth/AuthInterface.js +0 -2
  162. package/filters/auth/AuthMethod.d.ts +0 -38
  163. package/filters/auth/AuthMethod.d.ts.map +0 -1
  164. package/filters/auth/AuthMethod.js +0 -82
  165. package/filters/auth/HttpBasicAuth.d.ts +0 -24
  166. package/filters/auth/HttpBasicAuth.d.ts.map +0 -1
  167. package/filters/auth/HttpBasicAuth.js +0 -78
  168. package/filters/auth/HttpBearerAuth.d.ts +0 -18
  169. package/filters/auth/HttpBearerAuth.d.ts.map +0 -1
  170. package/filters/auth/HttpBearerAuth.js +0 -33
  171. package/filters/auth/HttpHeaderAuth.d.ts +0 -19
  172. package/filters/auth/HttpHeaderAuth.d.ts.map +0 -1
  173. package/filters/auth/HttpHeaderAuth.js +0 -64
  174. package/filters/auth/JwtHttpBearerAuth.d.ts +0 -21
  175. package/filters/auth/JwtHttpBearerAuth.d.ts.map +0 -1
  176. package/filters/auth/JwtHttpBearerAuth.js +0 -87
  177. package/filters/auth/KeyCloakHttpBearerAuth.d.ts +0 -23
  178. package/filters/auth/KeyCloakHttpBearerAuth.d.ts.map +0 -1
  179. package/filters/auth/KeyCloakHttpBearerAuth.js +0 -116
  180. package/filters/auth/index.d.ts +0 -5
  181. package/filters/auth/index.d.ts.map +0 -1
  182. package/filters/auth/index.js +0 -11
  183. package/filters/index.d.ts +0 -3
  184. package/filters/index.d.ts.map +0 -1
  185. package/filters/index.js +0 -7
  186. package/index.d.ts +0 -26
  187. package/index.d.ts.map +0 -1
  188. package/index.js +0 -72
  189. package/model/RouteDefinition.d.ts +0 -7
  190. package/model/RouteDefinition.d.ts.map +0 -1
  191. package/rbac/AuthAssignment.d.ts +0 -19
  192. package/rbac/AuthAssignment.d.ts.map +0 -1
  193. package/rbac/AuthAssignment.js +0 -44
  194. package/rbac/AuthItem.d.ts +0 -27
  195. package/rbac/AuthItem.d.ts.map +0 -1
  196. package/rbac/AuthItemChild.d.ts +0 -19
  197. package/rbac/AuthItemChild.d.ts.map +0 -1
  198. package/rbac/AuthManager.d.ts +0 -112
  199. package/rbac/AuthManager.d.ts.map +0 -1
  200. package/rbac/AuthManager.js +0 -356
  201. package/rbac/index.d.ts +0 -5
  202. package/rbac/index.d.ts.map +0 -1
  203. package/rbac/index.js +0 -28
  204. package/requiments/Glob.d.ts +0 -3
  205. package/requiments/Glob.d.ts.map +0 -1
  206. package/requiments/Glob.js +0 -10
  207. package/requiments/ReflectUtil.d.ts +0 -1
  208. package/requiments/ReflectUtil.d.ts.map +0 -1
  209. package/requiments/Utils.d.ts +0 -2
  210. package/requiments/Utils.d.ts.map +0 -1
  211. package/validators/BooleanValidator.d.ts +0 -1
  212. package/validators/BooleanValidator.d.ts.map +0 -1
  213. package/validators/BooleanValidator.js +0 -1
  214. package/validators/CompareValidator.d.ts +0 -1
  215. package/validators/CompareValidator.d.ts.map +0 -1
  216. package/validators/CompareValidator.js +0 -1
  217. package/validators/DateValidator.d.ts +0 -1
  218. package/validators/DateValidator.d.ts.map +0 -1
  219. package/validators/DateValidator.js +0 -1
  220. package/validators/EmailValidator.d.ts +0 -1
  221. package/validators/EmailValidator.d.ts.map +0 -1
  222. package/validators/EmailValidator.js +0 -1
  223. package/validators/Validator.d.ts +0 -18
  224. package/validators/Validator.d.ts.map +0 -1
  225. package/validators/Validator.js +0 -27
  226. package/web/IdentityInterface.d.ts.map +0 -1
  227. package/web/WebUser.d.ts +0 -72
  228. package/web/WebUser.d.ts.map +0 -1
  229. package/web/WebUser.js +0 -165
package/web/WebUser.ts ADDED
@@ -0,0 +1,187 @@
1
+ /*
2
+ * Copyright (c) 2021. Chy Bilgisayar Bilisim
3
+ * Author: Cihan Ozturk
4
+ * E-mail: cihan@chy.com.tr
5
+ * Github:https://github.com/cihan53/
6
+ */
7
+ import BaseChyz from "../BaseChyz";
8
+ import {Component} from "../base/Component";
9
+ import {ForbiddenHttpException} from "../base/ForbiddenHttpException";
10
+ import {InvalidConfigException} from "../base/InvalidConfigException";
11
+ import {IdentityInterface} from "./IdentityInterface";
12
+ import {Utils} from "../requiments/Utils";
13
+ import {AuthManager} from "../rbac/AuthManager";
14
+
15
+ export class WebUser extends Component {
16
+
17
+ /**
18
+ * @var string the class name of the [[identity]] object.
19
+ */
20
+ public identityClass: any;
21
+ private _identity: any;
22
+ /**
23
+ * @var CheckAccessInterface|string|array The access checker object to use for checking access or the application
24
+ * component ID of the access checker.
25
+ * If not set the application auth manager will be used.
26
+ * @since 2.0.9
27
+ */
28
+ public accessChecker: any = null;
29
+
30
+
31
+ get identity() {
32
+ return this._identity;
33
+ }
34
+
35
+ set identity(value) {
36
+ this._identity = value;
37
+ }
38
+
39
+ public init() {
40
+ super.init();
41
+
42
+ if (this.identityClass === null) {
43
+ throw new InvalidConfigException('User::identityClass must be set.');
44
+ }
45
+
46
+
47
+ this.identityClass = new this.identityClass();
48
+
49
+ }
50
+
51
+ public getIsGuest() {
52
+ return this.getIdentity() === null;
53
+ }
54
+
55
+ public getIdentity(autoRenew = true) {
56
+ return this._identity;
57
+ }
58
+
59
+ public loginRequired() {
60
+
61
+ throw new ForbiddenHttpException(BaseChyz.t('Login Required'));
62
+ }
63
+
64
+
65
+ /**
66
+ * Regenerates CSRF token
67
+ *
68
+ * @since 2.0.14.2
69
+ */
70
+ protected regenerateCsrfToken() {
71
+
72
+ }
73
+
74
+ /**
75
+ * Logs in a user by the given access token.
76
+ * @param token
77
+ * @param type
78
+ */
79
+ public async loginByAccessToken(token: any, type: any = null) {
80
+
81
+ let $class = this.identityClass;
82
+ if ($class.findIdentityByAccessToken) {
83
+ this.identity = await $class.findIdentityByAccessToken(token, type)
84
+ if (this.identity && this.login(this.identity)) {
85
+ return this.identity;
86
+ }
87
+ } else {
88
+ BaseChyz.error("WebUser::findIdentityByAccessToken undefined")
89
+ }
90
+ return null;
91
+ }
92
+
93
+ public login(identity: IdentityInterface, duration = 0): boolean {
94
+
95
+ if (this.beforeLogin(identity, false, duration)) {
96
+
97
+ }
98
+ return !this.getIsGuest()
99
+ }
100
+
101
+ public beforeLogin(identity: any, cookieBased: boolean, duration: number) {
102
+
103
+ return true;
104
+ }
105
+
106
+ public afterLogin() {
107
+
108
+ }
109
+
110
+ public getId() {
111
+ let identity = this.getIdentity();
112
+ return identity !== null ? identity.id : null;
113
+ }
114
+
115
+ /**
116
+ * Checks if the user can perform the operation as specified by the given permission.
117
+ *
118
+ * Note that you must configure "authManager" application component in order to use this method.
119
+ * Otherwise it will always return false.
120
+ *
121
+ * @param string $permissionName the name of the permission (e.g. "edit post") that needs access check.
122
+ * @param array $params name-value pairs that would be passed to the rules associated
123
+ * with the roles and permissions assigned to the user.
124
+ * @param bool $allowCaching whether to allow caching the result of access check.
125
+ * When this parameter is true (default), if the access check of an operation was performed
126
+ * before, its result will be directly returned when calling this method to check the same
127
+ * operation. If this parameter is false, this method will always call
128
+ * [[\yii\rbac\CheckAccessInterface::checkAccess()]] to obtain the up-to-date access result. Note that this
129
+ * caching is effective only within the same request and only works when `$params = []`.
130
+ * @return bool whether the user can perform the operation as specified by the given permission.
131
+ */
132
+ // public function can($permissionName, $params = [], $allowCaching = true)
133
+ // {
134
+ // if ($allowCaching && empty($params) && isset($this->_access[$permissionName])) {
135
+ // return $this->_access[$permissionName];
136
+ // }
137
+ // if (($accessChecker = $this->getAccessChecker()) === null) {
138
+ // return false;
139
+ // }
140
+ // $access = $accessChecker->checkAccess($this->getId(), $permissionName, $params);
141
+ // if ($allowCaching && empty($params)) {
142
+ // $this->_access[$permissionName] = $access;
143
+ // }
144
+ //
145
+ // return $access;
146
+ // }
147
+
148
+ public async can(permissionName: string, params = [], allowCaching = true) {
149
+
150
+ let access;
151
+ let accessChecker: AuthManager;
152
+ if ((accessChecker = this.getAccessChecker()) == null)
153
+ return false;
154
+
155
+
156
+ access = await accessChecker.checkAccess(this.getId(), permissionName, params);
157
+
158
+ if (allowCaching && Utils.isEmpty(params)) {
159
+ // this._access[$permissionName] = $access;
160
+ }
161
+
162
+ return access;
163
+
164
+ }
165
+
166
+ /**
167
+ * Returns auth manager associated with the user component.
168
+ *
169
+ * By default this is the `authManager` application component.
170
+ * You may override this method to return a different auth manager instance if needed.
171
+ * @return \yii\rbac\ManagerInterface
172
+ * @since 2.0.6
173
+ */
174
+ protected getAuthManager(): AuthManager {
175
+ return BaseChyz.getComponent('authManager');
176
+ }
177
+
178
+ /**
179
+ * Returns the access checker used for checking access.
180
+ * @return CheckAccessInterface
181
+ */
182
+ protected getAccessChecker():AuthManager {
183
+ return this.accessChecker !== null ? this.accessChecker : this.getAuthManager();
184
+ }
185
+
186
+
187
+ }
package/BaseChyz.d.ts DELETED
@@ -1,74 +0,0 @@
1
- /**
2
- * https server
3
- */
4
- import { NextFunction, Request, Response } from "express";
5
- /**
6
- * Freamwork
7
- */
8
- import { CWebController, Logs } from "./base";
9
- import { RouteDefinition } from "./model/RouteDefinition";
10
- export default class BaseChyz {
11
- private config;
12
- static httpServer: any;
13
- static propvider: any;
14
- private _port;
15
- static db: any;
16
- static date: any;
17
- static routes: any;
18
- static logs: Logs;
19
- private static _validate;
20
- private _controllerpath;
21
- private static controllers;
22
- static components: any;
23
- static middlewares: any;
24
- private static _EventEmitter;
25
- static get EventEmitter(): any;
26
- static set EventEmitter(value: any);
27
- get controllerpath(): string;
28
- set controllerpath(value: string);
29
- /**
30
- *
31
- */
32
- init(): Promise<void>;
33
- /**
34
- * Listen port number
35
- * Server port number get
36
- */
37
- get port(): number;
38
- /**
39
- * Listen port number
40
- * Server port number setting
41
- * @param value
42
- */
43
- set port(value: number);
44
- static get validate(): any;
45
- static set validate(value: any);
46
- app(config?: any): Promise<BaseChyz>;
47
- static trace(...args: any[]): void;
48
- static debug(...args: any[]): void;
49
- static info(...args: any[]): void;
50
- static warn(...args: any[]): void;
51
- static error(...args: any[]): void;
52
- static fatal(...args: any[]): void;
53
- static warning(...args: any[]): void;
54
- static t(text: string, params?: any): string | undefined;
55
- errorLogger(error: any, req: any, res: any, next: any): void;
56
- errorResponder(error: any, req: any, res: any, next: any): void;
57
- errorHandler(err: any, req: any, res: any, next: any): any;
58
- static getComponent(key: any): any;
59
- static getMiddlewares(key: any): any;
60
- /**
61
- * load model
62
- */
63
- loadModels(): void;
64
- beforeMiddleware(req: Request, res: Response, next: NextFunction, instance: CWebController, route: RouteDefinition): Promise<void>;
65
- responseHandler(req: Request, res: Response, next: NextFunction, instance: CWebController, route: RouteDefinition): Promise<void>;
66
- afterMiddleware(req: Request, res: Response, next: NextFunction, instance: CWebController, route: RouteDefinition): Promise<void>;
67
- /**
68
- * load contoller
69
- */
70
- loadController(): Promise<void>;
71
- middleware(): void;
72
- Start(): this;
73
- }
74
- //# sourceMappingURL=BaseChyz.d.ts.map
package/BaseChyz.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseChyz.d.ts","sourceRoot":"","sources":["../src/BaseChyz.ts"],"names":[],"mappings":"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"}