コード例 #1
0
ファイル: UserMailRequired.php プロジェクト: brstde/gap1
 /**
  * {@inheritdoc}
  */
 public function validate($items, Constraint $constraint)
 {
     /** @var \Drupal\Core\Field\FieldItemListInterface $items */
     /** @var \Drupal\user\UserInterface $account */
     $account = $this->context->getMetadata()->getTypedData()->getEntity();
     $existing_value = NULL;
     if ($account->id()) {
         $account_unchanged = \Drupal::entityManager()->getStorage('user')->loadUnchanged($account->id());
         $existing_value = $account_unchanged->getEmail();
     }
     $required = !(!$existing_value && \Drupal::currentUser()->hasPermission('administer users'));
     if ($required && (!isset($items) || $items->isEmpty())) {
         $this->context->addViolation($this->message, array('!name' => SafeMarkup::placeholder($account->getFieldDefinition('mail')->getLabel())));
     }
 }