mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Fix incorrect key when deleting projects
This commit is contained in:
parent
9f74aac1a0
commit
06c4c0f74f
5 changed files with 18 additions and 14 deletions
|
@ -25,6 +25,7 @@ class ConversionsDisabledError extends BackwardCompatibleError {}
|
|||
class ConversionError extends BackwardCompatibleError {}
|
||||
class SettingsError extends BackwardCompatibleError {}
|
||||
class TimeoutError extends BackwardCompatibleError {}
|
||||
class InvalidParametersError extends BackwardCompatibleError {}
|
||||
|
||||
class FailedCommandError extends OError {
|
||||
constructor(command, code, stdout, stderr) {
|
||||
|
@ -50,5 +51,6 @@ module.exports = {
|
|||
ConversionError,
|
||||
HealthCheckError,
|
||||
SettingsError,
|
||||
TimeoutError
|
||||
TimeoutError,
|
||||
InvalidParametersError
|
||||
}
|
||||
|
|
|
@ -161,13 +161,16 @@ function deleteFile(req, res, next) {
|
|||
|
||||
function deleteProject(req, res, next) {
|
||||
metrics.inc('deleteProject')
|
||||
const { project_id: projectId, bucket } = req
|
||||
const { key, bucket } = req
|
||||
|
||||
req.requestLogger.setMessage('getting project size')
|
||||
req.requestLogger.addFields({ projectId, bucket })
|
||||
req.requestLogger.setMessage('deleting project')
|
||||
req.requestLogger.addFields({ key, bucket })
|
||||
|
||||
FileHandler.deleteProject(bucket, projectId, function(err) {
|
||||
FileHandler.deleteProject(bucket, key, function(err) {
|
||||
if (err) {
|
||||
if (err instanceof Errors.InvalidParametersError) {
|
||||
return res.sendStatus(400)
|
||||
}
|
||||
next(err)
|
||||
} else {
|
||||
res.sendStatus(204)
|
||||
|
|
|
@ -5,7 +5,7 @@ const LocalFileWriter = require('./LocalFileWriter')
|
|||
const FileConverter = require('./FileConverter')
|
||||
const KeyBuilder = require('./KeyBuilder')
|
||||
const ImageOptimiser = require('./ImageOptimiser')
|
||||
const { ConversionError, WriteError } = require('./Errors')
|
||||
const { ConversionError, InvalidParametersError } = require('./Errors')
|
||||
|
||||
module.exports = {
|
||||
insertFile: callbackify(insertFile),
|
||||
|
@ -27,7 +27,7 @@ module.exports = {
|
|||
async function insertFile(bucket, key, stream) {
|
||||
const convertedKey = KeyBuilder.getConvertedFolderKey(key)
|
||||
if (!convertedKey.match(/^[0-9a-f]{24}\/[0-9a-f]{24}/i)) {
|
||||
throw new WriteError({
|
||||
throw new InvalidParametersError({
|
||||
message: 'key does not match validation regex',
|
||||
info: { bucket, key, convertedKey }
|
||||
})
|
||||
|
@ -39,7 +39,7 @@ async function insertFile(bucket, key, stream) {
|
|||
async function deleteFile(bucket, key) {
|
||||
const convertedKey = KeyBuilder.getConvertedFolderKey(key)
|
||||
if (!convertedKey.match(/^[0-9a-f]{24}\/[0-9a-f]{24}/i)) {
|
||||
throw new WriteError({
|
||||
throw new InvalidParametersError({
|
||||
message: 'key does not match validation regex',
|
||||
info: { bucket, key, convertedKey }
|
||||
})
|
||||
|
@ -52,7 +52,7 @@ async function deleteFile(bucket, key) {
|
|||
|
||||
async function deleteProject(bucket, key) {
|
||||
if (!key.match(/^[0-9a-f]{24}\//i)) {
|
||||
throw new WriteError({
|
||||
throw new InvalidParametersError({
|
||||
message: 'key does not match validation regex',
|
||||
info: { bucket, key }
|
||||
})
|
||||
|
|
|
@ -263,7 +263,7 @@ describe('FileController', function() {
|
|||
it('should tell the file handler', function(done) {
|
||||
res.sendStatus = code => {
|
||||
code.should.equal(204)
|
||||
expect(FileHandler.deleteProject).to.have.been.calledWith(bucket, projectId)
|
||||
expect(FileHandler.deleteProject).to.have.been.calledWith(bucket, key)
|
||||
done()
|
||||
}
|
||||
FileController.deleteProject(req, res, next)
|
||||
|
|
|
@ -159,10 +159,9 @@ describe('FileHandler', function() {
|
|||
it('should tell the filestore manager to delete the folder', function(done) {
|
||||
FileHandler.deleteProject(bucket, projectKey, err => {
|
||||
expect(err).not.to.exist
|
||||
expect(PersistorManager.promises.deleteDirectory).to.have.been.calledWith(
|
||||
bucket,
|
||||
projectKey
|
||||
)
|
||||
expect(
|
||||
PersistorManager.promises.deleteDirectory
|
||||
).to.have.been.calledWith(bucket, projectKey)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue