mirror of
https://github.com/wassname/talk.git
synced 2026-07-23 13:10:20 +08:00
44 lines
844 B
JavaScript
44 lines
844 B
JavaScript
const UserModel = require('../models/user');
|
|
|
|
const findNewRole = roles => {
|
|
if (roles.includes('ADMIN')) {
|
|
return 'ADMIN';
|
|
} else if (roles.includes('MODERATOR')) {
|
|
return 'MODERATOR';
|
|
} else if (roles.includes('STAFF')) {
|
|
return 'STAFF';
|
|
}
|
|
|
|
return 'COMMENTER';
|
|
};
|
|
|
|
module.exports = {
|
|
async up({ transformSingleWithCursor }) {
|
|
const cursor = UserModel.collection.find({
|
|
roles: {
|
|
$exists: true,
|
|
},
|
|
});
|
|
|
|
await transformSingleWithCursor(
|
|
cursor,
|
|
user => ({
|
|
query: {
|
|
id: user.id,
|
|
},
|
|
update: {
|
|
$set: {
|
|
role: Array.isArray(user.roles)
|
|
? findNewRole(user.roles)
|
|
: 'COMMENTER',
|
|
},
|
|
$unset: {
|
|
roles: '',
|
|
},
|
|
},
|
|
}),
|
|
UserModel
|
|
);
|
|
},
|
|
};
|