mirror of
https://github.com/wassname/talk.git
synced 2026-07-16 11:22:16 +08:00
71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
---
|
|
title: Migrating from v3.x.x
|
|
permalink: /migration/3/
|
|
---
|
|
|
|
## Deprecation Notices
|
|
|
|
It was previously recommended to use the user service function:
|
|
|
|
```js
|
|
Users.findOrCreateExternalUser(...);
|
|
```
|
|
|
|
If you are developing a social plugin, you should migrate this function to:
|
|
|
|
```js
|
|
Users.upsertSocialUser(...);
|
|
```
|
|
|
|
If you are developing an external auth integration (where the integration
|
|
provides) a custom displayName, you should migrate to:
|
|
|
|
```js
|
|
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:
|
|
|
|
1. You have upgraded from Talk `< 3` to `>= 4` and have completed a database
|
|
migration
|
|
2. You have used a custom auth plugin in the past
|
|
3. You have disabled or not included the `talk-plugin-auth` as a `client` plugin
|
|
4. 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.
|
|
|
|
```js
|
|
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**
|