mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-18 17:21:35 +00:00
Merge pull request #3259 from overleaf/jpa-hotfix-object-id-detection
[misc] fix detection of native and mongoose ObjectIds GitOrigin-RevId: 98e2f3f009061e7cce9948341ebd5dc42d613448
This commit is contained in:
parent
db422ecafa
commit
9f68193876
4 changed files with 16 additions and 1 deletions
|
@ -14,6 +14,7 @@
|
||||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||||
*/
|
*/
|
||||||
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
||||||
|
const { ObjectId: MongooseObjectId } = require('mongoose').mongo
|
||||||
const OError = require('@overleaf/o-error')
|
const OError = require('@overleaf/o-error')
|
||||||
const metrics = require('metrics-sharelatex')
|
const metrics = require('metrics-sharelatex')
|
||||||
const async = require('async')
|
const async = require('async')
|
||||||
|
@ -106,6 +107,8 @@ const ProjectGetter = {
|
||||||
query = { _id: ObjectId(project_id) }
|
query = { _id: ObjectId(project_id) }
|
||||||
} else if (project_id instanceof ObjectId) {
|
} else if (project_id instanceof ObjectId) {
|
||||||
query = { _id: project_id }
|
query = { _id: project_id }
|
||||||
|
} else if (project_id instanceof MongooseObjectId) {
|
||||||
|
query = { _id: ObjectId(project_id.toString()) }
|
||||||
} else if (
|
} else if (
|
||||||
(project_id != null ? project_id.toString().length : undefined) === 24
|
(project_id != null ? project_id.toString().length : undefined) === 24
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
||||||
|
const { ObjectId: MongooseObjectId } = require('mongoose').mongo
|
||||||
const metrics = require('metrics-sharelatex')
|
const metrics = require('metrics-sharelatex')
|
||||||
const logger = require('logger-sharelatex')
|
const logger = require('logger-sharelatex')
|
||||||
const { promisifyAll } = require('../../util/promises')
|
const { promisifyAll } = require('../../util/promises')
|
||||||
|
@ -154,6 +155,8 @@ function normalizeQuery(query) {
|
||||||
}
|
}
|
||||||
if (typeof query === 'string') {
|
if (typeof query === 'string') {
|
||||||
return { _id: ObjectId(query) }
|
return { _id: ObjectId(query) }
|
||||||
|
} else if (query instanceof MongooseObjectId) {
|
||||||
|
return { _id: ObjectId(query.toString()) }
|
||||||
} else if (query instanceof ObjectId) {
|
} else if (query instanceof ObjectId) {
|
||||||
return { _id: query }
|
return { _id: query }
|
||||||
} else if (Array.isArray(query)) {
|
} else if (Array.isArray(query)) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const logger = require('logger-sharelatex')
|
const logger = require('logger-sharelatex')
|
||||||
const OError = require('@overleaf/o-error')
|
const OError = require('@overleaf/o-error')
|
||||||
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
const { db, ObjectId } = require('../../infrastructure/mongodb')
|
||||||
|
const { ObjectId: MongooseObjectId } = require('mongoose').mongo
|
||||||
const metrics = require('metrics-sharelatex')
|
const metrics = require('metrics-sharelatex')
|
||||||
const async = require('async')
|
const async = require('async')
|
||||||
const { callbackify, promisify } = require('util')
|
const { callbackify, promisify } = require('util')
|
||||||
|
@ -196,6 +197,8 @@ const UserUpdater = {
|
||||||
query = { _id: ObjectId(query) }
|
query = { _id: ObjectId(query) }
|
||||||
} else if (query instanceof ObjectId) {
|
} else if (query instanceof ObjectId) {
|
||||||
query = { _id: query }
|
query = { _id: query }
|
||||||
|
} else if (query instanceof MongooseObjectId) {
|
||||||
|
query = { _id: ObjectId(query.toString()) }
|
||||||
} else if (typeof query._id === 'string') {
|
} else if (typeof query._id === 'string') {
|
||||||
query._id = ObjectId(query._id)
|
query._id = ObjectId(query._id)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
*/
|
*/
|
||||||
let UserMembershipViewModel
|
let UserMembershipViewModel
|
||||||
const { ObjectId } = require('mongodb')
|
const { ObjectId } = require('mongodb')
|
||||||
|
const { ObjectId: MongooseObjectId } = require('mongoose').mongo
|
||||||
const UserGetter = require('../User/UserGetter')
|
const UserGetter = require('../User/UserGetter')
|
||||||
|
|
||||||
module.exports = UserMembershipViewModel = {
|
module.exports = UserMembershipViewModel = {
|
||||||
|
@ -27,7 +28,12 @@ module.exports = UserMembershipViewModel = {
|
||||||
if (callback == null) {
|
if (callback == null) {
|
||||||
callback = function(error, viewModel) {}
|
callback = function(error, viewModel) {}
|
||||||
}
|
}
|
||||||
if (!(userOrIdOrEmail instanceof ObjectId)) {
|
if (
|
||||||
|
!(
|
||||||
|
userOrIdOrEmail instanceof ObjectId ||
|
||||||
|
userOrIdOrEmail instanceof MongooseObjectId
|
||||||
|
)
|
||||||
|
) {
|
||||||
// userOrIdOrEmail is a user or an email and can be parsed by #build
|
// userOrIdOrEmail is a user or an email and can be parsed by #build
|
||||||
return callback(null, UserMembershipViewModel.build(userOrIdOrEmail))
|
return callback(null, UserMembershipViewModel.build(userOrIdOrEmail))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue