This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
1 | <?php |
||
2 | /** |
||
3 | * Config main class. |
||
4 | * |
||
5 | * @package App |
||
6 | * |
||
7 | * @copyright YetiForce S.A. |
||
8 | * @license YetiForce Public License 6.5 (licenses/LicenseEN.txt or yetiforce.com) |
||
9 | * @author Mariusz Krzaczkowski <[email protected]> |
||
10 | * @author Radosław Skrzypczak <[email protected]> |
||
11 | */ |
||
12 | |||
13 | namespace App; |
||
14 | |||
15 | /** |
||
16 | * Config main class. |
||
17 | */ |
||
18 | class Config |
||
19 | { |
||
20 | /** |
||
21 | * Js environment variables. |
||
22 | * |
||
23 | * @var array |
||
24 | */ |
||
25 | private static $jsEnv = []; |
||
26 | |||
27 | /** |
||
28 | * Get all js configuration in json. |
||
29 | * |
||
30 | * @throws \App\Exceptions\AppException |
||
31 | * |
||
32 | 1 | * @return string |
|
33 | */ |
||
34 | 1 | public static function getJsEnv() |
|
35 | { |
||
36 | return Json::encode(self::$jsEnv); |
||
37 | } |
||
38 | |||
39 | /** |
||
40 | * Get js configuration by key. |
||
41 | * |
||
42 | * @param string $key |
||
43 | 1 | * |
|
44 | * @return mixed |
||
45 | 1 | */ |
|
46 | 1 | public static function getJsEnvByKey(string $key) |
|
47 | { |
||
48 | return self::$jsEnv[$key] ?? null; |
||
49 | } |
||
50 | |||
51 | /** |
||
52 | * Set js environment variables. |
||
53 | * |
||
54 | * @param string $key |
||
55 | * @param mixed $value |
||
56 | */ |
||
57 | public static function setJsEnv($key, $value) |
||
58 | 43 | { |
|
59 | self::$jsEnv[$key] = $value; |
||
60 | 43 | } |
|
61 | |||
62 | /** |
||
63 | 43 | * Gets main configuration. |
|
64 | 43 | * |
|
65 | * @param string|null $arg |
||
66 | * @param mixed $default |
||
67 | * |
||
68 | * @throws \ReflectionException |
||
69 | * |
||
70 | * @return mixed |
||
71 | */ |
||
72 | public static function main(?string $arg = null, $default = null) |
||
73 | { |
||
74 | if ($arg && isset($GLOBALS[$arg])) { |
||
75 | return $GLOBALS[$arg]; |
||
76 | } |
||
77 | $class = '\\Config\\Main'; |
||
78 | 5801 | return self::get($class, $arg, $default); |
|
79 | } |
||
80 | 5801 | ||
81 | 5801 | /** |
|
82 | * Gets module configuration. |
||
83 | * |
||
84 | * @param string $moduleName |
||
85 | * @param string|null $arg |
||
86 | * @param mixed $default |
||
87 | * |
||
88 | * @throws \ReflectionException |
||
89 | * |
||
90 | * @return mixed |
||
91 | */ |
||
92 | public static function module(string $moduleName, ?string $arg = null, $default = null) |
||
93 | { |
||
94 | $class = "\\Config\\Modules\\$moduleName"; |
||
95 | 31 | return self::get($class, $arg, $default); |
|
96 | } |
||
97 | 31 | ||
98 | 31 | /** |
|
99 | * Gets component configuration. |
||
100 | * |
||
101 | * @param string $component |
||
102 | * @param string|null $arg |
||
103 | * @param mixed $default |
||
104 | * |
||
105 | * @throws \ReflectionException |
||
106 | * |
||
107 | * @return mixed |
||
108 | */ |
||
109 | public static function component(string $component, ?string $arg = null, $default = null) |
||
110 | { |
||
111 | 5792 | $class = "\\Config\\Components\\$component"; |
|
112 | return self::get($class, $arg, $default); |
||
113 | 5792 | } |
|
114 | 5792 | ||
115 | /** |
||
116 | * Gets performance configuration. |
||
117 | * |
||
118 | * @param string|null $arg |
||
119 | * @param mixed $default |
||
120 | * |
||
121 | * @throws \ReflectionException |
||
122 | * |
||
123 | * @return mixed |
||
124 | */ |
||
125 | public static function performance(?string $arg = null, $default = null) |
||
126 | { |
||
127 | $class = '\\Config\\Performance'; |
||
128 | return self::get($class, $arg, $default); |
||
129 | } |
||
130 | |||
131 | /** |
||
132 | * Gets api configuration. |
||
133 | * |
||
134 | * @param string|null $arg |
||
135 | * @param mixed $default |
||
136 | * |
||
137 | * @throws \ReflectionException |
||
138 | * |
||
139 | * @return mixed |
||
140 | */ |
||
141 | public static function api(?string $arg = null, $default = null) |
||
142 | { |
||
143 | 10 | $class = '\\Config\\Api'; |
|
144 | return self::get($class, $arg, $default); |
||
145 | 10 | } |
|
146 | 10 | ||
147 | /** |
||
148 | * Gets debug configuration. |
||
149 | * |
||
150 | * @param string|null $arg |
||
151 | * @param mixed $default |
||
152 | * |
||
153 | * @throws \ReflectionException |
||
154 | * |
||
155 | * @return mixed |
||
156 | */ |
||
157 | public static function debug(?string $arg = null, $default = null) |
||
158 | { |
||
159 | 4 | $class = '\\Config\\Debug'; |
|
160 | return self::get($class, $arg, $default); |
||
161 | 4 | } |
|
162 | 4 | ||
163 | /** |
||
164 | * Gets developer configuration. |
||
165 | * |
||
166 | * @param string|null $arg |
||
167 | * @param mixed $default |
||
168 | * |
||
169 | * @throws \ReflectionException |
||
170 | * |
||
171 | * @return mixed |
||
172 | */ |
||
173 | public static function developer(?string $arg = null, $default = null) |
||
174 | { |
||
175 | 29 | $class = '\\Config\\Developer'; |
|
176 | return self::get($class, $arg, $default); |
||
177 | 29 | } |
|
178 | 29 | ||
179 | /** |
||
180 | * Gets layout configuration. |
||
181 | * |
||
182 | * @param string|null $arg |
||
183 | * @param mixed $default |
||
184 | * |
||
185 | * @throws \ReflectionException |
||
186 | * |
||
187 | * @return mixed |
||
188 | */ |
||
189 | public static function layout(?string $arg = null, $default = null) |
||
190 | { |
||
191 | $class = '\\Config\\Layout'; |
||
192 | return self::get($class, $arg, $default); |
||
193 | } |
||
194 | |||
195 | /** |
||
196 | * Gets security configuration. |
||
197 | * |
||
198 | * @param string|null $arg |
||
199 | * @param mixed $default |
||
200 | * |
||
201 | * @throws \ReflectionException |
||
202 | * |
||
203 | * @return mixed |
||
204 | */ |
||
205 | public static function security(?string $arg = null, $default = null) |
||
206 | { |
||
207 | $class = '\\Config\\Security'; |
||
208 | return self::get($class, $arg, $default); |
||
209 | } |
||
210 | |||
211 | /** |
||
212 | * Gets search configuration. |
||
213 | * |
||
214 | * @param string|null $arg |
||
215 | * @param mixed $default |
||
216 | * |
||
217 | * @throws \ReflectionException |
||
218 | * |
||
219 | * @return mixed |
||
220 | */ |
||
221 | public static function search(?string $arg = null, $default = null) |
||
222 | { |
||
223 | $class = '\\Config\\Search'; |
||
224 | return self::get($class, $arg, $default); |
||
225 | } |
||
226 | |||
227 | /** |
||
228 | * Gets sounds configuration. |
||
229 | * |
||
230 | * @param string|null $arg |
||
231 | * @param mixed $default |
||
232 | * |
||
233 | * @throws \ReflectionException |
||
234 | * |
||
235 | * @return mixed |
||
236 | */ |
||
237 | public static function sounds(?string $arg = null, $default = null) |
||
238 | { |
||
239 | 9 | $class = '\\Config\\Sounds'; |
|
240 | return self::get($class, $arg, $default); |
||
241 | 9 | } |
|
242 | 9 | ||
243 | /** |
||
244 | * Gets relation configuration. |
||
245 | * |
||
246 | * @param string|null $arg |
||
247 | * @param mixed $default |
||
248 | * |
||
249 | * @throws \ReflectionException |
||
250 | * |
||
251 | * @return mixed |
||
252 | */ |
||
253 | public static function relation(?string $arg = null, $default = null) |
||
254 | { |
||
255 | 4 | $class = '\\Config\\Relation'; |
|
256 | return self::get($class, $arg, $default); |
||
257 | 4 | } |
|
258 | 4 | ||
259 | /** |
||
260 | * Gets security keys configuration. |
||
261 | * |
||
262 | * @param string|null $arg |
||
263 | * @param mixed $default |
||
264 | * |
||
265 | * @throws \ReflectionException |
||
266 | * |
||
267 | * @return mixed |
||
268 | */ |
||
269 | public static function securityKeys(?string $arg = null, $default = null) |
||
270 | { |
||
271 | $class = '\\Config\\SecurityKeys'; |
||
272 | 5878 | return self::get($class, $arg, $default); |
|
273 | } |
||
274 | 5878 | ||
275 | 5878 | /** |
|
276 | 5878 | * Gets database configuration. |
|
277 | 2 | * |
|
278 | 2 | * @param string|null $arg |
|
279 | 2 | * @param mixed $default |
|
280 | 1 | * |
|
281 | * @throws \ReflectionException |
||
282 | 5877 | * |
|
283 | 5877 | * @return mixed |
|
284 | 7 | */ |
|
285 | 4 | public static function db(?string $arg = null, $default = null) |
|
286 | { |
||
287 | $class = '\\Config\\Db'; |
||
288 | 5878 | return self::get($class, $arg, $default); |
|
289 | } |
||
290 | |||
291 | /** |
||
292 | * Gets configuration for class. |
||
293 | * |
||
294 | * @param string $class |
||
295 | * @param string|null $arg |
||
296 | 9 | * @param mixed $default |
|
297 | * |
||
298 | 9 | * @throws \ReflectionException |
|
299 | * |
||
300 | * @return mixed |
||
301 | 9 | */ |
|
302 | public static function get(string $class, ?string $arg = null, $default = null) |
||
303 | 9 | { |
|
304 | 9 | $value = $default; |
|
305 | 9 | if (\class_exists($class)) { |
|
306 | if (null === $arg) { |
||
307 | 9 | $object = (new \ReflectionClass($class)); |
|
308 | $value = $object->getStaticProperties(); |
||
309 | foreach ($object->getMethods() as $method) { |
||
310 | $value[$method->getName()] = \call_user_func("{$class}::{$method->getName()}"); |
||
311 | } |
||
312 | } elseif (isset($class::${$arg})) { |
||
313 | $value = $class::${$arg}; |
||
314 | } elseif (\method_exists($class, $arg)) { |
||
315 | $value = \call_user_func("{$class}::{$arg}"); |
||
316 | } |
||
317 | } |
||
318 | return $value; |
||
319 | } |
||
320 | |||
321 | /** |
||
322 | * Set config value. |
||
323 | * |
||
324 | * @return bool |
||
325 | */ |
||
326 | public static function set(): bool |
||
327 | { |
||
328 | if (4 === \func_num_args()) { |
||
329 | [$component, $type, $key, $value] = \func_get_args(); |
||
330 | $component = ucfirst($component) . 's\\'; |
||
331 | } else { |
||
332 | [$type, $key, $value] = \func_get_args(); |
||
333 | $type = ucfirst($type); |
||
334 | } |
||
335 | $class = '\Config\\' . ($component ?? '') . $type; |
||
336 | if ($result = (class_exists($class) && isset($class::${$key}))) { |
||
337 | $class::${$key} = $value; |
||
338 | } |
||
339 | return $result; |
||
340 | } |
||
341 | |||
342 | /** |
||
343 | * Get the maximum size of an uploaded file to the server taking into account CRM configuration and server settings. |
||
344 | * |
||
345 | * @param bool $checkMain |
||
346 | * @param bool $returnInMb |
||
347 | * |
||
348 | * @return int |
||
349 | */ |
||
350 | public static function getMaxUploadSize(bool $checkMain = true, bool $returnInMb = false): int |
||
351 | { |
||
352 | $size = \vtlib\Functions::parseBytes(ini_get('upload_max_filesize')); |
||
353 | $maxPostSize = \vtlib\Functions::parseBytes(ini_get('post_max_size')); |
||
354 | if ($maxPostSize < $size) { |
||
355 | $size = $maxPostSize; |
||
356 | } |
||
357 | if ($checkMain && \Config\Main::$upload_maxsize < $size) { |
||
0 ignored issues
–
show
|
|||
358 | $size = (int) \Config\Main::$upload_maxsize; |
||
359 | } |
||
360 | if ($returnInMb) { |
||
361 | $size = floor($size / 1048576); |
||
362 | } |
||
363 | return $size; |
||
0 ignored issues
–
show
|
|||
364 | } |
||
365 | } |
||
366 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths