diff --git a/public/templates/footer.tpl b/public/templates/footer.tpl index b2c15d5e80..ec91e29634 100644 --- a/public/templates/footer.tpl +++ b/public/templates/footer.tpl @@ -59,7 +59,7 @@ gravatar.src = data['picture']+"?s=24"; - $('#user_label').attr('href','/users/'+data.uid+'/'+data['username']); + $('#user_label').attr('href','/users/'+data['username']); user_label.innerHTML = ''; user_label.appendChild(gravatar); diff --git a/src/webserver.js b/src/webserver.js index fd3382f991..7dfb8812a0 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -339,20 +339,29 @@ passport.deserializeUser(function(uid, done) { return res.redirect('/403'); var requestedUserId = req.user.uid; - - if(req.params.id != req.user.uid) - requestedUserId = req.params.id; - - user.getUserData(requestedUserId, function(data) { - if(data) - { - data.joindate = utils.relativeTime(data.joindate); - data.uid = requestedUserId; - callback({user:data}); - } - else - callback({user:{}}); + + var username = req.params.id; + + user.get_uid_by_username(username, function(uid) { + + if(uid != req.user.uid) + requestedUserId = uid; + + user.getUserData(requestedUserId, function(data) { + if(data) + { + data.joindate = utils.relativeTime(data.joindate); + data.uid = requestedUserId; + callback({user:data}); + } + else + callback({user:{}}); + }); + }); + + + } @@ -387,27 +396,27 @@ passport.deserializeUser(function(uid, done) { return res.redirect('/403'); }); - app.get('/users/:uid', handleUserProfile); - app.get('/users/:uid/:username*', handleUserProfile); + + app.get('/users/:username*', handleUserProfile); function handleUserProfile(req, res) { - console.log("OPPA 1"); - if(req.params.uid == 0) { + + if(!req.params.username) { res.send("User doesn't exist!"); return; } - user.getUserData(req.params.uid, function(data) { - if(data) { - if(req.url.indexOf(data.username) == -1) - res.redirect(301, '/users/'+req.params.uid+'/'+data.username); - else - res.send(templates['header'] + '' + templates['footer']); - } - else { - res.send("User doesn't exist! /users/"+req.params.uid); - } + user.get_uid_by_username(req.params.username, function(uid) { + + user.getUserData(uid, function(data) { + if(data) { + res.send(templates['header'] + '' + templates['footer']); + } + else { + res.send("User doesn't exist! /users/"+req.params.username); + } + }); }); }