Skip to content

Commit 34b762a

Browse files
committed
Some Code styling and refactor
* Make this code look more like the others and place some in sessions lib * Remove some unused identifiers from prior patch * Retag some comments a bit * Some STYLEGUIDE.md compliance * Stop slinging around some functions on return again Post OpenUserJS#1393
1 parent 6d72dec commit 34b762a

File tree

2 files changed

+46
-29
lines changed

2 files changed

+46
-29
lines changed

controllers/user.js

+15-24
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ var countTask = require('../libs/tasks').countTask;
5353
var pageMetadata = require('../libs/templateHelpers').pageMetadata;
5454
var orderDir = require('../libs/templateHelpers').orderDir;
5555

56+
var extendSession = require('../libs/modifySessions').extend;
57+
5658
//--- Configuration inclusions
5759
var userRoles = require('../models/userRoles.json');
5860
var strategies = require('./strategies.json');
@@ -115,7 +117,6 @@ exports.exist = function (aReq, aRes) {
115117

116118
// API - Request for extending a logged in user session
117119
exports.extend = function (aReq, aRes, aNext) {
118-
//
119120
var authedUser = aReq.session.user;
120121

121122
if (!authedUser) {
@@ -127,32 +128,22 @@ exports.extend = function (aReq, aRes, aNext) {
127128
_id: authedUser._id,
128129
sessionsIds: { "$in": [ aReq.session._id ] }
129130
}, function (aErr, aUser) {
130-
var options = {};
131-
var user = null;
132-
133-
if (aErr) {
134-
console.error(aErr);
135-
statusCodePage(aReq, aRes, aNext, {
136-
statusCode: 500,
137-
statusMessage: 'Server Error'
138-
});
139-
return;
140-
}
141-
142-
if (!aUser) {
143-
aNext();
144-
return;
145-
}
131+
extendSession(aReq, aUser, function (aErr) {
132+
if (aErr) {
133+
if (aErr === 'Already extended') {
134+
aNext();
135+
return;
136+
}
146137

147-
if (aReq.session.cookie.expires) {
148-
aReq.session.cookie.expires = false;
149-
aReq.session.save();
138+
statusCodePage(aReq, aRes, aNext, {
139+
statusCode: 500,
140+
statusMessage: aErr
141+
});
142+
return;
143+
}
150144

151145
aRes.redirect('back');
152-
} else {
153-
aNext();
154-
return;
155-
}
146+
});
156147
});
157148
};
158149

libs/modifySessions.js

+31-5
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function serializeUser(aUser) {
3131
return userObj;
3232
}
3333

34-
// Add a new session id to the user model
34+
// Add a single new session id to the user model
3535
exports.add = function (aReq, aUser, aCallback) {
3636
var store = aReq.sessionStore;
3737

@@ -62,7 +62,26 @@ exports.add = function (aReq, aUser, aCallback) {
6262
}
6363
};
6464

65-
// Remove a session id from the user model **and** the session store
65+
// Extend a single session
66+
exports.extend = function (aReq, aUser, aCallback) {
67+
if (!aUser) {
68+
aCallback('No User');
69+
return;
70+
}
71+
72+
if (!aReq.session.cookie.expires) {
73+
aCallback('Already extended');
74+
return;
75+
}
76+
77+
// NOTE: Currently allow on any session with
78+
// no additional User restrictions yet
79+
80+
aReq.session.cookie.expires = false;
81+
aReq.session.save(aCallback);
82+
};
83+
84+
// Remove a single session id from the user model **and** the session store
6685
exports.remove = function (aReq, aUser, aCallback) {
6786
var pos = aUser && aUser.sessionIds ?
6887
aUser.sessionIds.indexOf(aReq.sessionID) : -1;
@@ -86,13 +105,17 @@ exports.update = function (aReq, aUser, aCallback) {
86105
var store = aReq.sessionStore;
87106
var userObj = aUser ? serializeUser(aUser) : null;
88107

89-
if (!aUser || !aUser.sessionIds) { return aCallback('No sessions', null); }
108+
if (!aUser || !aUser.sessionIds) {
109+
aCallback('No sessions', null);
110+
return;
111+
}
90112

91113
async.each(aUser.sessionIds, function (aId, aCb) {
92114
store.get(aId, function (aErr, aSess) {
93115
// Invalid session, will be removed on login
94116
if (aErr || !aSess) {
95-
return aCb(null);
117+
aCb(null);
118+
return;
96119
}
97120

98121
aSess.user = userObj;
@@ -113,7 +136,10 @@ exports.destroy = function (aReq, aUser, aCallback) {
113136
}
114137
};
115138

116-
if (!aUser || !aUser.sessionIds) { return aCallback('No sessions', null); }
139+
if (!aUser || !aUser.sessionIds) {
140+
aCallback('No sessions', null);
141+
return;
142+
}
117143

118144
async.each(aUser.sessionIds, function (aId, aCb) {
119145
store.set(aId, emptySess, aCb);

0 commit comments

Comments
 (0)