From 207a3dff0d65cae3246fe7a5d51744c36a658b83 Mon Sep 17 00:00:00 2001 From: Arthur Cinader <700572+acinader@users.noreply.github.com> Date: Tue, 29 Jan 2019 17:24:01 -0800 Subject: [PATCH 1/3] alternate method to remove auth data which has the added benefit of working with current versions of mongo --- src/Parse/ParseUser.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Parse/ParseUser.php b/src/Parse/ParseUser.php index 32ebeb17..082bf15f 100644 --- a/src/Parse/ParseUser.php +++ b/src/Parse/ParseUser.php @@ -51,7 +51,6 @@ public function getUsername() */ public function setUsername($username) { - $this->set('authData.anonymous', null); return $this->set('username', $username); } @@ -580,6 +579,14 @@ public function isCurrent() return false; } + /** + * Remove current user's anonymous AuthData + */ + private function clearAnonymousAuthData() { + $json = json_encode(['authData' => [ 'anonymous' => null]]); + ParseClient::_request('PUT', 'classes/_User/' . $this->getObjectId(), null, $json, true); + } + /** * Save the current user object, unless it is not signed up. * @@ -590,7 +597,11 @@ public function isCurrent() public function save($useMasterKey = false) { if ($this->getObjectId()) { + $wasAnonymous = isset($this->operationSet['username']) && $this->operationSet['username'] instanceof \Parse\Internal\SetOperation; parent::save($useMasterKey); + if($wasAnonymous) { + $this->clearAnonymousAuthData(); + } } else { throw new ParseException( 'You must call signUp to create a new User.', From c483b6f6ece1c729cec8cc2e1a0cccd011e2ac28 Mon Sep 17 00:00:00 2001 From: Arthur Cinader <700572+acinader@users.noreply.github.com> Date: Tue, 29 Jan 2019 18:17:45 -0800 Subject: [PATCH 2/3] listen to lint! --- src/Parse/ParseUser.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Parse/ParseUser.php b/src/Parse/ParseUser.php index 082bf15f..659ceedf 100644 --- a/src/Parse/ParseUser.php +++ b/src/Parse/ParseUser.php @@ -582,7 +582,8 @@ public function isCurrent() /** * Remove current user's anonymous AuthData */ - private function clearAnonymousAuthData() { + private function clearAnonymousAuthData() + { $json = json_encode(['authData' => [ 'anonymous' => null]]); ParseClient::_request('PUT', 'classes/_User/' . $this->getObjectId(), null, $json, true); } @@ -599,7 +600,7 @@ public function save($useMasterKey = false) if ($this->getObjectId()) { $wasAnonymous = isset($this->operationSet['username']) && $this->operationSet['username'] instanceof \Parse\Internal\SetOperation; parent::save($useMasterKey); - if($wasAnonymous) { + if ($wasAnonymous) { $this->clearAnonymousAuthData(); } } else { From efb120de3c7f1eb99a814f147b5cfb14ea72ed64 Mon Sep 17 00:00:00 2001 From: Arthur Cinader <700572+acinader@users.noreply.github.com> Date: Tue, 29 Jan 2019 18:26:02 -0800 Subject: [PATCH 3/3] lint take 2. --- src/Parse/ParseUser.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Parse/ParseUser.php b/src/Parse/ParseUser.php index 659ceedf..2c31cd31 100644 --- a/src/Parse/ParseUser.php +++ b/src/Parse/ParseUser.php @@ -598,7 +598,8 @@ private function clearAnonymousAuthData() public function save($useMasterKey = false) { if ($this->getObjectId()) { - $wasAnonymous = isset($this->operationSet['username']) && $this->operationSet['username'] instanceof \Parse\Internal\SetOperation; + $wasAnonymous = isset($this->operationSet['username']) + && $this->operationSet['username'] instanceof \Parse\Internal\SetOperation; parent::save($useMasterKey); if ($wasAnonymous) { $this->clearAnonymousAuthData();