mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Hotfix 2.0.2 (#130)
This commit is contained in:
parent
fc0c464216
commit
c4104806c3
7 changed files with 169 additions and 0 deletions
60
server-ce/hotfix/2.0.2/1-anon-upload.patch
Normal file
60
server-ce/hotfix/2.0.2/1-anon-upload.patch
Normal file
|
@ -0,0 +1,60 @@
|
|||
--- UploadsRouter.js
|
||||
+++ UploadsRouter.js
|
||||
@@ -1,13 +1,3 @@
|
||||
-/* eslint-disable
|
||||
- no-unused-vars,
|
||||
-*/
|
||||
-// TODO: This file was created by bulk-decaffeinate.
|
||||
-// Fix any style issues and re-enable lint.
|
||||
-/*
|
||||
- * decaffeinate suggestions:
|
||||
- * DS102: Remove unnecessary code created because of implicit returns
|
||||
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
- */
|
||||
const AuthorizationMiddleware = require('../Authorization/AuthorizationMiddleware')
|
||||
const AuthenticationController = require('../Authentication/AuthenticationController')
|
||||
const ProjectUploadController = require('./ProjectUploadController')
|
||||
@@ -28,18 +18,30 @@ module.exports = {
|
||||
ProjectUploadController.uploadProject
|
||||
)
|
||||
|
||||
- return webRouter.post(
|
||||
- '/Project/:Project_id/upload',
|
||||
- RateLimiterMiddleware.rateLimit({
|
||||
- endpointName: 'file-upload',
|
||||
- params: ['Project_id'],
|
||||
- maxRequests: 200,
|
||||
- timeInterval: 60 * 30
|
||||
- }),
|
||||
- AuthenticationController.requireLogin(),
|
||||
- AuthorizationMiddleware.ensureUserCanWriteProjectContent,
|
||||
- ProjectUploadController.multerMiddleware,
|
||||
- ProjectUploadController.uploadFile
|
||||
- )
|
||||
+ const fileUploadEndpoint = '/Project/:Project_id/upload'
|
||||
+ const fileUploadRateLimit = RateLimiterMiddleware.rateLimit({
|
||||
+ endpointName: 'file-upload',
|
||||
+ params: ['Project_id'],
|
||||
+ maxRequests: 200,
|
||||
+ timeInterval: 60 * 30
|
||||
+ })
|
||||
+ if (Settings.allowAnonymousReadAndWriteSharing) {
|
||||
+ webRouter.post(
|
||||
+ fileUploadEndpoint,
|
||||
+ fileUploadRateLimit,
|
||||
+ AuthorizationMiddleware.ensureUserCanWriteProjectContent,
|
||||
+ ProjectUploadController.multerMiddleware,
|
||||
+ ProjectUploadController.uploadFile
|
||||
+ )
|
||||
+ } else {
|
||||
+ webRouter.post(
|
||||
+ fileUploadEndpoint,
|
||||
+ fileUploadRateLimit,
|
||||
+ AuthenticationController.requireLogin(),
|
||||
+ AuthorizationMiddleware.ensureUserCanWriteProjectContent,
|
||||
+ ProjectUploadController.multerMiddleware,
|
||||
+ ProjectUploadController.uploadFile
|
||||
+ )
|
||||
+ }
|
||||
}
|
||||
}
|
11
server-ce/hotfix/2.0.2/2-read-only-access.patch
Normal file
11
server-ce/hotfix/2.0.2/2-read-only-access.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- TokenAccessHandler.js
|
||||
+++ TokenAccessHandler.js
|
||||
@@ -255,7 +255,7 @@ const TokenAccessHandler = {
|
||||
|
||||
getV1DocPublishedInfo(token, callback) {
|
||||
// default to allowing access
|
||||
- if (!Settings.apis || !Settings.apis.v1) {
|
||||
+ if (!Settings.apis.v1 || !Settings.apis.v1.url) {
|
||||
return callback(null, { allow: true })
|
||||
}
|
||||
V1Api.request(
|
11
server-ce/hotfix/2.0.2/3-url-linking-1.patch
Normal file
11
server-ce/hotfix/2.0.2/3-url-linking-1.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- Features.js
|
||||
+++ Features.js
|
||||
@@ -53,6 +53,8 @@ module.exports = Features = {
|
||||
return Settings.apis.references.url != null
|
||||
case 'saml':
|
||||
return Settings.enableSaml
|
||||
+ case 'link-url':
|
||||
+ return Settings.apis.linkedUrlProxy && Settings.apis.linkedUrlProxy.url
|
||||
default:
|
||||
throw new Error(`unknown feature: ${feature}`)
|
||||
}
|
20
server-ce/hotfix/2.0.2/4-url-linking-2.patch
Normal file
20
server-ce/hotfix/2.0.2/4-url-linking-2.patch
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- new-file-modal.pug
|
||||
+++ new-file-modal.pug
|
||||
@@ -21,11 +21,12 @@ script(type='text/ng-template', id='newFileModalTemplate')
|
||||
i.fa.fa-fw.fa-folder-open
|
||||
|
|
||||
| From Another Project
|
||||
- li(ng-class="type == 'url' ? 'active' : null")
|
||||
- a(href, ng-click="type = 'url'")
|
||||
- i.fa.fa-fw.fa-globe
|
||||
- |
|
||||
- | From External URL
|
||||
+ if hasFeature('link-url')
|
||||
+ li(ng-class="type == 'url' ? 'active' : null")
|
||||
+ a(href, ng-click="type = 'url'")
|
||||
+ i.fa.fa-fw.fa-globe
|
||||
+ |
|
||||
+ | From External URL
|
||||
!= moduleIncludes("newFileModal:selector", locals)
|
||||
|
||||
td(class="modal-new-file--body modal-new-file--body-{{type}}")
|
26
server-ce/hotfix/2.0.2/5-disable-analytics-1.patch
Normal file
26
server-ce/hotfix/2.0.2/5-disable-analytics-1.patch
Normal file
|
@ -0,0 +1,26 @@
|
|||
--- AnalyticsController.js
|
||||
+++ AnalyticsController.js
|
||||
@@ -3,9 +3,13 @@ const Errors = require('../Errors/Errors')
|
||||
const AuthenticationController = require('../Authentication/AuthenticationController')
|
||||
const InstitutionsAPI = require('../Institutions/InstitutionsAPI')
|
||||
const GeoIpLookup = require('../../infrastructure/GeoIpLookup')
|
||||
+const Features = require('../../infrastructure/Features')
|
||||
|
||||
module.exports = {
|
||||
updateEditingSession(req, res, next) {
|
||||
+ if (!Features.hasFeature('analytics')) {
|
||||
+ return res.send(204)
|
||||
+ }
|
||||
const userId = AuthenticationController.getLoggedInUserId(req)
|
||||
const { projectId } = req.params
|
||||
let countryCode = null
|
||||
@@ -28,6 +32,9 @@ module.exports = {
|
||||
},
|
||||
|
||||
recordEvent(req, res, next) {
|
||||
+ if (!Features.hasFeature('analytics')) {
|
||||
+ return res.send(204)
|
||||
+ }
|
||||
const userId =
|
||||
AuthenticationController.getLoggedInUserId(req) || req.sessionID
|
||||
AnalyticsManager.recordEvent(userId, req.params.event, req.body, error =>
|
10
server-ce/hotfix/2.0.2/6-disable-analytics-2.patch
Normal file
10
server-ce/hotfix/2.0.2/6-disable-analytics-2.patch
Normal file
|
@ -0,0 +1,10 @@
|
|||
--- Features.js
|
||||
+++ Features.js
|
||||
@@ -41,6 +41,7 @@ module.exports = Features = {
|
||||
case 'templates-server-pro':
|
||||
return Settings.overleaf == null
|
||||
case 'affiliations':
|
||||
+ case 'analytics':
|
||||
// Checking both properties is needed for the time being to allow
|
||||
// enabling the feature in web-api and disabling in Server Pro
|
||||
// see https://github.com/overleaf/web-internal/pull/2127
|
31
server-ce/hotfix/2.0.2/Dockerfile
Normal file
31
server-ce/hotfix/2.0.2/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
|||
FROM sharelatex/sharelatex:2.0.1
|
||||
|
||||
|
||||
# Patch 1: Fixes anonymous link sharing
|
||||
ADD 1-anon-upload.patch /var/www/sharelatex/web/app/src/Features/Uploads/1-anon-upload.patch
|
||||
RUN cd /var/www/sharelatex/web/app/src/Features/Uploads/ && \
|
||||
patch < 1-anon-upload.patch
|
||||
|
||||
|
||||
# Patch 2: Fixes read-only access
|
||||
ADD 2-read-only-access.patch /var/www/sharelatex/web/app/src/Features/TokenAccess/3-read-only-access.patch
|
||||
RUN cd /var/www/sharelatex/web/app/src/Features/TokenAccess/ && \
|
||||
patch < 3-read-only-access.patch
|
||||
|
||||
|
||||
# Patch 3: Fixes url linking
|
||||
ADD 3-url-linking-1.patch /var/www/sharelatex/web/app/src/infrastructure/6-url-linking-1.patch
|
||||
RUN cd /var/www/sharelatex/web/app/src/infrastructure/ && \
|
||||
patch < 6-url-linking-1.patch
|
||||
ADD 4-url-linking-2.patch /var/www/sharelatex/web/app/views/project/editor/7-url-linking-2.patch
|
||||
RUN cd /var/www/sharelatex/web/app/views/project/editor/ && \
|
||||
patch < 7-url-linking-2.patch
|
||||
|
||||
|
||||
# Patch 4: Disables analytics
|
||||
ADD 5-disable-analytics-1.patch /var/www/sharelatex/web/app/src/Features/Analytics/8-disable-analytics-1.patch
|
||||
RUN cd /var/www/sharelatex/web/app/src/Features/Analytics/ && \
|
||||
patch < 8-disable-analytics-1.patch
|
||||
ADD 6-disable-analytics-2.patch /var/www/sharelatex/web/app/src/infrastructure/9-disable-analytics-2.patch
|
||||
RUN cd /var/www/sharelatex/web/app/src/infrastructure/ && \
|
||||
patch < 9-disable-analytics-2.patch
|
Loading…
Reference in a new issue