From f68dd3ee21e4df019c47350fdebe955178437fc3 Mon Sep 17 00:00:00 2001 From: Maximilian Fischer Date: Thu, 8 Oct 2020 20:42:43 +0200 Subject: [PATCH 1/2] signup - use toJson Co-Authored-By: itmesh <50654062+itmesh@users.noreply.github.com> --- packages/dart/lib/src/objects/parse_user.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/dart/lib/src/objects/parse_user.dart b/packages/dart/lib/src/objects/parse_user.dart index 719c94888..2c4860717 100644 --- a/packages/dart/lib/src/objects/parse_user.dart +++ b/packages/dart/lib/src/objects/parse_user.dart @@ -149,10 +149,9 @@ class ParseUser extends ParseObject implements ParseCloneable { return null; } - final Map bodyData = _getObjectData(); - bodyData[keyVarPassword] = password; final Uri url = getSanitisedUri(_client, '$path'); - final String body = json.encode(bodyData); + _unsavedChanges[keyVarPassword] = password; + final String body = json.encode(toJson(forApiRQ: true)); _saveChanges(); final String installationId = await _getInstallationId(); final Response response = From 0eec4519e5cb80ceea57bb4ba53f9cc289813969 Mon Sep 17 00:00:00 2001 From: Maximilian Fischer Date: Fri, 9 Oct 2020 12:44:32 +0200 Subject: [PATCH 2/2] fix password update --- packages/dart/lib/src/objects/parse_user.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/dart/lib/src/objects/parse_user.dart b/packages/dart/lib/src/objects/parse_user.dart index 2c4860717..b8e5814cb 100644 --- a/packages/dart/lib/src/objects/parse_user.dart +++ b/packages/dart/lib/src/objects/parse_user.dart @@ -11,7 +11,7 @@ class ParseUser extends ParseObject implements ParseCloneable { /// Requires [String] username, [String] password. [String] email address /// is required as well to create a full new user object on ParseServer. Only /// username and password is required to login - ParseUser(String username, this.password, String emailAddress, + ParseUser(String username, String password, String emailAddress, {String sessionToken, bool debug, ParseHTTPClient client}) : super(keyClassUser) { _debug = isDebugEnabled(objectLevelDebug: debug); @@ -22,6 +22,7 @@ class ParseUser extends ParseObject implements ParseCloneable { this.username = username; this.emailAddress = emailAddress; + this.password = password; this.sessionToken = sessionToken; } @@ -39,7 +40,16 @@ class ParseUser extends ParseObject implements ParseCloneable { static const String keyEmailAddress = 'email'; static const String path = '$keyEndPointClasses$keyClassUser'; - String password; + String _password; + + String get password => _password; + + set password(String password) { + if (_password != password) { + _password = password; + if (password != null) _unsavedChanges[keyVarPassword] = password; + } + } Map get acl => super.get>(keyVarAcl); @@ -150,7 +160,6 @@ class ParseUser extends ParseObject implements ParseCloneable { } final Uri url = getSanitisedUri(_client, '$path'); - _unsavedChanges[keyVarPassword] = password; final String body = json.encode(toJson(forApiRQ: true)); _saveChanges(); final String installationId = await _getInstallationId();