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