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