mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Set redirect when redirecting from restricted
This commit is contained in:
parent
8089bb55a4
commit
8a4352fff2
3 changed files with 9 additions and 4 deletions
|
@ -189,10 +189,11 @@ module.exports = AuthenticationController =
|
||||||
Metrics.inc "user.login.failed"
|
Metrics.inc "user.login.failed"
|
||||||
callback()
|
callback()
|
||||||
|
|
||||||
_setRedirectInSession: (req) ->
|
_setRedirectInSession: (req, value) ->
|
||||||
target = if Object.keys(req.query) then "#{req.path}?#{querystring.stringify(req.query)}" else req.path
|
if !value?
|
||||||
|
value = if Object.keys(req.query) > 0 then "#{req.path}?#{querystring.stringify(req.query)}" else req.path
|
||||||
if req.session?
|
if req.session?
|
||||||
req.session.postLoginRedirect = target
|
req.session.postLoginRedirect = value
|
||||||
|
|
||||||
_getRedirectFromSession: (req) ->
|
_getRedirectFromSession: (req) ->
|
||||||
return req?.session?.postLoginRedirect || null
|
return req?.session?.postLoginRedirect || null
|
||||||
|
|
|
@ -108,5 +108,5 @@ module.exports = AuthorizationMiddlewear =
|
||||||
logger.log {from: from}, "redirecting to login"
|
logger.log {from: from}, "redirecting to login"
|
||||||
redirect_to = "/login"
|
redirect_to = "/login"
|
||||||
if from?
|
if from?
|
||||||
redirect_to += "?redir=#{encodeURIComponent(from)}"
|
AuthenticationController._setRedirectInSession(req, from)
|
||||||
res.redirect redirect_to
|
res.redirect redirect_to
|
||||||
|
|
|
@ -541,6 +541,10 @@ describe "AuthenticationController", ->
|
||||||
@AuthenticationController._setRedirectInSession(@req)
|
@AuthenticationController._setRedirectInSession(@req)
|
||||||
expect(@req.session.postLoginRedirect).to.equal "/somewhere?one=1"
|
expect(@req.session.postLoginRedirect).to.equal "/somewhere?one=1"
|
||||||
|
|
||||||
|
it 'should set the supplied value', ->
|
||||||
|
@AuthenticationController._setRedirectInSession(@req, '/somewhere/specific')
|
||||||
|
expect(@req.session.postLoginRedirect).to.equal "/somewhere/specific"
|
||||||
|
|
||||||
describe '_getRedirectFromSession', ->
|
describe '_getRedirectFromSession', ->
|
||||||
beforeEach ->
|
beforeEach ->
|
||||||
@req = {session: {postLoginRedirect: "/a?b=c"}}
|
@req = {session: {postLoginRedirect: "/a?b=c"}}
|
||||||
|
|
Loading…
Reference in a new issue