wip refactor

This commit is contained in:
Shane Kilkelly 2016-09-06 15:22:13 +01:00
parent 749658a916
commit b0a10c948c
4 changed files with 23 additions and 6 deletions

View file

@ -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

View file

@ -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) ->

View file

@ -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)

View file

@ -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}"