mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
return user settings in api
This commit is contained in:
@@ -375,38 +375,59 @@ accountsController.accountEdit = function(req, res, next) {
|
||||
};
|
||||
|
||||
accountsController.accountSettings = function(req, res, next) {
|
||||
accountsController.getBaseUser(req.params.userslug, req.uid, function(err, userData) {
|
||||
var userData;
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
accountsController.getBaseUser(req.params.userslug, req.uid, next);
|
||||
},
|
||||
function(_userData, next) {
|
||||
userData = _userData;
|
||||
if (!userData) {
|
||||
return helpers.notFound(req, res);
|
||||
}
|
||||
async.parallel({
|
||||
settings: function(next) {
|
||||
user.getSettings(userData.uid, next);
|
||||
},
|
||||
userGroups: function(next) {
|
||||
groups.getUserGroups([userData.uid], next);
|
||||
},
|
||||
languages: function(next) {
|
||||
languages.list(next);
|
||||
}
|
||||
}, next);
|
||||
},
|
||||
function(results, next) {
|
||||
userData.languages = results.languages;
|
||||
userData.userGroups = results.userGroups[0];
|
||||
plugins.fireHook('filter:user.settings', {settings: results.settings, uid: req.uid}, next);
|
||||
},
|
||||
function(data, next) {
|
||||
userData.settings = data.settings;
|
||||
userData.disableEmailSubscriptions = parseInt(meta.config.disableEmailSubscriptions, 10) === 1;
|
||||
next();
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
if (!userData) {
|
||||
return helpers.notFound(req, res);
|
||||
}
|
||||
userData.dailyDigestFreqOptions = [
|
||||
{value: 'off', name: '[[user:digest_off]]', selected: 'off' === userData.settings.dailyDigestFreq},
|
||||
{value: 'day', name: '[[user:digest_daily]]', selected: 'day' === userData.settings.dailyDigestFreq},
|
||||
{value: 'week', name: '[[user:digest_weekly]]', selected: 'week' === userData.settings.dailyDigestFreq},
|
||||
{value: 'month', name: '[[user:digest_monthly]]', selected: 'month' === userData.settings.dailyDigestFreq}
|
||||
];
|
||||
|
||||
async.parallel({
|
||||
settings: function(next) {
|
||||
plugins.fireHook('filter:user.settings', [], next);
|
||||
},
|
||||
userGroups: function(next) {
|
||||
groups.getUserGroups([userData.uid], next);
|
||||
},
|
||||
languages: function(next) {
|
||||
languages.list(next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
userData.settings = results.settings;
|
||||
userData.languages = results.languages;
|
||||
userData.userGroups = results.userGroups[0];
|
||||
|
||||
userData.disableEmailSubscriptions = parseInt(meta.config.disableEmailSubscriptions, 10) === 1;
|
||||
|
||||
res.render('account/settings', userData);
|
||||
userData.userGroups.forEach(function(group) {
|
||||
group.selected = group.name === userData.settings.groupTitle;
|
||||
});
|
||||
|
||||
userData.languages.forEach(function(language) {
|
||||
language.selected = language.code === userData.settings.language;
|
||||
});
|
||||
|
||||
res.render('account/settings', userData);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user