Merge pull request #2081 from overleaf/cmg-per-user-trash
Add per-user trashed state to project model GitOrigin-RevId: 16a753702d3503eee011dd2adca5dc8df3da87f4
This commit is contained in:
committed by
sharelatex
parent
c1f8ac8de1
commit
6f2b4d3da3
@@ -285,13 +285,13 @@ module.exports = ProjectController = {
|
||||
const user_id = AuthenticationController.getLoggedInUserId(req)
|
||||
return ProjectGetter.findAllUsersProjects(
|
||||
user_id,
|
||||
'name lastUpdated publicAccesLevel archived owner_ref tokens',
|
||||
'name lastUpdated publicAccesLevel archived trashed owner_ref tokens',
|
||||
function(err, projects) {
|
||||
if (err != null) {
|
||||
return next(err)
|
||||
}
|
||||
projects = ProjectController._buildProjectList(projects, user_id)
|
||||
.filter(p => !ProjectHelper.isArchived(p, user_id))
|
||||
.filter(p => !ProjectHelper.isArchivedOrTrashed(p, user_id))
|
||||
.filter(p => !p.isV1Project)
|
||||
.map(p => ({ _id: p.id, name: p.name, accessLevel: p.accessLevel }))
|
||||
|
||||
|
||||
@@ -31,10 +31,27 @@ module.exports = ProjectHelper = {
|
||||
if (Array.isArray(project.archived)) {
|
||||
return project.archived.find(id => id.equals(userId)) !== undefined
|
||||
} else {
|
||||
return project.archived
|
||||
return !!project.archived
|
||||
}
|
||||
},
|
||||
|
||||
isTrashed(project, userId) {
|
||||
userId = ObjectId(userId)
|
||||
|
||||
if (project.trashed) {
|
||||
return project.trashed.find(id => id.equals(userId)) !== undefined
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
|
||||
isArchivedOrTrashed(project, userId) {
|
||||
return (
|
||||
ProjectHelper.isArchived(project, userId) ||
|
||||
ProjectHelper.isTrashed(project, userId)
|
||||
)
|
||||
},
|
||||
|
||||
ensureNameIsUnique(nameList, name, suffixes, maxLength, callback) {
|
||||
// create a set of all project names
|
||||
if (suffixes == null) {
|
||||
|
||||
@@ -308,7 +308,7 @@ module.exports = ProjectLocator = {
|
||||
findUsersProjectByName(user_id, projectName, callback) {
|
||||
return ProjectGetter.findAllUsersProjects(
|
||||
user_id,
|
||||
'name archived',
|
||||
'name archived trashed',
|
||||
function(err, allProjects) {
|
||||
if (typeof error !== 'undefined' && error !== null) {
|
||||
return callback(error)
|
||||
@@ -320,7 +320,7 @@ module.exports = ProjectLocator = {
|
||||
projects,
|
||||
project =>
|
||||
project.name.toLowerCase() === projectName &&
|
||||
!ProjectHelper.isArchived(project, user_id)
|
||||
!ProjectHelper.isArchivedOrTrashed(project, user_id)
|
||||
)
|
||||
logger.log(
|
||||
{ user_id, projectName, totalProjects: projects.length, project },
|
||||
|
||||
Reference in New Issue
Block a user