diff options
Diffstat (limited to 'lib/private/Dashboard/Manager.php')
-rw-r--r-- | lib/private/Dashboard/Manager.php | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/private/Dashboard/Manager.php b/lib/private/Dashboard/Manager.php index 45038b87f90..d4a9eb189ff 100644 --- a/lib/private/Dashboard/Manager.php +++ b/lib/private/Dashboard/Manager.php @@ -25,11 +25,12 @@ class Manager implements IManager { /** @var array<string, IWidget> */ private array $widgets = []; - private ContainerInterface $serverContainer; private ?IAppManager $appManager = null; - public function __construct(ContainerInterface $serverContainer) { - $this->serverContainer = $serverContainer; + public function __construct( + private ContainerInterface $serverContainer, + private LoggerInterface $logger, + ) { } private function registerWidget(IWidget $widget): void { @@ -37,6 +38,10 @@ class Manager implements IManager { throw new InvalidArgumentException('Dashboard widget with this id has already been registered'); } + if (!preg_match('/^[a-z][a-z0-9\-_]*$/', $widget->getId())) { + $this->logger->debug('Deprecated dashboard widget ID provided: "' . $widget->getId() . '" [ ' . get_class($widget) . ' ]. Please use a-z, 0-9, - and _ only, starting with a-z'); + } + $this->widgets[$widget->getId()] = $widget; } |