* links = {
* "canonical" = "/comment/{comment}",
* "delete-form" = "/comment/{comment}/delete",
+ * "delete-multiple-form" = "/admin/content/comment/delete",
* "edit-form" = "/comment/{comment}/edit",
+ * "create" = "/comment",
* },
* bundle_entity_type = "comment_type",
* field_ui_base_route = "entity.comment_type.edit_form",
/**
* The thread for which a lock was acquired.
+ *
+ * @var string
*/
protected $threadLock = '';
} while (!\Drupal::lock()->acquire($lock_name));
$this->threadLock = $lock_name;
}
- // We test the value with '===' because we need to modify anonymous
- // users as well.
- if ($this->getOwnerId() === \Drupal::currentUser()->id() && \Drupal::currentUser()->isAuthenticated()) {
- $this->setAuthorName(\Drupal::currentUser()->getUsername());
- }
$this->setThread($thread);
- if (!$this->getHostname()) {
- // Ensure a client host from the current request.
- $this->setHostname(\Drupal::request()->getClientIP());
- }
+ }
+ // The entity fields for name and mail have no meaning if the user is not
+ // Anonymous. Set them to NULL to make it clearer that they are not used.
+ // For anonymous users see \Drupal\comment\CommentForm::form() for mail,
+ // and \Drupal\comment\CommentForm::buildEntity() for name setting.
+ if (!$this->getOwner()->isAnonymous()) {
+ $this->set('name', NULL);
+ $this->set('mail', NULL);
}
}
->setLabel(t('Hostname'))
->setDescription(t("The comment author's hostname."))
->setTranslatable(TRUE)
- ->setSetting('max_length', 128);
+ ->setSetting('max_length', 128)
+ ->setDefaultValueCallback(static::class . '::getDefaultHostname');
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
* @see ::baseFieldDefinitions()
*
* @return bool
- * TRUE if the comment should be published, FALSE otherwise.
+ * TRUE if the comment should be published, FALSE otherwise.
*/
public static function getDefaultStatus() {
return \Drupal::currentUser()->hasPermission('skip comment approval') ? CommentInterface::PUBLISHED : CommentInterface::NOT_PUBLISHED;
}
+ /**
+ * Returns the default value for entity hostname base field.
+ *
+ * @return string
+ * The client host name.
+ */
+ public static function getDefaultHostname() {
+ return \Drupal::request()->getClientIP();
+ }
+
}