You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SetDeclarativeSettingsValueListener.php 878B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. declare(strict_types=1);
  3. namespace OCA\Testing\Listener;
  4. use OCP\EventDispatcher\Event;
  5. use OCP\EventDispatcher\IEventListener;
  6. use OCP\IConfig;
  7. use OCP\Settings\Events\DeclarativeSettingsSetValueEvent;
  8. /**
  9. * @template-implements IEventListener<DeclarativeSettingsSetValueEvent>
  10. */
  11. class SetDeclarativeSettingsValueListener implements IEventListener {
  12. public function __construct(private IConfig $config) {
  13. }
  14. public function handle(Event $event): void {
  15. if (!$event instanceof DeclarativeSettingsSetValueEvent) {
  16. return;
  17. }
  18. if ($event->getApp() !== 'testing') {
  19. return;
  20. }
  21. error_log('Testing app wants to store ' . $event->getValue() . ' for field ' . $event->getFieldId() . ' for user ' . $event->getUser()->getUID());
  22. $this->config->setUserValue($event->getUser()->getUID(), $event->getApp(), $event->getFieldId(), $event->getValue());
  23. }
  24. }