mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-06 08:37:07 +02:00
closes #6678
This commit is contained in:
@@ -65,6 +65,17 @@ helpers.getUserDataByUserSlug = function (userslug, callerUID, callback) {
|
||||
globalMod: true,
|
||||
admin: true,
|
||||
},
|
||||
}, {
|
||||
id: 'sessions',
|
||||
route: 'sessions',
|
||||
name: '[[pages:account/sessions]]',
|
||||
visibility: {
|
||||
self: true,
|
||||
other: false,
|
||||
moderator: false,
|
||||
globalMod: true,
|
||||
admin: true,
|
||||
},
|
||||
}, {
|
||||
id: 'consent',
|
||||
route: 'consent',
|
||||
|
||||
@@ -4,9 +4,39 @@ var async = require('async');
|
||||
|
||||
var db = require('../../database');
|
||||
var user = require('../../user');
|
||||
var helpers = require('../helpers');
|
||||
var accountHelpers = require('./helpers');
|
||||
|
||||
var sessionController = {};
|
||||
|
||||
sessionController.get = function (req, res, callback) {
|
||||
var userData;
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
|
||||
},
|
||||
function (_userData, next) {
|
||||
userData = _userData;
|
||||
if (!userData) {
|
||||
return callback();
|
||||
}
|
||||
|
||||
async.parallel({
|
||||
sessions: async.apply(user.auth.getSessions, userData.uid, req.sessionID),
|
||||
}, next);
|
||||
},
|
||||
function (data) {
|
||||
userData.sessions = data.sessions;
|
||||
|
||||
userData.title = '[[pages:account/sessions]]';
|
||||
userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[pages:account/sessions]]' }]);
|
||||
|
||||
res.render('account/sessions', userData);
|
||||
},
|
||||
], callback);
|
||||
};
|
||||
|
||||
sessionController.revoke = function (req, res, next) {
|
||||
if (!req.params.hasOwnProperty('uuid')) {
|
||||
return next();
|
||||
|
||||
@@ -33,7 +33,7 @@ module.exports = function (app, middleware, controllers) {
|
||||
setupPageRoute(app, '/user/:userslug/uploads', middleware, accountMiddlewares, controllers.accounts.uploads.get);
|
||||
setupPageRoute(app, '/user/:userslug/consent', middleware, accountMiddlewares, controllers.accounts.consent.get);
|
||||
setupPageRoute(app, '/user/:userslug/blocks', middleware, accountMiddlewares, controllers.accounts.blocks.getBlocks);
|
||||
|
||||
setupPageRoute(app, '/user/:userslug/sessions', middleware, accountMiddlewares, controllers.accounts.sessions.get);
|
||||
app.delete('/api/user/:userslug/session/:uuid', [middleware.exposeUid, middleware.ensureSelfOrGlobalPrivilege], controllers.accounts.sessions.revoke);
|
||||
|
||||
setupPageRoute(app, '/notifications', middleware, [middleware.authenticate], controllers.accounts.notifications.get);
|
||||
|
||||
Reference in New Issue
Block a user