src/mvk/Auth/EventListener/PostUpdateListener.php line 33

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of the Pimcore X Installation by
  4.  * ercas GmbH & CO. KG <https://www.ercasdieagentur.de>
  5.  *
  6.  *  @license GPLv3
  7.  */
  8. namespace App\mvk\Auth\EventListener;
  9. use App\Services\ContainerHelperService;
  10. use App\Services\MailService;
  11. use Pimcore\Event\Model\DataObjectEvent;
  12. use Pimcore\Event\Model\ElementEventInterface;
  13. use Pimcore\Model\DataObject\Agent;
  14. class PostUpdateListener
  15. {
  16.     protected const USER_CLASSES = ['Agent'];
  17.     private $containerHelperService;
  18.     private MailService $mailService;
  19.     public function __construct(ContainerHelperService $containerHelperServiceMailService $mailService)
  20.     {
  21.         $this->containerHelperService $containerHelperService;
  22.         $this->mailService $mailService;
  23.     }
  24.     public function onPostUpdate(ElementEventInterface $e): void
  25.     {
  26.         if ($e instanceof DataObjectEvent) {
  27.             $user $e->getObject();
  28.             if ($user instanceof Agent) {
  29.                 if ($user->getPublished() == false) {
  30.                     // user is unpublished - be sure all childs are unpublished too
  31.                     $subAgents $user->getSubAgent();
  32.                     if (count($subAgents) > 0) {
  33.                         foreach($subAgents as $subAgentObj) {
  34.                             if ($subAgentObj->getPublished() == true) {
  35.                                 $subAgentObj->setPublished(false);
  36.                                 $subAgentObj->save();
  37.                             } 
  38.                         }
  39.                     }
  40.                 }
  41.             }
  42.         }
  43.     }
  44.     private function supports($class)
  45.     {
  46.         if (in_array($classself::USER_CLASSES)) {
  47.             return true;
  48.         }
  49.         return false;
  50.     }
  51. }