Merge branch 'master' into pr-fix-link-rewriting

This commit is contained in:
James Allen 2017-12-04 10:17:15 +00:00
commit c09bf0a04d

View file

@ -1,6 +1,9 @@
request = require("./request")
_ = require("underscore")
settings = require("settings-sharelatex")
{db, ObjectId} = require("../../../../app/js/infrastructure/mongojs")
UserModel = require("../../../../app/js/models/User").User
AuthenticationManager = require("../../../../app/js/Features/Authentication/AuthenticationManager")
count = 0
@ -17,20 +20,20 @@ class User
login: (callback = (error) ->) ->
@getCsrfToken (error) =>
return callback(error) if error?
@request.post {
url: "/register" # Register will log in, but also ensure user exists
json:
email: @email
password: @password
}, (error, response, body) =>
filter = {@email}
options = {upsert: true, new: true, setDefaultsOnInsert: true}
UserModel.findOneAndUpdate filter, {}, options, (error, user) =>
return callback(error) if error?
db.users.findOne {email: @email}, (error, user) =>
AuthenticationManager.setUserPassword user._id, @password, (error) =>
return callback(error) if error?
@id = user?._id?.toString()
@_id = user?._id?.toString()
@first_name = user?.first_name
@referal_id = user?.referal_id
callback()
@request.post {
url: "/login"
json: { @email, @password }
}, callback
logout: (callback = (error) ->) ->
@getCsrfToken (error) =>
@ -104,8 +107,10 @@ class User
}, (error, response, body) ->
return callback(error) if error?
if !body?.project_id?
console.error "SOMETHING WENT WRONG CREATING PROJECT", response.statusCode, response.headers["location"], body
callback(null, body.project_id)
error = new Error("SOMETHING WENT WRONG CREATING PROJECT", response.statusCode, response.headers["location"], body)
callback error
else
callback(null, body.project_id)
deleteProject: (project_id, callback=(error)) ->
@request.delete {
@ -161,13 +166,10 @@ class User
getCsrfToken: (callback = (error) ->) ->
@request.get {
url: "/register"
url: "/dev/csrf"
}, (err, response, body) =>
return callback(err) if err?
csrfMatches = body.match("window.csrfToken = \"(.*?)\";")
if !csrfMatches?
return callback(new Error("no csrf token found"))
@csrfToken = csrfMatches[1]
@csrfToken = body
@request = @request.defaults({
headers:
"x-csrf-token": @csrfToken