forked from cnodejs/nodeclub
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuser.js
More file actions
118 lines (107 loc) · 2.92 KB
/
user.js
File metadata and controls
118 lines (107 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
var models = require('../models');
var User = models.User;
var utility = require('utility');
var uuid = require('node-uuid');
/**
* 根据用户名列表查找用户列表
* Callback:
* - err, 数据库异常
* - users, 用户列表
* @param {Array} names 用户名列表
* @param {Function} callback 回调函数
*/
exports.getUsersByNames = function (names, callback) {
if (names.length === 0) {
return callback(null, []);
}
User.find({ loginname: { $in: names } }, callback);
};
/**
* 根据登录名查找用户
* Callback:
* - err, 数据库异常
* - user, 用户
* @param {String} loginName 登录名
* @param {Function} callback 回调函数
*/
exports.getUserByLoginName = function (loginName, callback) {
User.findOne({'loginname': loginName}, callback);
};
/**
* 根据用户ID,查找用户
* Callback:
* - err, 数据库异常
* - user, 用户
* @param {String} id 用户ID
* @param {Function} callback 回调函数
*/
exports.getUserById = function (id, callback) {
if (!id) {
return callback();
}
User.findOne({_id: id}, callback);
};
/**
* 根据邮箱,查找用户
* Callback:
* - err, 数据库异常
* - user, 用户
* @param {String} email 邮箱地址
* @param {Function} callback 回调函数
*/
exports.getUserByMail = function (email, callback) {
User.findOne({email: email}, callback);
};
/**
* 根据用户ID列表,获取一组用户
* Callback:
* - err, 数据库异常
* - users, 用户列表
* @param {Array} ids 用户ID列表
* @param {Function} callback 回调函数
*/
exports.getUsersByIds = function (ids, callback) {
User.find({'_id': {'$in': ids}}, callback);
};
/**
* 根据关键字,获取一组用户
* Callback:
* - err, 数据库异常
* - users, 用户列表
* @param {String} query 关键字
* @param {Object} opt 选项
* @param {Function} callback 回调函数
*/
exports.getUsersByQuery = function (query, opt, callback) {
User.find(query, '', opt, callback);
};
/**
* 根据查询条件,获取一个用户
* Callback:
* - err, 数据库异常
* - user, 用户
* @param {String} name 用户名
* @param {String} key 激活码
* @param {Function} callback 回调函数
*/
exports.getUserByNameAndKey = function (loginname, key, callback) {
User.findOne({loginname: loginname, retrieve_key: key}, callback);
};
exports.newAndSave = function (name, loginname, pass, email, avatar_url, active, callback) {
var user = new User();
user.name = loginname;
user.loginname = loginname;
user.pass = pass;
user.email = email;
user.avatar = avatar_url;
user.active = active || false;
user.accessToken = uuid.v4();
user.save(callback);
};
var makeGravatar = function (email) {
return 'http://www.gravatar.com/avatar/' + utility.md5(email.toLowerCase()) + '?size=48';
};
exports.makeGravatar = makeGravatar;
exports.getGravatar = function (user) {
return user.avatar || makeGravatar(user);
};