From d6d58f15897fe78baa2f5c7985201d97c322184e Mon Sep 17 00:00:00 2001
From: fago <fago@wolfgangziegler.net>
Date: Sat, 28 Nov 2015 17:11:28 +0100
Subject: [PATCH] Fix EntityRevisionLogTrait user getter and setters to have ID
 and entity variations.

---
 src/Revision/EntityRevisionLogInterface.php | 20 +++++++++++++++++++-
 src/Revision/EntityRevisionLogTrait.php     | 18 +++++++++++++++++-
 tests/Kernel/EntityRevisionLogTraitTest.php |  6 +++++-
 3 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/src/Revision/EntityRevisionLogInterface.php b/src/Revision/EntityRevisionLogInterface.php
index 3a15203..2fc183f 100644
--- a/src/Revision/EntityRevisionLogInterface.php
+++ b/src/Revision/EntityRevisionLogInterface.php
@@ -43,12 +43,30 @@ interface EntityRevisionLogInterface {
   /**
    * Sets the entity revision author.
    *
+   * @param \Drupal\user\UserInterface $account
+   *   The user account of the revision author.
+   *
+   * @return $this
+   */
+  public function setRevisionUser($account);
+
+  /**
+   * Gets the entity revision author ID.
+   *
+   * @return int
+   *   The user ID.
+   */
+  public function getRevisionUserId();
+
+  /**
+   * Sets the entity revision author by ID.
+   *
    * @param int $user_id
    *   The user ID of the revision author.
    *
    * @return $this
    */
-  public function setRevisionUser($user_id);
+  public function setRevisionUserId($user_id);
 
   /**
    * Returns the entity revision log message.
diff --git a/src/Revision/EntityRevisionLogTrait.php b/src/Revision/EntityRevisionLogTrait.php
index 5e8b70d..cc27b1a 100644
--- a/src/Revision/EntityRevisionLogTrait.php
+++ b/src/Revision/EntityRevisionLogTrait.php
@@ -8,6 +8,7 @@
 namespace Drupal\entity\Revision;
 
 use Drupal\Core\Field\BaseFieldDefinition;
+use Drupal\user\UserInterface;
 
 /**
  * Provides a trait implementing \Drupal\entity\Revision\EntityRevisionLogInterface.
@@ -74,7 +75,22 @@ trait EntityRevisionLogTrait {
   /**
    * {@inheritdoc}
    */
-  public function setRevisionUser($user_id) {
+  public function setRevisionUser(UserInterface $account) {
+    $this->revision_user->entity = $account;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionUserId() {
+    return $this->revision_user->target_id;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRevisionUserId($user_id) {
     $this->revision_user->target_id = $user_id;
     return $this;
   }
diff --git a/tests/Kernel/EntityRevisionLogTraitTest.php b/tests/Kernel/EntityRevisionLogTraitTest.php
index 9b658e5..7ca16a0 100644
--- a/tests/Kernel/EntityRevisionLogTraitTest.php
+++ b/tests/Kernel/EntityRevisionLogTraitTest.php
@@ -54,8 +54,12 @@ class EntityRevisionLogTraitTest extends KernelTestBase {
 
     $entity->setRevisionCreationTime(1234567890);
     $this->assertEquals(1234567890, $entity->getRevisionCreationTime());
-    $entity->setRevisionUser($user2->id());
+    $entity->setRevisionUser($user2);
     $this->assertEquals($user2->id(), $entity->getRevisionUser()->id());
+    $this->assertEquals($user2->id(), $entity->getRevisionUserId());
+    $entity->setRevisionUserId($user->id());
+    $this->assertEquals($user->id(), $entity->getRevisionUserId());
+
     $entity->setRevisionLogMessage('Giraffe!');
     $this->assertEquals('Giraffe!', $entity->getRevisionLogMessage());
   }
-- 
GitLab