From 8f8694ad94fa971607552d95a8eb855dc00b4cc0 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 27 Sep 2018 16:41:45 +0100 Subject: [PATCH] iterate over owned projects in a more robust way --- .../coffee/Features/Project/ProjectDetailsHandler.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee index 3525bcddbc..4946d8126e 100644 --- a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee +++ b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee @@ -78,12 +78,14 @@ module.exports = ProjectDetailsHandler = # with a unique name. But that requires thinking through how we would handle incoming projects from # dropbox for example. ensureProjectNameIsUnique: (user_id, name, suffixes = [], callback = (error, name, changed)->) -> - ProjectGetter.findAllUsersProjects user_id, {name: 1}, (error, allUsersProjects) -> + ProjectGetter.findAllUsersProjects user_id, {name: 1}, (error, allUsersProjectNames) -> return callback(error) if error? - {owned, readAndWrite, readOnly, tokenReadAndWrite, tokenReadOnly} = allUsersProjects + # allUsersProjectNames is returned as a hash {owned: [name1, name2, ...], readOnly: [....]} + # collect all of the names and flatten them into a single array + projectNameList = _.flatten(_.values(allUsersProjectNames)) # create a set of all project names allProjectNames = new Set() - for projectName in owned.concat(readAndWrite, readOnly, tokenReadAndWrite, tokenReadOnly) + for projectName in projectNameList allProjectNames.add(projectName) isUnique = (x) -> !allProjectNames.has(x) # check if the supplied name is already unique