diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 981ad0126..deb476c2e 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -47,6 +47,19 @@ const SharePage = createClass({ this.props.brew.shareId; }, + renderEditLink : function(){ + if(!this.props.brew.editId) return; + + let editLink = this.props.brew.editId; + if(this.props.brew.googleId && !this.props.brew.stubbed) { + editLink = this.props.brew.googleId + editLink; + } + + return + edit + ; + }, + render : function(){ return
@@ -64,13 +77,14 @@ const SharePage = createClass({ source - + view - + {this.renderEditLink()} + download - + clone to new diff --git a/package-lock.json b/package-lock.json index 9d248637b..79f4e34f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,8 +40,8 @@ "mongoose": "^8.3.3", "nanoid": "3.3.4", "nconf": "^0.12.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "react-frame-component": "^4.1.3", "react-router-dom": "6.23.0", "sanitize-filename": "1.6.3", @@ -11945,9 +11945,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -11956,15 +11956,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-frame-component": { @@ -12531,9 +12531,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } diff --git a/package.json b/package.json index 6782ff132..ced448158 100644 --- a/package.json +++ b/package.json @@ -112,8 +112,8 @@ "mongoose": "^8.3.3", "nanoid": "3.3.4", "nconf": "^0.12.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "react-frame-component": "^4.1.3", "react-router-dom": "6.23.0", "sanitize-filename": "1.6.3", diff --git a/server/app.js b/server/app.js index c8fec4bc4..e04df77a6 100644 --- a/server/app.js +++ b/server/app.js @@ -23,9 +23,9 @@ const { splitTextStyleAndMetadata } = require('../shared/helpers.js'); const sanitizeBrew = (brew, accessType)=>{ brew._id = undefined; brew.__v = undefined; - if(accessType !== 'edit'){ + if(accessType !== 'edit' && accessType !== 'shareAuthor') { brew.editId = undefined; - } + } return brew; }; @@ -307,7 +307,6 @@ app.get('/new/:id', asyncHandler(getBrew('share')), (req, res, next)=>{ //Share Page app.get('/share/:id', asyncHandler(getBrew('share')), asyncHandler(async (req, res, next)=>{ const { brew } = req; - req.ogMeta = { ...defaultMetaTags, title : req.brew.title || 'Untitled Brew', description : req.brew.description || 'No description.', @@ -326,7 +325,8 @@ app.get('/share/:id', asyncHandler(getBrew('share')), asyncHandler(async (req, r await HomebrewModel.increaseView({ shareId: brew.shareId }); } }; - sanitizeBrew(req.brew, 'share'); + + brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share'); splitTextStyleAndMetadata(req.brew); return next(); }));