Skip to content

Commit e7155d3

Browse files
committed
prepare for new user BEFORE setting user to nil
* On logout, we were setting the user to `nil` to early * When logout is called, we prepare for new user, and the operation repo and executors flush their Deltas. However, they still need access to user properties, so set user to `nil` after this.
1 parent d4816ab commit e7155d3

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

iOS_SDK/OneSignalSDK/OneSignalUser/Source/OneSignalUserManagerImpl.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,11 @@ public class OneSignalUserManagerImpl: NSObject, OneSignalUserManager {
243243
}
244244

245245
let pushSubscriptionModel = pushSubscriptionModelStore.getModel(key: OS_PUSH_SUBSCRIPTION_MODEL_KEY)
246-
prepareForNewUser()
246+
247+
// prepareForNewUser may be already called by logout, so we don't want to call it again. Also, there should be no need to call this method if there is no user.
248+
if _user != nil {
249+
prepareForNewUser()
250+
}
247251

248252
let newUser = setNewInternalUser(externalId: externalId, pushSubscriptionModel: pushSubscriptionModel)
249253
newUser.identityModel.jwtBearerToken = token
@@ -304,6 +308,7 @@ public class OneSignalUserManagerImpl: NSObject, OneSignalUserManager {
304308
*/
305309
@objc
306310
public func logout() {
311+
prepareForNewUser()
307312
_user = nil
308313
createUserIfNil()
309314
}

0 commit comments

Comments
 (0)