Merge pull request #1071 from sharelatex/sk-enable-git-bridge-in-v2

Enable git-bridge in v2

GitOrigin-RevId: 24586c7c80b53ae171199ecde538df794f78ecc7
This commit is contained in:
Shane Kilkelly 2018-11-14 11:08:15 +00:00 committed by sharelatex
parent 6cd35d66d5
commit 81b09c7800
10 changed files with 68 additions and 1 deletions

View file

@ -369,6 +369,8 @@ module.exports = ProjectController =
showTestControls: req.query?.tc == 'true' || user.isAdmin
brandVariation: brandVariation
allowedImageNames: Settings.allowedImageNames || []
gitBridgePublicBaseUrl: Settings.gitBridgePublicBaseUrl
showGitBridge: req.query?.gitbridge == 'true' || user.isAdmin
timer.done()
_buildProjectList: (allProjects, v1Projects = [])->

View file

@ -12,6 +12,8 @@ module.exports = Features =
return not Features.externalAuthenticationSystemUsed() or Settings.overleaf?
when 'github-sync'
return Settings.enableGithubSync
when 'git-bridge'
return Settings.enableGitBridge
when 'v1-return-message'
return Settings.accountMerge? and Settings.overleaf?
when 'custom-togglers'

View file

@ -43,6 +43,7 @@ UserSchema = new Schema
versioning: { type:Boolean, default: Settings.defaultFeatures.versioning }
dropbox: { type:Boolean, default: Settings.defaultFeatures.dropbox }
github: { type:Boolean, default: Settings.defaultFeatures.github }
gitBridge: { type:Boolean, default: Settings.defaultFeatures.gitBridge }
compileTimeout: { type:Number, default: Settings.defaultFeatures.compileTimeout }
compileGroup: { type:String, default: Settings.defaultFeatures.compileGroup }
templates: { type:Boolean, default: Settings.defaultFeatures.templates }

View file

@ -135,6 +135,7 @@ block requirejs
window.trackChangesState = data.trackChangesState;
window.wikiEnabled = #{!!(settings.apis.wiki && settings.apis.wiki.url)};
window.richTextEnabled = #{richTextEnabled}
window.gitBridgePublicBaseUrl = '#{gitBridgePublicBaseUrl}'
window.requirejs = {
"paths" : {
"moment": "libs/#{lib('moment')}",

View file

@ -167,6 +167,8 @@ module.exports = settings =
url: v1Api.url
user: v1Api.user
pass: v1Api.pass
v1_history:
url: "http://#{process.env['V1_HISTORY_HOST'] or "localhost"}:3100/api"
templates:
user_id: process.env.TEMPLATES_USER_ID or "5395eb7aad1f29a88756c7f2"
@ -213,6 +215,8 @@ module.exports = settings =
defaultFeatures: defaultFeatures =
collaborators: -1
dropbox: true
github: true
gitBridge: true
versioning: true
compileTimeout: 180
compileGroup: "standard"

View file

@ -77,6 +77,7 @@
"nodemailer-ses-transport": "^1.3.0",
"nvd3": "^1.8.6",
"optimist": "0.6.1",
"overleaf-error-type": "git+https://github.com/overleaf/overleaf-error-type.git",
"passport": "^0.3.2",
"passport-google-oauth20": "^1.0.0",
"passport-ldapauth": "^0.6.0",

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -0,0 +1,25 @@
const { db } = require('../app/js/infrastructure/mongojs')
const logger = require('logger-sharelatex')
logger.logger.level('error')
logger.log({}, 'Updating users in mongo')
db.users.update(
{
'features.github': true
},
{
$set: { 'features.gitBridge': true }
},
function(err, result) {
if (err) {
logger.err({ err: err, result: result }, 'Error updating users in mongo')
return
}
logger.log(
{ result: result },
'Updated users who have github to have gitBridge too'
)
process.exit(0)
}
)

View file

@ -16,6 +16,7 @@ module.exports =
dropbox: false
versioning: false
github: true
gitBridge: true
templates: false
references: false
referencesSearch: false
@ -28,6 +29,7 @@ module.exports =
dropbox: false
versioning: false
github: false
gitBridge: false
templates: false
references: false
referencesSearch: false
@ -40,6 +42,7 @@ module.exports =
dropbox: true
versioning: true
github: true
gitBridge: true
templates: true
references: true
referencesSearch: true
@ -52,6 +55,7 @@ module.exports =
dropbox: true
versioning: true
github: true
gitBridge: true
templates: true
references: true
referencesSearch: true

View file

@ -28,6 +28,33 @@ describe "AuthorizationMiddlewear", ->
@ObjectId.isValid.withArgs(@project_id).returns true
@next = sinon.stub()
describe "_getUserId", ->
beforeEach ->
@req = {}
it "should get the user from session", (done) ->
@AuthenticationController.getLoggedInUserId = sinon.stub().returns("1234")
@AuthorizationMiddlewear._getUserId @req, (err, user_id) =>
expect(err).to.not.exist
expect(user_id).to.equal "1234"
done()
it "should get oauth_user from request", (done) ->
@AuthenticationController.getLoggedInUserId = sinon.stub().returns(null)
@req.oauth_user = {_id: "5678"}
@AuthorizationMiddlewear._getUserId @req, (err, user_id) =>
expect(err).to.not.exist
expect(user_id).to.equal "5678"
done()
it "should fall back to null", (done) ->
@AuthenticationController.getLoggedInUserId = sinon.stub().returns(null)
@req.oauth_user = undefined
@AuthorizationMiddlewear._getUserId @req, (err, user_id) =>
expect(err).to.not.exist
expect(user_id).to.equal null
done()
METHODS_TO_TEST = {
"ensureUserCanReadProject": "canUserReadProject"
"ensureUserCanWriteProjectSettings": "canUserWriteProjectSettings"