<?php
namespace App\EventSubscriber;
use Pimcore\Mail;
use Pimcore\Model\DataObject;
use App\Model\DataObject\Customer;
use Pimcore\Event\Model\DataObjectEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class PublicUserShaListener
{
// public static function getSubscribedEvents()
// {
// return [
// DataObjectEvent::class => 'onObjectPublish',
// ];
// }
public function onObjectPreUpdate(DataObjectEvent $publicUser)
{
$object = $publicUser->getObject();
if (($object instanceof Customer)) {
if ($object->getUserType() == "internal") {
$object->setParent(DataObject\Service::createFolderByPath("/UserManagement/Users"));
$object->setUserId("");
$object->setSecretKey("");
// $object->Save();
} elseif ($object->getUserType() == "public") {
$userHashHmac = hash_hmac('ripemd160', 'NCM Public API User Auth key generate', $object->getId());
// Generate an SHA hash for the user ID and secret key
$userHashSecrect = hash('sha256', $object->getId() . $userHashHmac);
//$object->setParent(DataObject\Service::createFolderByPath("/UserManagement/PublicUsers"));
$object->setUserId($userHashHmac);
$object->setSecretKey($userHashSecrect);
$object->setOmitMandatoryCheck(true);
$object->Save();
}
}
}
}