Migrating from v3.x.x
Deprecation Notices
It was previously recommended to use the user service function:
Users.findOrCreateExternalUser(...);
If you are developing a social plugin, you should migrate this function to:
Users.upsertSocialUser(...);
If you are developing an external auth integration (where the integration provides) a custom displayName, you should migrate to:
Users.upsertExternalUser(...);
Troubleshooting Username Status
You may be affected by a side-effect of the above mentioned deprecated function
Users.findOrCreateExternalUser(...);
if the following are true:
- You have upgraded from Talk
< 3
to>= 4
and have completed a database migration - You have used a custom auth plugin in the past
- You have disabled or not included the
talk-plugin-auth
as aclient
plugin - You have received reports that some users can not comment, and are instead
given a message
You are not authorized to perform this action.
If this is the case, you can execute the following one time MongoDB query to repair the affected users.
db.users.update(
{
"status.username.status": {
$in: ["UNSET", "CHANGED"]
}
},
{
$set: {
"status.username.status": "SET"
},
$push: {
"status.username.history": {
status: "SET",
assigned_by: null,
created_at: ISODate()
}
}
},
{
multi: true
}
);
Note: You must resolve and/or update your custom auth code to resolve the above mentioned deprecation notices before running the above mentioned MongoDB query