Skip to content

Commit 1316b5c

Browse files
committed
Log file Logger #223
1 parent e749701 commit 1316b5c

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

src/Controller/MonitoringItemController.php

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Elements\Bundle\ProcessManagerBundle\Executor\Logger\AbstractLogger;
1414
use Elements\Bundle\ProcessManagerBundle\Executor\Logger\Application;
1515
use Elements\Bundle\ProcessManagerBundle\Executor\Logger\File;
16+
use Elements\Bundle\ProcessManagerBundle\Helper;
1617
use Elements\Bundle\ProcessManagerBundle\Message\ExecuteCommandMessage;
1718
use Elements\Bundle\ProcessManagerBundle\Model\Configuration;
1819
use Elements\Bundle\ProcessManagerBundle\Model\MonitoringItem;
@@ -211,7 +212,7 @@ protected function getItemData(MonitoringItem $item): array
211212

212213
if ($tmp['executedByUser']) {
213214
$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'];
215216
} else {
216217
$tmp['executedByUser'] = 'System';
217218
}
@@ -346,12 +347,30 @@ public function logFileLoggerAction(Request $request, ?Profiler $profiler): Resp
346347
{
347348
$config = [];
348349
$logFile = null;
349-
if ($profiler instanceof \Symfony\Component\HttpKernel\Profiler\Profiler) {
350+
if ($profiler instanceof Profiler) {
350351
$profiler->disable();
351352
}
352353
$viewData = [];
353354
$monitoringItem = MonitoringItem::getById($request->get('id'));
354355

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+
355374
$loggerIndex = $request->get('loggerIndex');
356375
if ($loggers = $monitoringItem->getLoggers()) {
357376
foreach ((array)$loggers as $i => $config) {

0 commit comments

Comments
 (0)