|
|
|
@ -22,14 +22,10 @@ var fs = require('fs'),
|
|
|
|
|
|
|
|
|
|
function getUserDataByUserSlug(userslug, callerUID, callback) {
|
|
|
|
|
user.getUidByUserslug(userslug, function(err, uid) {
|
|
|
|
|
if (err) {
|
|
|
|
|
if (err || !uid) {
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!uid) {
|
|
|
|
|
return callback(null, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async.parallel({
|
|
|
|
|
userData : function(next) {
|
|
|
|
|
user.getUserData(uid, next);
|
|
|
|
@ -50,7 +46,7 @@ function getUserDataByUserSlug(userslug, callerUID, callback) {
|
|
|
|
|
groups.getUserGroups([uid], next);
|
|
|
|
|
}
|
|
|
|
|
}, function(err, results) {
|
|
|
|
|
if(err || !results.userData) {
|
|
|
|
|
if (err || !results.userData) {
|
|
|
|
|
return callback(err || new Error('[[error:invalid-uid]]'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -111,17 +107,13 @@ accountsController.getUserByUID = function(req, res, next) {
|
|
|
|
|
var uid = req.params.uid ? req.params.uid : 0;
|
|
|
|
|
|
|
|
|
|
async.parallel({
|
|
|
|
|
settings: async.apply(user.getSettings, uid),
|
|
|
|
|
userData: async.apply(user.getUserData, uid)
|
|
|
|
|
userData: async.apply(user.getUserData, uid),
|
|
|
|
|
settings: async.apply(user.getSettings, uid)
|
|
|
|
|
}, function(err, results) {
|
|
|
|
|
if (err) {
|
|
|
|
|
if (err || !results.userData) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!results.userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
|
|
|
|
|
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
|
|
|
|
|
|
|
|
|
@ -141,14 +133,10 @@ accountsController.getAccount = function(req, res, next) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getUserDataByUserSlug(req.params.userslug, req.uid, function (err, userData) {
|
|
|
|
|
if (err) {
|
|
|
|
|
if (err || !userData) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (req.uid !== parseInt(userData.uid, 10)) {
|
|
|
|
|
user.incrementUserFieldBy(userData.uid, 'profileviews', 1);
|
|
|
|
|
}
|
|
|
|
@ -208,7 +196,7 @@ accountsController.getFollowers = function(req, res, next) {
|
|
|
|
|
getFollow('account/followers', 'followers', req, res, next);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function getFollow(tpl, name, req, res, next) {
|
|
|
|
|
function getFollow(tpl, name, req, res, callback) {
|
|
|
|
|
var userData;
|
|
|
|
|
|
|
|
|
|
async.waterfall([
|
|
|
|
@ -218,14 +206,14 @@ function getFollow(tpl, name, req, res, next) {
|
|
|
|
|
function(data, next) {
|
|
|
|
|
userData = data;
|
|
|
|
|
if (!userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
var method = name === 'following' ? 'getFollowing' : 'getFollowers';
|
|
|
|
|
user[method](userData.uid, 0, 49, next);
|
|
|
|
|
}
|
|
|
|
|
], function(err, users) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
userData.users = users;
|
|
|
|
@ -254,14 +242,10 @@ accountsController.getTopics = function(req, res, next) {
|
|
|
|
|
|
|
|
|
|
accountsController.getGroups = function(req, res, next) {
|
|
|
|
|
accountsController.getBaseUser(req.params.userslug, req.uid, function(err, userData) {
|
|
|
|
|
if (err) {
|
|
|
|
|
if (err || !userData) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
groups.getUserGroups([userData.uid], function(err, groupsData) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
@ -284,13 +268,11 @@ function getFromUserSet(tpl, set, method, type, req, res, next) {
|
|
|
|
|
accountsController.getBaseUser(req.params.userslug, req.uid, next);
|
|
|
|
|
}
|
|
|
|
|
}, function(err, results) {
|
|
|
|
|
if (err) {
|
|
|
|
|
if (err || !results.userData) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var userData = results.userData;
|
|
|
|
|
if (!userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var setName = 'uid:' + userData.uid + ':' + set;
|
|
|
|
|
|
|
|
|
@ -385,7 +367,7 @@ accountsController.accountEdit = function(req, res, next) {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
accountsController.accountSettings = function(req, res, next) {
|
|
|
|
|
accountsController.accountSettings = function(req, res, callback) {
|
|
|
|
|
var userData;
|
|
|
|
|
async.waterfall([
|
|
|
|
|
function(next) {
|
|
|
|
@ -394,7 +376,7 @@ accountsController.accountSettings = function(req, res, next) {
|
|
|
|
|
function(_userData, next) {
|
|
|
|
|
userData = _userData;
|
|
|
|
|
if (!userData) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
async.parallel({
|
|
|
|
|
settings: function(next) {
|
|
|
|
@ -421,7 +403,7 @@ accountsController.accountSettings = function(req, res, next) {
|
|
|
|
|
}
|
|
|
|
|
], function(err) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
userData.dailyDigestFreqOptions = [
|
|
|
|
@ -433,74 +415,23 @@ accountsController.accountSettings = function(req, res, next) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
userData.bootswatchSkinOptions = [
|
|
|
|
|
{
|
|
|
|
|
"name": "Default",
|
|
|
|
|
"value": "default"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Cerulean",
|
|
|
|
|
"value": "cerulean"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Cosmo",
|
|
|
|
|
"value": "cosmo"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Cyborg",
|
|
|
|
|
"value": "cyborg"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Darkly",
|
|
|
|
|
"value": "darkly"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Flatly",
|
|
|
|
|
"value": "flatly"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Journal",
|
|
|
|
|
"value": "journal"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Lumen",
|
|
|
|
|
"value": "lumen"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Paper",
|
|
|
|
|
"value": "paper"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Readable",
|
|
|
|
|
"value": "readable"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Sandstone",
|
|
|
|
|
"value": "sandstone"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Simplex",
|
|
|
|
|
"value": "simplex"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Slate",
|
|
|
|
|
"value": "slate"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Spacelab",
|
|
|
|
|
"value": "spacelab"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Superhero",
|
|
|
|
|
"value": "superhero"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "United",
|
|
|
|
|
"value": "united"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Yeti",
|
|
|
|
|
"value": "yeti"
|
|
|
|
|
}
|
|
|
|
|
{ "name": "Default", "value": "default" },
|
|
|
|
|
{ "name": "Cerulean", "value": "cerulean" },
|
|
|
|
|
{ "name": "Cosmo", "value": "cosmo" },
|
|
|
|
|
{ "name": "Cyborg", "value": "cyborg" },
|
|
|
|
|
{ "name": "Darkly", "value": "darkly" },
|
|
|
|
|
{ "name": "Flatly", "value": "flatly" },
|
|
|
|
|
{ "name": "Journal", "value": "journal" },
|
|
|
|
|
{ "name": "Lumen", "value": "lumen" },
|
|
|
|
|
{ "name": "Paper", "value": "paper" },
|
|
|
|
|
{ "name": "Readable", "value": "readable" },
|
|
|
|
|
{ "name": "Sandstone", "value": "sandstone" },
|
|
|
|
|
{ "name": "Simplex", "value": "simplex" },
|
|
|
|
|
{ "name": "Slate", "value": "slate" },
|
|
|
|
|
{ "name": "Spacelab", "value": "spacelab" },
|
|
|
|
|
{ "name": "Superhero", "value": "superhero" },
|
|
|
|
|
{ "name": "United", "value": "united" },
|
|
|
|
|
{ "name": "Yeti", "value": "yeti" }
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
userData.bootswatchSkinOptions.forEach(function(skin) {
|
|
|
|
@ -574,9 +505,9 @@ accountsController.getNotifications = function(req, res, next) {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
accountsController.getChats = function(req, res, next) {
|
|
|
|
|
if (parseInt(meta.config.disableChat) === 1) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
accountsController.getChats = function(req, res, callback) {
|
|
|
|
|
if (parseInt(meta.config.disableChat, 10) === 1) {
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// In case a userNAME is passed in instead of a slug, the route should not 404
|
|
|
|
@ -590,7 +521,7 @@ accountsController.getChats = function(req, res, next) {
|
|
|
|
|
recentChats: async.apply(messaging.getRecentChats, req.user.uid, 0, 19)
|
|
|
|
|
}, function(err, results) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Remove entries if they were already present as a followed contact
|
|
|
|
@ -618,7 +549,7 @@ accountsController.getChats = function(req, res, next) {
|
|
|
|
|
async.apply(user.getUidByUserslug, req.params.userslug),
|
|
|
|
|
function(toUid, next) {
|
|
|
|
|
if (!toUid || parseInt(toUid, 10) === parseInt(req.user.uid, 10)) {
|
|
|
|
|
return helpers.notFound(req, res);
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async.parallel({
|
|
|
|
@ -634,7 +565,7 @@ accountsController.getChats = function(req, res, next) {
|
|
|
|
|
}
|
|
|
|
|
], function(err, data) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res.render('chats', {
|
|
|
|
|