pr_13427.patch 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. --- services/web/app/src/Features/Editor/EditorHttpController.js
  2. +++ services/web/app/src/Features/Editor/EditorHttpController.js
  3. @@ -73,6 +73,7 @@ async function joinProject(req, res, next) {
  4. if (isRestrictedUser) {
  5. project.owner = { _id: project.owner._id }
  6. project.members = []
  7. + project.invites = []
  8. }
  9. // Only show the 'renamed or deleted' message once
  10. if (project.deletedByExternalDataSource) {
  11. --- services/web/app/src/Features/Project/ProjectEditorHandler.js
  12. +++ services/web/app/src/Features/Project/ProjectEditorHandler.js
  13. @@ -48,19 +48,13 @@
  14. deletedDocsFromDocstore
  15. ),
  16. members: [],
  17. - invites,
  18. + invites: this.buildInvitesView(invites),
  19. imageName:
  20. project.imageName != null
  21. ? Path.basename(project.imageName)
  22. : undefined,
  23. }
  24. - if (result.invites == null) {
  25. - result.invites = []
  26. - }
  27. - result.invites.forEach(invite => {
  28. - delete invite.token
  29. - })
  30. ;({ owner, ownerFeatures, members } =
  31. this.buildOwnerAndMembersViews(members))
  32. result.owner = owner
  33. @@ -99,7 +93,7 @@
  34. let owner = null
  35. let ownerFeatures = null
  36. const filteredMembers = []
  37. - for (const member of Array.from(members || [])) {
  38. + for (const member of members || []) {
  39. if (member.privilegeLevel === 'owner') {
  40. ownerFeatures = member.user.features
  41. owner = this.buildUserModelView(member.user, 'owner')
  42. @@ -128,24 +122,15 @@
  43. },
  44. buildFolderModelView(folder) {
  45. - let file
  46. const fileRefs = _.filter(folder.fileRefs || [], file => file != null)
  47. return {
  48. _id: folder._id,
  49. name: folder.name,
  50. - folders: Array.from(folder.folders || []).map(childFolder =>
  51. + folders: (folder.folders || []).map(childFolder =>
  52. this.buildFolderModelView(childFolder)
  53. ),
  54. - fileRefs: (() => {
  55. - const result = []
  56. - for (file of Array.from(fileRefs)) {
  57. - result.push(this.buildFileModelView(file))
  58. - }
  59. - return result
  60. - })(),
  61. - docs: Array.from(folder.docs || []).map(doc =>
  62. - this.buildDocModelView(doc)
  63. - ),
  64. + fileRefs: fileRefs.map(file => this.buildFileModelView(file)),
  65. + docs: (folder.docs || []).map(doc => this.buildDocModelView(doc)),
  66. }
  67. },
  68. @@ -164,4 +149,21 @@
  69. name: doc.name,
  70. }
  71. },
  72. +
  73. + buildInvitesView(invites) {
  74. + if (invites == null) {
  75. + return []
  76. + }
  77. + return invites.map(invite =>
  78. + _.pick(invite, [
  79. + '_id',
  80. + 'createdAt',
  81. + 'email',
  82. + 'expires',
  83. + 'privileges',
  84. + 'projectId',
  85. + 'sendingUserId',
  86. + ])
  87. + )
  88. + },
  89. }