mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
user.js hint
This commit is contained in:
54
src/user.js
54
src/user.js
@@ -1,3 +1,5 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
var bcrypt = require('bcryptjs'),
|
var bcrypt = require('bcryptjs'),
|
||||||
async = require('async'),
|
async = require('async'),
|
||||||
nconf = require('nconf'),
|
nconf = require('nconf'),
|
||||||
@@ -17,7 +19,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
Emailer = require('./emailer');
|
Emailer = require('./emailer');
|
||||||
|
|
||||||
(function(User) {
|
(function(User) {
|
||||||
'use strict';
|
|
||||||
User.create = function(userData, callback) {
|
User.create = function(userData, callback) {
|
||||||
userData = userData || {};
|
userData = userData || {};
|
||||||
userData.userslug = utils.slugify(userData.username);
|
userData.userslug = utils.slugify(userData.username);
|
||||||
@@ -210,7 +212,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!settings) {
|
if(!settings) {
|
||||||
settings = {}
|
settings = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.showemail = settings.showemail ? parseInt(settings.showemail, 10) !== 0 : false;
|
settings.showemail = settings.showemail ? parseInt(settings.showemail, 10) !== 0 : false;
|
||||||
@@ -220,7 +222,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
|
|
||||||
callback(null, settings);
|
callback(null, settings);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
User.saveSettings = function(uid, data, callback) {
|
User.saveSettings = function(uid, data, callback) {
|
||||||
|
|
||||||
@@ -234,7 +236,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
topicsPerPage: data.topicsPerPage,
|
topicsPerPage: data.topicsPerPage,
|
||||||
postsPerPage: data.postsPerPage
|
postsPerPage: data.postsPerPage
|
||||||
}, callback);
|
}, callback);
|
||||||
}
|
};
|
||||||
|
|
||||||
User.updateLastOnlineTime = function(uid, callback) {
|
User.updateLastOnlineTime = function(uid, callback) {
|
||||||
User.getUserField(uid, 'status', function(err, status) {
|
User.getUserField(uid, 'status', function(err, status) {
|
||||||
@@ -418,7 +420,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
}
|
}
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
User.isEmailAvailable = function(email, callback) {
|
User.isEmailAvailable = function(email, callback) {
|
||||||
db.isObjectField('email:uid', email, function(err, exists) {
|
db.isObjectField('email:uid', email, function(err, exists) {
|
||||||
@@ -561,11 +563,14 @@ var bcrypt = require('bcryptjs'),
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// thanks to @akhoury
|
|
||||||
User.getUsersCSV = function(callback) {
|
User.getUsersCSV = function(callback) {
|
||||||
var csvContent = "";
|
var csvContent = "";
|
||||||
|
|
||||||
db.getObjectValues('username:uid', function(err, uids) {
|
db.getObjectValues('username:uid', function(err, uids) {
|
||||||
|
if(err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
async.each(uids, function(uid, next) {
|
async.each(uids, function(uid, next) {
|
||||||
User.getUserFields(uid, ['email', 'username'], function(err, userData) {
|
User.getUserFields(uid, ['email', 'username'], function(err, userData) {
|
||||||
if(err) {
|
if(err) {
|
||||||
@@ -576,14 +581,10 @@ var bcrypt = require('bcryptjs'),
|
|||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
if (err) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(err, csvContent);
|
callback(err, csvContent);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
User.search = function(query, callback) {
|
User.search = function(query, callback) {
|
||||||
if (!query || query.length === 0) {
|
if (!query || query.length === 0) {
|
||||||
@@ -727,7 +728,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
User.getFollowerCount(uid, next);
|
User.getFollowerCount(uid, next);
|
||||||
}
|
}
|
||||||
}, callback);
|
}, callback);
|
||||||
}
|
};
|
||||||
|
|
||||||
User.getDataForUsers = function(uids, callback) {
|
User.getDataForUsers = function(uids, callback) {
|
||||||
|
|
||||||
@@ -850,22 +851,11 @@ var bcrypt = require('bcryptjs'),
|
|||||||
};
|
};
|
||||||
|
|
||||||
User.isModerator = function(uid, cid, callback) {
|
User.isModerator = function(uid, cid, callback) {
|
||||||
groups.isMemberByGroupName(uid, 'cid:' + cid + ':privileges:mod', function(err, isMember) {
|
groups.isMemberByGroupName(uid, 'cid:' + cid + ':privileges:mod', callback);
|
||||||
if(err) {
|
|
||||||
return calback(err);
|
|
||||||
}
|
|
||||||
callback(err, isMember);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
User.isAdministrator = function(uid, callback) {
|
User.isAdministrator = function(uid, callback) {
|
||||||
groups.getGidFromName('administrators', function(err, gid) {
|
groups.isMemberByGroupName(uid, 'administrators', callback);
|
||||||
if(err) {
|
|
||||||
return callback(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
groups.isMember(uid, gid, callback);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
User.reset = {
|
User.reset = {
|
||||||
@@ -882,7 +872,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (expiry >= +Date.now() / 1000 | 0) {
|
if (parseInt(expiry, 10) >= Date.now() / 1000) {
|
||||||
callback(null, true);
|
callback(null, true);
|
||||||
} else {
|
} else {
|
||||||
// Expired, delete from db
|
// Expired, delete from db
|
||||||
@@ -909,15 +899,15 @@ var bcrypt = require('bcryptjs'),
|
|||||||
// Generate a new reset code
|
// Generate a new reset code
|
||||||
var reset_code = utils.generateUUID();
|
var reset_code = utils.generateUUID();
|
||||||
db.setObjectField('reset:uid', reset_code, uid);
|
db.setObjectField('reset:uid', reset_code, uid);
|
||||||
db.setObjectField('reset:expiry', reset_code, (60 * 60) + new Date() / 1000 | 0); // Active for one hour
|
db.setObjectField('reset:expiry', reset_code, (60 * 60) + Math.floor(Date.now() / 1000));
|
||||||
|
|
||||||
var reset_link = nconf.get('url') + '/reset/' + reset_code;
|
var reset_link = nconf.get('url') + '/reset/' + reset_code;
|
||||||
|
|
||||||
Emailer.send('reset', uid, {
|
Emailer.send('reset', uid, {
|
||||||
'site_title': (meta.config['title'] || 'NodeBB'),
|
'site_title': (meta.config.title || 'NodeBB'),
|
||||||
'reset_link': reset_link,
|
'reset_link': reset_link,
|
||||||
|
|
||||||
subject: 'Password Reset Requested - ' + (meta.config['title'] || 'NodeBB') + '!',
|
subject: 'Password Reset Requested - ' + (meta.config.title || 'NodeBB') + '!',
|
||||||
template: 'reset',
|
template: 'reset',
|
||||||
uid: uid
|
uid: uid
|
||||||
});
|
});
|
||||||
@@ -1003,11 +993,11 @@ var bcrypt = require('bcryptjs'),
|
|||||||
// Send intro email w/ confirm code
|
// Send intro email w/ confirm code
|
||||||
User.getUserField(uid, 'username', function(err, username) {
|
User.getUserField(uid, 'username', function(err, username) {
|
||||||
Emailer.send('welcome', uid, {
|
Emailer.send('welcome', uid, {
|
||||||
'site_title': (meta.config['title'] || 'NodeBB'),
|
'site_title': (meta.config.title || 'NodeBB'),
|
||||||
username: username,
|
username: username,
|
||||||
'confirm_link': confirm_link,
|
'confirm_link': confirm_link,
|
||||||
|
|
||||||
subject: 'Welcome to ' + (meta.config['title'] || 'NodeBB') + '!',
|
subject: 'Welcome to ' + (meta.config.title || 'NodeBB') + '!',
|
||||||
template: 'welcome',
|
template: 'welcome',
|
||||||
uid: uid
|
uid: uid
|
||||||
});
|
});
|
||||||
@@ -1086,7 +1076,7 @@ var bcrypt = require('bcryptjs'),
|
|||||||
}
|
}
|
||||||
}, function(err, notifications) {
|
}, function(err, notifications) {
|
||||||
if(err) {
|
if(err) {
|
||||||
return calback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove empties
|
// Remove empties
|
||||||
|
Reference in New Issue
Block a user