mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-03 20:45:58 +01:00
replace self links client side
This commit is contained in:
@@ -90,6 +90,7 @@ var socket,
|
||||
|
||||
socket.on('event:connect', function (data) {
|
||||
app.username = data.username;
|
||||
app.userslug = data.userslug;
|
||||
app.uid = data.uid;
|
||||
app.isAdmin = data.isAdmin;
|
||||
|
||||
@@ -285,6 +286,16 @@ var socket,
|
||||
});
|
||||
};
|
||||
|
||||
app.replaceSelfLinks = function(selector) {
|
||||
selector = selector || $('a');
|
||||
selector.each(function() {
|
||||
var href = $(this).attr('href')
|
||||
if (href && app.userslug) {
|
||||
$(this).attr('href', href.replace(/\[self\]/g, app.userslug));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
app.processPage = function () {
|
||||
app.populateOnlineUsers();
|
||||
|
||||
@@ -299,6 +310,8 @@ var socket,
|
||||
|
||||
app.createStatusTooltips();
|
||||
|
||||
app.replaceSelfLinks();
|
||||
|
||||
setTimeout(function () {
|
||||
window.scrollTo(0, 1); // rehide address bar on mobile after page load completes.
|
||||
}, 100);
|
||||
|
||||
@@ -52,20 +52,6 @@ middleware.redirectToAccountIfLoggedIn = function(req, res, next) {
|
||||
}
|
||||
};
|
||||
|
||||
middleware.redirectToSelf = function(req, res, next) {
|
||||
if (req.user && req.params.userslug === '[self]') {
|
||||
user.getUserField(req.user.uid, 'userslug', function (err, userslug) {
|
||||
if(res.locals.isAPI) {
|
||||
res.json(302, '/user/' + userslug + (req.params.section ? '/' + req.params.section : ''));
|
||||
} else {
|
||||
res.redirect('/user/' + userslug + (req.params.section ? '/' + req.params.section : ''));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
};
|
||||
|
||||
middleware.addSlug = function(req, res, next) {
|
||||
function redirect(method, id, name) {
|
||||
method(id, 'slug', function(err, slug) {
|
||||
|
||||
@@ -73,8 +73,6 @@ function categoryRoutes(app, middleware, controllers) {
|
||||
}
|
||||
|
||||
function accountRoutes(app, middleware, controllers) {
|
||||
app.get('/user/:userslug/:section?', middleware.redirectToSelf);
|
||||
app.get('/api/user/:userslug/:section?', middleware.redirectToSelf);
|
||||
|
||||
app.get('/user/:userslug', middleware.buildHeader, middleware.checkGlobalPrivacySettings, controllers.accounts.getAccount);
|
||||
app.get('/api/user/:userslug', middleware.checkGlobalPrivacySettings, controllers.accounts.getAccount);
|
||||
|
||||
@@ -79,8 +79,8 @@ Sockets.init = function(server) {
|
||||
socket.join('uid_' + uid);
|
||||
|
||||
async.parallel({
|
||||
username: function(next) {
|
||||
user.getUserField(uid, 'username', next);
|
||||
user: function(next) {
|
||||
user.getUserFields(uid, ['username', 'userslug'], next);
|
||||
},
|
||||
isAdmin: function(next) {
|
||||
user.isAdministrator(uid, next);
|
||||
@@ -88,7 +88,8 @@ Sockets.init = function(server) {
|
||||
}, function(err, userData) {
|
||||
socket.emit('event:connect', {
|
||||
status: 1,
|
||||
username: userData.username,
|
||||
username: userData.user.username,
|
||||
userslug: userData.user.userslug,
|
||||
isAdmin: userData.isAdmin,
|
||||
uid: uid
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user