logout/login changes, updateHeader changes

v1.18.x
Baris Usakli 12 years ago
parent fbfdf561fc
commit 0b0d64b52e

@ -82,9 +82,12 @@
var templates = require('./public/src/templates.js'), var templates = require('./public/src/templates.js'),
webserver = require('./src/webserver.js'), webserver = require('./src/webserver.js'),
SocketIO = require('socket.io').listen(global.server, { log: false, transports: ['websocket', 'xhr-polling', 'jsonp-polling', 'flashsocket']}),
websockets = require('./src/websockets.js'), websockets = require('./src/websockets.js'),
plugins = require('./src/plugins'); // Don't remove this - plugins initializes itself plugins = require('./src/plugins'); // Don't remove this - plugins initializes itself
websockets.init(SocketIO);
global.templates = {}; global.templates = {};
templates.init([ templates.init([
'header', 'footer', 'logout', 'outgoing', 'admin/header', 'admin/footer', 'admin/index', 'header', 'footer', 'logout', 'outgoing', 'admin/header', 'admin/footer', 'admin/index',

@ -17,7 +17,9 @@ var socket,
config = data; config = data;
if(socket) { if(socket) {
socket.disconnect(); socket.disconnect();
socket.socket.connect(); setTimeout(function() {
socket.socket.connect();
}, 200);
} else { } else {
socket = io.connect(config.socket.address); socket = io.connect(config.socket.address);
@ -28,8 +30,8 @@ var socket,
app.username = data.username; app.username = data.username;
app.showLoginMessage(); app.showLoginMessage();
socket.emit('api:updateHeader', { socket.emit('api:updateHeader', {
fields: ['username', 'picture', 'userslug'] fields: ['username', 'picture', 'userslug']
}); });
}); });
socket.on('event:alert', function (data) { socket.on('event:alert', function (data) {
@ -49,10 +51,15 @@ var socket,
}, 1000); }, 1000);
reconnecting = false; reconnecting = false;
reconnectTries = 0; reconnectTries = 0;
socket.emit('api:updateHeader', {
fields: ['username', 'picture', 'userslug']
});
} }
socket.emit('api:updateHeader', {
fields: ['username', 'picture', 'userslug']
});
});
socket.on('event:disconnect', function() {
socket.socket.connect();
}); });
socket.on('reconnecting', function (data) { socket.on('reconnecting', function (data) {

@ -3,8 +3,7 @@
stats_topics = document.getElementById('stats_topics'), stats_topics = document.getElementById('stats_topics'),
stats_posts = document.getElementById('stats_posts'), stats_posts = document.getElementById('stats_posts'),
stats_online = document.getElementById('stats_online'), stats_online = document.getElementById('stats_online'),
user_label = document.getElementById('user_label'), user_label = document.getElementById('user_label');
right_menu = document.getElementById('right-menu');
socket.emit('user.count', {}); socket.emit('user.count', {});
socket.on('user.count', function(data) { socket.on('user.count', function(data) {
@ -25,6 +24,7 @@
socket.emit('api:updateHeader', { socket.emit('api:updateHeader', {
fields: ['username', 'picture', 'userslug'] fields: ['username', 'picture', 'userslug']
}); });
socket.on('api:updateHeader', function(data) { socket.on('api:updateHeader', function(data) {
jQuery('#search-button').on('click', function() { jQuery('#search-button').on('click', function() {
jQuery('#search-fields').removeClass('hide').show(); jQuery('#search-fields').removeClass('hide').show();
@ -42,14 +42,19 @@
}); });
}); });
var rightMenu = $('#right-menu'), var loggedInMenu = $('#logged-in-menu'),
isLoggedIn = data.uid > 0; isLoggedIn = data.uid > 0;
if (isLoggedIn) { if (isLoggedIn) {
jQuery('.nodebb-loggedin').show(); jQuery('.nodebb-loggedin').show();
jQuery('.nodebb-loggedout').hide(); jQuery('.nodebb-loggedout').hide();
var userLabel = rightMenu.find('#user_label'); $('#logged-out-menu').addClass('hide');
$('#logged-in-menu').removeClass('hide');
$('#search-button').show();
var userLabel = loggedInMenu.find('#user_label');
if (userLabel.length) { if (userLabel.length) {
if (data['userslug']) if (data['userslug'])
userLabel.attr('href', '/user/' + data['userslug']); userLabel.attr('href', '/user/' + data['userslug']);
@ -57,18 +62,8 @@
userLabel.find('img').attr('src', data['picture']); userLabel.find('img').attr('src', data['picture']);
if (data['username']) if (data['username'])
userLabel.find('span').html(data['username']); userLabel.find('span').html(data['username']);
} else {
rightMenu.empty(); $('#logout-link').on('click', function() {
var userli = $('<li> \
<a id="user_label" href="/user/' + data['userslug'] + '"> \
<img src="' + data['picture'] + '"/> \
<span>' + data['username'] + '</span> \
</a> \
</li>');
rightMenu.append(userli);
var logoutli = $('<li><a href="#">Log out</a></li>');
logoutli.on('click', function() {
var csrf_token = $('#csrf_token').val(); var csrf_token = $('#csrf_token').val();
$.post(RELATIVE_PATH + '/logout', { $.post(RELATIVE_PATH + '/logout', {
@ -77,23 +72,16 @@
window.location = RELATIVE_PATH + '/'; window.location = RELATIVE_PATH + '/';
}); });
}); });
rightMenu.append(logoutli);
} }
} else { } else {
$('#search-button').hide(); $('#search-button').hide();
jQuery('.nodebb-loggedin').hide(); jQuery('.nodebb-loggedin').hide();
jQuery('.nodebb-loggedout').show(); jQuery('.nodebb-loggedout').show();
rightMenu.html(''); $('#logged-out-menu').removeClass('hide');
$('#logged-in-menu').addClass('hide');
var registerEl = document.createElement('li'),
loginEl = document.createElement('li');
registerEl.innerHTML = '<a href="/register">Register</a>';
loginEl.innerHTML = '<a href="/login">Login</a>';
right_menu.appendChild(registerEl);
right_menu.appendChild(loginEl);
} }
$('#main-nav a,#right-menu a').off('click').on('click', function() { $('#main-nav a,#right-menu a').off('click').on('click', function() {

@ -65,8 +65,8 @@
<button id="search-button" type="button" class="btn btn-link"><i class="icon-search"></i></button> <button id="search-button" type="button" class="btn btn-link"><i class="icon-search"></i></button>
</form> </form>
<ul id="right-menu" class="nav navbar-nav navbar-right"> <ul id="logged-in-menu" class="nav navbar-nav navbar-right hide">
<li class="notifications dropdown text-center hidden-xs"> <li id="notifications-list" class="notifications dropdown text-center hidden-xs">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" id="notif_dropdown"><i class="icon-circle-blank"></i></a> <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="notif_dropdown"><i class="icon-circle-blank"></i></a>
<ul id="notif-list" class="dropdown-menu" aria-labelledby="notif_dropdown"> <ul id="notif-list" class="dropdown-menu" aria-labelledby="notif_dropdown">
<li> <li>
@ -74,6 +74,26 @@
</li> </li>
</ul> </ul>
</li> </li>
<li>
<a id="user_label" href="">
<img src=""/>
<span></span>
</a>
</li>
<li id="logout-link">
<a href="#">Log out</a>
</li>
</ul>
<ul id="logged-out-menu" class="nav navbar-nav navbar-right">
<li id="register-link">
<a href="/register">Register</a>
</li>
<li id="login-link">
<a href="/login">Login</a>
</li>
</ul> </ul>
<div class="pagination-block"> <div class="pagination-block">

@ -94,6 +94,9 @@
if (req.user && req.user.uid > 0) { if (req.user && req.user.uid > 0) {
winston.info('[Auth] Session ' + req.sessionID + ' logout (uid: ' + req.user.uid + ')'); winston.info('[Auth] Session ' + req.sessionID + ' logout (uid: ' + req.user.uid + ')');
var ws = require('./../websockets');
ws.logoutUser(req.user.uid);
req.logout(); req.logout();
} }

@ -1,8 +1,5 @@
var SocketIO = require('socket.io').listen(global.server, {
log: false, var cookie = require('cookie'),
transports: ['websocket', 'xhr-polling', 'jsonp-polling', 'flashsocket']
}),
cookie = require('cookie'),
express = require('express'), express = require('express'),
user = require('./user.js'), user = require('./user.js'),
Groups = require('./groups'), Groups = require('./groups'),
@ -32,11 +29,26 @@ var SocketIO = require('socket.io').listen(global.server, {
plugins = require('./plugins'), plugins = require('./plugins'),
winston = require('winston'); winston = require('winston');
(function(io) { //(function(io) {
var users = {}, var users = {},
userSockets = {}, userSockets = {},
rooms = {}; rooms = {};
module.exports.logoutUser = function(uid) {
if(userSockets[uid] && userSockets[uid].length) {
for(var i=0; i< userSockets[uid].length; ++i) {
userSockets[uid][i].emit('event:disconnect');
userSockets[uid][i].disconnect();
if(!userSockets[uid])
return;
}
}
}
module.exports.init = function(io) {
global.io = io; global.io = io;
io.sockets.on('connection', function(socket) { io.sockets.on('connection', function(socket) {
@ -886,4 +898,4 @@ var SocketIO = require('socket.io').listen(global.server, {
}); });
}); });
}(SocketIO)); }

Loading…
Cancel
Save