mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-15 06:33:55 +01:00
if user changes email then check if they have a site licence
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
UserHandler = require("./UserHandler")
|
||||
UserDeleter = require("./UserDeleter")
|
||||
UserLocator = require("./UserLocator")
|
||||
User = require("../../models/User").User
|
||||
@@ -10,7 +11,7 @@ AuthenticationManager = require("../Authentication/AuthenticationManager")
|
||||
UserUpdater = require("./UserUpdater")
|
||||
settings = require "settings-sharelatex"
|
||||
|
||||
module.exports =
|
||||
module.exports = UserController =
|
||||
|
||||
deleteUser: (req, res)->
|
||||
user_id = req.session.user._id
|
||||
@@ -67,7 +68,14 @@ module.exports =
|
||||
else
|
||||
message = req.i18n.translate("problem_changing_email_address")
|
||||
return res.send 500, {message:message}
|
||||
res.sendStatus(200)
|
||||
User.findById user_id, (err, user)->
|
||||
if err?
|
||||
logger.err err:err, user_id:user_id, "error getting user for email update"
|
||||
return res.send 500
|
||||
UserHandler.populateGroupLicenceInvite user, (err)-> #need to refresh this in the background
|
||||
if err?
|
||||
logger.err err:err, "error populateGroupLicenceInvite"
|
||||
res.sendStatus(200)
|
||||
|
||||
logout : (req, res)->
|
||||
metrics.inc "user.logout"
|
||||
|
||||
@@ -6,7 +6,7 @@ logger = require("logger-sharelatex")
|
||||
|
||||
module.exports = UserHandler =
|
||||
|
||||
_populateGroupLicenceInvite: (user, callback)->
|
||||
populateGroupLicenceInvite: (user, callback)->
|
||||
licence = SubscriptionDomainHandler.getLicenceUserCanJoin user
|
||||
if !licence?
|
||||
return callback()
|
||||
@@ -21,5 +21,5 @@ module.exports = UserHandler =
|
||||
NotificationsBuilder.groupPlan(user, licence).create(callback)
|
||||
|
||||
setupLoginData: (user, callback = ->)->
|
||||
@_populateGroupLicenceInvite user, callback
|
||||
@populateGroupLicenceInvite user, callback
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ describe "UserController", ->
|
||||
changeEmailAddress:sinon.stub()
|
||||
@settings =
|
||||
siteUrl: "sharelatex.example.com"
|
||||
@UserHandler =
|
||||
populateGroupLicenceInvite:sinon.stub().callsArgWith(1)
|
||||
@UserController = SandboxedModule.require modulePath, requires:
|
||||
"./UserLocator": @UserLocator
|
||||
"./UserDeleter": @UserDeleter
|
||||
@@ -53,6 +55,7 @@ describe "UserController", ->
|
||||
"../Authentication/AuthenticationManager": @AuthenticationManager
|
||||
"../Referal/ReferalAllocator":@ReferalAllocator
|
||||
"../Subscription/SubscriptionDomainHandler":@SubscriptionDomainHandler
|
||||
"./UserHandler":@UserHandler
|
||||
"settings-sharelatex": @settings
|
||||
"logger-sharelatex": {log:->}
|
||||
"../../infrastructure/Metrics": inc:->
|
||||
@@ -151,7 +154,14 @@ describe "UserController", ->
|
||||
done()
|
||||
@UserController.updateUserSettings @req, @res
|
||||
|
||||
|
||||
it "should call populateGroupLicenceInvite", (done)->
|
||||
@req.body.email = @newEmail.toUpperCase()
|
||||
@UserUpdater.changeEmailAddress.callsArgWith(2)
|
||||
@res.sendStatus = (code)=>
|
||||
code.should.equal 200
|
||||
@UserHandler.populateGroupLicenceInvite.calledWith(@user).should.equal true
|
||||
done()
|
||||
@UserController.updateUserSettings @req, @res
|
||||
|
||||
describe "logout", ->
|
||||
|
||||
|
||||
@@ -29,12 +29,12 @@ describe "UserHandler", ->
|
||||
"../Subscription/SubscriptionDomainHandler":@SubscriptionDomainHandler
|
||||
"../Subscription/SubscriptionGroupHandler":@SubscriptionGroupHandler
|
||||
|
||||
describe "_populateGroupLicenceInvite", ->
|
||||
describe "populateGroupLicenceInvite", ->
|
||||
|
||||
describe "no licence", ->
|
||||
beforeEach (done)->
|
||||
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns()
|
||||
@UserHandler._populateGroupLicenceInvite @user, done
|
||||
@UserHandler.populateGroupLicenceInvite @user, done
|
||||
|
||||
it "should not call NotificationsBuilder", (done)->
|
||||
@NotificationsBuilder.groupPlan.called.should.equal false
|
||||
@@ -49,7 +49,7 @@ describe "UserHandler", ->
|
||||
beforeEach (done)->
|
||||
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
|
||||
@SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, false)
|
||||
@UserHandler._populateGroupLicenceInvite @user, done
|
||||
@UserHandler.populateGroupLicenceInvite @user, done
|
||||
|
||||
it "should create notifcation", (done)->
|
||||
@NotificationsBuilder.groupPlan.calledWith(@user, @licence).should.equal true
|
||||
@@ -62,7 +62,7 @@ describe "UserHandler", ->
|
||||
beforeEach (done)->
|
||||
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
|
||||
@SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, true)
|
||||
@UserHandler._populateGroupLicenceInvite @user, done
|
||||
@UserHandler.populateGroupLicenceInvite @user, done
|
||||
|
||||
it "should create notifcation", (done)->
|
||||
@NotificationsBuilder.groupPlan.called.should.equal false
|
||||
|
||||
Reference in New Issue
Block a user