mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-15 04:14:47 +00:00
wip refactor
This commit is contained in:
parent
749658a916
commit
b0a10c948c
4 changed files with 23 additions and 6 deletions
|
@ -71,12 +71,19 @@ module.exports = AuthenticationController =
|
|||
|
||||
# TODO: perhaps should produce an error if the current user is not present
|
||||
getLoggedInUserId: (req) ->
|
||||
user = AuthenticationController.getSessionUser(req)
|
||||
if user?
|
||||
return user._id
|
||||
else
|
||||
return null
|
||||
|
||||
getSessionUser: (req) ->
|
||||
# old sessions
|
||||
if req?.session?.user?._id?
|
||||
return req.session.user._id.toString()
|
||||
return req.session.user
|
||||
# new passport sessions
|
||||
else if req?.session?.passport?.user?._id?
|
||||
return req.session.passport.user._id.toString()
|
||||
return req.session.passport.user
|
||||
# neither
|
||||
else
|
||||
return null
|
||||
|
|
|
@ -169,6 +169,10 @@ module.exports = (app, webRouter, apiRouter)->
|
|||
|
||||
res.locals.getLoggedInUserId = ->
|
||||
return AuthenticationController.getLoggedInUserId(req)
|
||||
res.locals.isUserLoggedIn = ->
|
||||
return AuthenticationController.isUserLoggedIn(req)
|
||||
res.locals.getSessionUser = ->
|
||||
return AuthenticationController.getSessionUser(req)
|
||||
next()
|
||||
|
||||
webRouter.use (req, res, next) ->
|
||||
|
|
|
@ -13,7 +13,7 @@ nav.navbar.navbar-default
|
|||
.navbar-collapse.collapse(collapse="navCollapsed")
|
||||
|
||||
ul.nav.navbar-nav.navbar-right
|
||||
if (session && session.user && session.user.isAdmin)
|
||||
if (getSessionUser() && getSessionUser().isAdmin)
|
||||
li.dropdown(class="subdued", dropdown)
|
||||
a.dropdown-toggle(href, dropdown-toggle)
|
||||
| Admin
|
||||
|
@ -25,7 +25,7 @@ nav.navbar.navbar-default
|
|||
a(href="/admin/user") Manage Users
|
||||
|
||||
each item in nav.header
|
||||
if ((item.only_when_logged_in && session && session.user) || (item.only_when_logged_out && (!session || !session.user)) || (!item.only_when_logged_out && !item.only_when_logged_in))
|
||||
if ((item.only_when_logged_in && getSessionUser()) || (item.only_when_logged_out && (!getSessionUser())) || (!item.only_when_logged_out && !item.only_when_logged_in))
|
||||
if item.dropdown
|
||||
li.dropdown(class=item.class, dropdown)
|
||||
a.dropdown-toggle(href, dropdown-toggle)
|
||||
|
|
|
@ -8,8 +8,14 @@ rclient = redis.createClient(Settings.redis.web)
|
|||
module.exports =
|
||||
|
||||
getUserSessions: (user, callback=(err, sessionsSet)->) ->
|
||||
rclient.smembers "UserSessions:#{user._id}", (err, result) ->
|
||||
return callback(err, result)
|
||||
console.log ">> user, get sessions", user._id
|
||||
setTimeout(
|
||||
()->
|
||||
rclient.smembers "UserSessions:#{user._id}", (err, result) ->
|
||||
console.log ">>", result
|
||||
return callback(err, result)
|
||||
, 1000
|
||||
)
|
||||
|
||||
clearUserSessions: (user, callback=(err)->) ->
|
||||
sessionSetKey = "UserSessions:#{user._id}"
|
||||
|
|
Loading…
Reference in a new issue