|
13 | 13 | use Elements\Bundle\ProcessManagerBundle\Executor\Logger\AbstractLogger; |
14 | 14 | use Elements\Bundle\ProcessManagerBundle\Executor\Logger\Application; |
15 | 15 | use Elements\Bundle\ProcessManagerBundle\Executor\Logger\File; |
| 16 | +use Elements\Bundle\ProcessManagerBundle\Helper; |
16 | 17 | use Elements\Bundle\ProcessManagerBundle\Message\ExecuteCommandMessage; |
17 | 18 | use Elements\Bundle\ProcessManagerBundle\Model\Configuration; |
18 | 19 | use Elements\Bundle\ProcessManagerBundle\Model\MonitoringItem; |
@@ -211,7 +212,7 @@ protected function getItemData(MonitoringItem $item): array |
211 | 212 |
|
212 | 213 | if ($tmp['executedByUser']) { |
213 | 214 | $user = User::getById($tmp['executedByUser']); |
214 | | - $tmp['executedByUser'] = $user instanceof \Pimcore\Model\User ? $user->getName() : 'User id: ' . $tmp['executedByUser']; |
| 215 | + $tmp['executedByUser'] = $user instanceof User ? $user->getName() : 'User id: ' . $tmp['executedByUser']; |
215 | 216 | } else { |
216 | 217 | $tmp['executedByUser'] = 'System'; |
217 | 218 | } |
@@ -346,12 +347,30 @@ public function logFileLoggerAction(Request $request, ?Profiler $profiler): Resp |
346 | 347 | { |
347 | 348 | $config = []; |
348 | 349 | $logFile = null; |
349 | | - if ($profiler instanceof \Symfony\Component\HttpKernel\Profiler\Profiler) { |
| 350 | + if ($profiler instanceof Profiler) { |
350 | 351 | $profiler->disable(); |
351 | 352 | } |
352 | 353 | $viewData = []; |
353 | 354 | $monitoringItem = MonitoringItem::getById($request->get('id')); |
354 | 355 |
|
| 356 | + /** |
| 357 | + * @var \Pimcore\Security\User\User $tokenUser |
| 358 | + */ |
| 359 | + $tokenUser = $this->getUser(); |
| 360 | + $user = $tokenUser->getUser(); |
| 361 | + |
| 362 | + if (!$user->isAdmin()) { |
| 363 | + $ids = Helper::getAllowedConfigIdsByUser($user); |
| 364 | + if (!$monitoringItem->getConfigurationId()) { |
| 365 | + throw new \Exception('Non admin user can only view log files where they have the configured |
| 366 | + access rights (current monitoring item has no configuration id)'); |
| 367 | + } else { |
| 368 | + if (!in_array($monitoringItem->getConfigurationId(), $ids)) { |
| 369 | + throw new \Exception('The current user doesn\'t have the permisson to view this log files'); |
| 370 | + } |
| 371 | + } |
| 372 | + } |
| 373 | + |
355 | 374 | $loggerIndex = $request->get('loggerIndex'); |
356 | 375 | if ($loggers = $monitoringItem->getLoggers()) { |
357 | 376 | foreach ((array)$loggers as $i => $config) { |
|
0 commit comments