Skip to content

Commit

Permalink
Single session iteration
Browse files Browse the repository at this point in the history
* Iterate one session document at a time ... useful when we get lots of users auth'ed
* Rename function to more like MongoDB function.
* Very, very, very simple search algorithm... this may be expanded in later stages if applicable and probably will not be matching query feature set in MongoDB/*mongoose*
* Reinvert sort order... more like on a User page listing comments instead of Discussion comments
* Fix view to a list group a little more
* Remove some unnecessary items from view paste
* Remove an orphaned identifier

NOTE:
* More changes probably ... more error checking too

Post OpenUserJS#1446 ... related to OpenUserJS#604
  • Loading branch information
Martii committed Jul 7, 2018
1 parent 6a89ba3 commit 4079374
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 32 deletions.
4 changes: 2 additions & 2 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ var db = mongoose.connection;

var moment = require('moment');
var _ = require('underscore');
var listDataSessions = require('./libs/modifySessions').listData;
var findSessionData = require('./libs/modifySessions').findSessionData;

var dbOptions = {};
if (isPro) {
Expand Down Expand Up @@ -515,7 +515,7 @@ if (secured) {

function ttlSanity() {
var options = {};
listDataSessions(sessionStore, options, function (aErr) {
findSessionData({}, sessionStore, options, function (aErr) {
if (aErr) {
console.error('some error during ttlSanity', aErr);
return;
Expand Down
15 changes: 10 additions & 5 deletions controllers/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var loadPassport = require('../libs/passportLoader').loadPassport;
var strategyInstances = require('../libs/passportLoader').strategyInstances;
var statusCodePage = require('../libs/templateHelpers').statusCodePage;
var updateSessions = require('../libs/modifySessions').update;
var listDataSessions = require('../libs/modifySessions').listData;
var findSessionData = require('../libs/modifySessions').findSessionData;
var pageMetadata = require('../libs/templateHelpers').pageMetadata;

//--- Configuration inclusions
Expand Down Expand Up @@ -371,9 +371,9 @@ exports.adminSessionActiveView = function (aReq, aRes, aNext) {
var options = {};
var authedUser = aReq.session.user;
var tasks = [];
var username = null;

var store = aReq.sessionStore;
var sessionColl = store.db.collection('sessions');

// Session
options.authedUser = authedUser = modelParser.parseUser(authedUser);
Expand All @@ -390,13 +390,18 @@ exports.adminSessionActiveView = function (aReq, aRes, aNext) {
return;
}

username = aReq.query.q;

// Page metadata
pageMetadata(options, ['Sessions', 'Admin']);

options.searchBarPlaceholder = 'Search Sessions';
options.searchBarValue = username;

//--- Tasks

tasks.push(function (aCallback) {
listDataSessions(store, options, function (aErr) {
findSessionData({ username: username }, store, options, function (aErr) {
if (aErr) {
statusCodePage(aReq, aRes, aNext, {
statusCode: 500,
Expand Down Expand Up @@ -429,10 +434,10 @@ exports.adminSessionActiveView = function (aReq, aRes, aNext) {
aCallback();
});

// Sort oldest to newest similar to comments
// Sort newest to oldest
tasks.push(function (aCallback) {
options.sessionList = _.sortBy(options.sessionList, function (aSession) {
return aSession.passport.oujsOptions.since;
return -aSession.passport.oujsOptions.since;
});

aCallback();
Expand Down
53 changes: 36 additions & 17 deletions libs/modifySessions.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ var isDbg = require('../libs/debug').isDbg;
var moment = require('moment');

var settings = require('../models/settings.json');
var findMeta = require('../controllers/scriptStorage').findMeta;

//
// This library allows for the modifications of user sessions
Expand Down Expand Up @@ -212,7 +213,7 @@ exports.destroy = function (aReq, aUser, aCallback) {
}, aCallback);
};

exports.listData = function (aStore, aOptions, aCallback) {
exports.findSessionData = function (aQuery, aStore, aOptions, aCallback) {
var sessionColl = aStore.db.collection('sessions');

sessionColl.find({
Expand All @@ -227,35 +228,53 @@ exports.listData = function (aStore, aOptions, aCallback) {
return;
}

aUserSessions.toArray(function (aErr, aSessionsData) {
aOptions.sessionList = [];
aOptions.sessionList = [];

aUserSessions.each(function (aErr, aSessionData) {
var data = null;
var rQuery = null;

if (aErr) {
aCallback(aErr);
return;
}

aSessionsData.forEach(function (aElement, aIndex) {
var data = JSON.parse(aElement.session);
if (!aSessionData) {
aCallback();
return;
}

if (data) {
//
data = JSON.parse(aSessionData.session);

if (!data.passport) {
data.passport = {};
}
if (data) {

if (!data.passport.oujsOptions) {
data.passport.oujsOptions = {};
}
if (!data.passport) {
data.passport = {};
}

data.passport.oujsOptions.username = data.username;
data.passport.oujsOptions.sid = aElement._id;
if (!data.passport.oujsOptions) {
data.passport.oujsOptions = {};
}

aOptions.sessionList.push(data);
});

aCallback();
data.passport.oujsOptions.username = data.username || findMeta(data.user, 'name');
data.passport.oujsOptions.sid = aSessionData._id;

// Very simple query filter search check to start.
// Currently only looking in `data.passport.oujsOptions.username`.
if (aQuery && aQuery.username) {
rQuery = new RegExp('^' + aQuery.username, 'i');

if (rQuery.test(data.passport.oujsOptions.username)) {
aOptions.sessionList.push(data);
}
} else {
aOptions.sessionList.push(data);
}

}

});
});
}
Expand Down
3 changes: 2 additions & 1 deletion views/includes/session.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="session-sid list-group-item">
<div class="session-item list-group-item">
<article>
<div class="row">
<div class="session-avatar col-sm-2">
Expand Down Expand Up @@ -56,3 +56,4 @@
</div>
</article>
</div>
<hr>
15 changes: 8 additions & 7 deletions views/pages/adminSessionPage.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,17 @@ <h2 class="page-heading">
{{{paginationRendered}}}
</div>
{{/paginationRendered}}
<div class="panel panel-default">
<div class="session-area list-group">
{{#sessionList}}
{{> includes/session.html }}
{{/sessionList}}
{{^sessionList}}
<div class="panel">
<div class="panel-body">
<em>This user hasn't added any sessions yet.</em>
</div>
</div>
{{/sessionList}}
</div>
{{#paginationRendered}}
<div class="text-center">
Expand All @@ -30,19 +37,13 @@ <h2 class="page-heading">
</div>
<div class="col-sm-4">
{{> includes/searchBarPanel.html }}
{{#isFlagged}}
{{#isAdmin}}
{{> includes/flagAdminToolFlaggedFilters.html }}
{{/isAdmin}}
{{/isFlagged}}
</div>
</div>
</div>
{{> includes/footer.html }}
{{#paginationRendered}}
{{> includes/scripts/showTopPagination.html }}
{{/paginationRendered}}
{{> includes/scripts/tableTrLinkScript.html }}
{{> includes/scripts/formControlClear.html }}
</body>
</html>

0 comments on commit 4079374

Please sign in to comment.