mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15:58 +01:00 
			
		
		
		
	user.js hint
This commit is contained in:
		
							
								
								
									
										56
									
								
								src/user.js
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								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,29 +563,28 @@ 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) { | ||||||
| 						return next(err); | 						return next(err); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					csvContent += userData.email+ ',' + userData.username + ',' + uid +'\n'; | 					csvContent += userData.email + ',' + userData.username + ',' + uid + '\n'; | ||||||
| 					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