/** * Listen a preUpdate lifecycle event. Checking and encrypt entities fields * which have @Encrypted annotation. Using changesets to avoid preUpdate event * restrictions * @param LifecycleEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $reflectionClass = new ReflectionClass($args->getEntity()); $properties = $reflectionClass->getProperties(); foreach ($properties as $refProperty) { $propName = $refProperty->getName(); if ($this->annReader->getPropertyAnnotation($refProperty, self::ENCRYPTED_ANN_NAME) && $args->hasChangedField($propName)) { $args->setNewValue($propName, $this->encryptor->encrypt($args->getNewValue($propName))); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $user = $eventArgs->getEntity(); if ($user instanceof User) { if ($eventArgs->hasChangedField('password')) { $password = $this->encodePassword($user); $eventArgs->setNewValue('password', $password); $user->setPassword($password); } } }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); switch (true) { case $entity instanceof User: if ($entity->getPlainPassword()) { $args->setNewValue('password', $this->encodePlainPassword($entity)); } break; } }
/** * PreUpdate event listener * * Only computes password change if password is one of file to be changed * * @param PreUpdateEventArgs $eventArgs Event args */ public function preUpdate(PreUpdateEventArgs $eventArgs) { $entity = $eventArgs->getEntity(); if ($this->checkEntityType($entity)) { if ($eventArgs->hasChangedField('password')) { $password = $entity->getPassword(); if (!empty($password)) { $encodedPassword = $this->encryptPassword($password); $eventArgs->setNewValue('password', $encodedPassword); } } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $eventArgs->setNewValue('name', 'Bob'); }