| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- const { waitForDb } = require('../app/src/infrastructure/mongodb')
- const minimist = require('minimist')
- const ThirdPartyIdentityManager = require('../app/src/Features/User/ThirdPartyIdentityManager')
- const UserGetter = require('../app/src/Features/User/UserGetter')
- /**
- * This script is used to remove a linked third party identity from a user account.
- *
- * Parameters:
- * --providerId: the third party identity provider (e.g. google, collabratec)
- * --userId: the id of the user
- * --commit: if present, the script will commit the changes to the database.
- *
- * Usage:
- *
- * - dry run:
- * node scripts/unlink_third_party_id.js --providerId=google --userId=${SOME_USER_ID}
- * - commit:
- * node scripts/unlink_third_party_id.js --providerId=google --userId=${SOME_USER_ID} --commit
- */
- let COMMIT = false
- let PROVIDER_ID
- let USER_ID
- const setup = () => {
- const argv = minimist(process.argv.slice(2))
- COMMIT = argv.commit !== undefined
- PROVIDER_ID = argv.providerId
- USER_ID = argv.userId
- if (!COMMIT) {
- console.warn('Doing dry run. Add --commit to commit changes')
- }
- }
- async function main() {
- if (!PROVIDER_ID) {
- throw new Error('No --providerId argument provided')
- }
- if (!USER_ID) {
- throw new Error('No --userId argument provided')
- }
- await waitForDb()
- const auditLog = {
- initiatorId: undefined,
- ipAddress: '0.0.0.0',
- extraInfo: {
- script: true,
- },
- }
- const user = await UserGetter.promises.getUser(USER_ID, {
- thirdPartyIdentifiers: 1,
- })
- console.log(
- `Existing thirdPartyIdentifiers: ${JSON.stringify(
- user.thirdPartyIdentifiers
- )}`
- )
- console.log(`Removing third party identifier for provider: ${PROVIDER_ID}`)
- if (COMMIT) {
- const updatedUser = await ThirdPartyIdentityManager.promises.unlink(
- USER_ID,
- PROVIDER_ID,
- auditLog
- )
- console.log(
- `Remaining thirdPartyIdentifiers: ${JSON.stringify(
- updatedUser.thirdPartyIdentifiers
- )}`
- )
- }
- }
- setup()
- main()
- .then(() => {
- process.exit(0)
- })
- .catch(err => {
- console.error(err)
- process.exit(1)
- })
|