Skip to content

Commit 463c74b

Browse files
authored
ENGCOM-5640: Fixes #23824: User data serialised multiple times on save when loaded… #23827
2 parents 2bc8dc7 + f1fc0d8 commit 463c74b

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

app/code/Magento/User/Model/User.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,10 @@ public function loadByUsername($username)
665665
{
666666
$data = $this->getResource()->loadByUsername($username);
667667
if ($data !== false) {
668+
if (is_string($data['extra'])) {
669+
$data['extra'] = $this->serializer->unserialize($data['extra']);
670+
}
671+
668672
$this->setData($data);
669673
$this->setOrigData();
670674
}

dev/tests/integration/testsuite/Magento/User/Model/UserTest.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
namespace Magento\User\Model;
88

9-
use Magento\Framework\Serialize\Serializer\Json;
109
use Magento\Framework\Encryption\Encryptor;
1110

1211
/**
@@ -29,11 +28,6 @@ class UserTest extends \PHPUnit\Framework\TestCase
2928
*/
3029
protected static $_newRole;
3130

32-
/**
33-
* @var Json
34-
*/
35-
private $serializer;
36-
3731
/**
3832
* @var Encryptor
3933
*/
@@ -47,9 +41,6 @@ protected function setUp()
4741
$this->_dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
4842
\Magento\Framework\Stdlib\DateTime::class
4943
);
50-
$this->serializer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
51-
Json::class
52-
);
5344
$this->encryptor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
5445
Encryptor::class
5546
);
@@ -133,7 +124,7 @@ public function testSaveExtra()
133124
$this->_model->loadByUsername(\Magento\TestFramework\Bootstrap::ADMIN_NAME);
134125
$this->_model->saveExtra(['test' => 'val']);
135126
$this->_model->loadByUsername(\Magento\TestFramework\Bootstrap::ADMIN_NAME);
136-
$extra = $this->serializer->unserialize($this->_model->getExtra());
127+
$extra = $this->_model->getExtra();
137128
$this->assertEquals($extra['test'], 'val');
138129
}
139130

0 commit comments

Comments
 (0)