mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 21:23:45 -05:00
Merge pull request #2226 from overleaf/spd-clearprojectokens
Add script to clear tokens from a specific project GitOrigin-RevId: a810e2b7fe2e34efb937bffc0e39c409076daa23
This commit is contained in:
parent
9a492257af
commit
33d1f603df
3 changed files with 39 additions and 1 deletions
|
@ -27,6 +27,7 @@ module.exports = {
|
||||||
generateUniqueName: callbackify(generateUniqueName),
|
generateUniqueName: callbackify(generateUniqueName),
|
||||||
setPublicAccessLevel: callbackify(setPublicAccessLevel),
|
setPublicAccessLevel: callbackify(setPublicAccessLevel),
|
||||||
ensureTokensArePresent: callbackify(ensureTokensArePresent),
|
ensureTokensArePresent: callbackify(ensureTokensArePresent),
|
||||||
|
clearTokens: callbackify(clearTokens),
|
||||||
fixProjectName,
|
fixProjectName,
|
||||||
promises: {
|
promises: {
|
||||||
getDetails,
|
getDetails,
|
||||||
|
@ -37,7 +38,8 @@ module.exports = {
|
||||||
validateProjectName,
|
validateProjectName,
|
||||||
generateUniqueName,
|
generateUniqueName,
|
||||||
setPublicAccessLevel,
|
setPublicAccessLevel,
|
||||||
ensureTokensArePresent
|
ensureTokensArePresent,
|
||||||
|
clearTokens
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -276,6 +278,13 @@ async function ensureTokensArePresent(projectId) {
|
||||||
return project.tokens
|
return project.tokens
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function clearTokens(projectId) {
|
||||||
|
await Project.update(
|
||||||
|
{ _id: projectId },
|
||||||
|
{ $unset: { tokens: 1 }, $set: { publicAccesLevel: 'private' } }
|
||||||
|
).exec()
|
||||||
|
}
|
||||||
|
|
||||||
async function _generateTokens(project, callback) {
|
async function _generateTokens(project, callback) {
|
||||||
if (!project.tokens) {
|
if (!project.tokens) {
|
||||||
project.tokens = {}
|
project.tokens = {}
|
||||||
|
|
19
services/web/scripts/clear_project_tokens.js
Normal file
19
services/web/scripts/clear_project_tokens.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
const ProjectDetailsHandler = require('../app/src/Features/Project/ProjectDetailsHandler')
|
||||||
|
const projectId = process.argv[2]
|
||||||
|
|
||||||
|
if (!/^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/.test(projectId)) {
|
||||||
|
console.error('Usage: node clear_project_tokens.js projectId')
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
ProjectDetailsHandler.clearTokens(projectId, err => {
|
||||||
|
if (err) {
|
||||||
|
console.error(
|
||||||
|
`Error clearing project tokens from project ${projectId}`,
|
||||||
|
err
|
||||||
|
)
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
console.log(`Successfully cleared project tokens from project ${projectId}`)
|
||||||
|
process.exit(0)
|
||||||
|
})
|
|
@ -640,4 +640,14 @@ describe('ProjectDetailsHandler', function() {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('clearTokens', function() {
|
||||||
|
it('clears the tokens from the project', async function() {
|
||||||
|
await this.handler.promises.clearTokens(this.project._id)
|
||||||
|
expect(this.ProjectModel.update).to.have.been.calledWith(
|
||||||
|
{ _id: this.project._id },
|
||||||
|
{ $unset: { tokens: 1 }, $set: { publicAccesLevel: 'private' } }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue