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);
+ }
+ });
});
}