mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #1847 from overleaf/spd-cleanup-userstubs
Add user-stub cleanup script GitOrigin-RevId: 3a1dab4aeec74fe5d42732db52737d880a86002e
This commit is contained in:
parent
0fe129f3f5
commit
f0e39f7a86
1 changed files with 82 additions and 0 deletions
82
services/web/scripts/cleanup_dangling_user_stubs.js
Normal file
82
services/web/scripts/cleanup_dangling_user_stubs.js
Normal file
|
@ -0,0 +1,82 @@
|
|||
const { db } = require('../app/src/infrastructure/mongojs')
|
||||
const async = require('async')
|
||||
const minimist = require('minimist')
|
||||
const UserMapper = require('../modules/overleaf-integration/app/src/OverleafUsers/UserMapper')
|
||||
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const commit = argv.commit !== undefined
|
||||
|
||||
if (!commit) {
|
||||
console.log('Doing dry run without --commit')
|
||||
}
|
||||
|
||||
db.userstubs.aggregate(
|
||||
[
|
||||
{
|
||||
$lookup: {
|
||||
localField: 'overleaf.id',
|
||||
from: 'users',
|
||||
foreignField: 'overleaf.id',
|
||||
as: 'users'
|
||||
}
|
||||
},
|
||||
{
|
||||
$project: {
|
||||
email: 1,
|
||||
overleaf: 1,
|
||||
_id: 1,
|
||||
'users.email': 1,
|
||||
'users.emails': 1,
|
||||
'users.overleaf': 1,
|
||||
'users._id': 1
|
||||
}
|
||||
},
|
||||
{
|
||||
$match: {
|
||||
users: { $exists: 1 },
|
||||
'overleaf.id': { $exists: 1 }
|
||||
}
|
||||
}
|
||||
],
|
||||
(err, stubs) => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
console.log('Found ' + stubs.length + ' dangling stubs')
|
||||
async.mapLimit(
|
||||
stubs,
|
||||
Number(argv.limit || '10'),
|
||||
(stub, callback) => {
|
||||
if (commit) {
|
||||
console.log(
|
||||
'Processing stub',
|
||||
stub._id,
|
||||
'for user',
|
||||
stub.users[0]._id
|
||||
)
|
||||
UserMapper._updateUserStubReferences(
|
||||
stub.overleaf,
|
||||
stub._id,
|
||||
stub.users[0]._id,
|
||||
callback
|
||||
)
|
||||
} else {
|
||||
console.log(
|
||||
'Would call UserMapper._updateUserStubReferences with:',
|
||||
stub.overleaf,
|
||||
stub._id,
|
||||
stub.users[0]._id
|
||||
)
|
||||
callback()
|
||||
}
|
||||
},
|
||||
err => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
console.log('All done')
|
||||
process.exit(0)
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
Loading…
Reference in a new issue