generate-accounts.js
1.35 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
let administrators = [
{
name: { first: 'Admin', last: 'McAdmin' },
email: 'admin@admin.com',
password: 'password'
}
];
let generateAccounts = () => {
let fakeUserCount = 5,
usersExist = _checkIfAccountsExist( administrators.length + fakeUserCount );
if ( !usersExist ) {
_createUsers( administrators );
_createUsers( _generateFakeUsers( fakeUserCount ) );
}
};
let _checkIfAccountsExist = ( count ) => {
let userCount = Meteor.users.find().count();
return userCount < count ? false : true;
};
let _createUsers = ( users ) => {
for ( let i = 0; i < users.length; i++ ) {
let user = users[ i ],
userExists = _checkIfUserExists( user.email );
if ( !userExists ) {
_createUser( user );
}
}
};
let _checkIfUserExists = ( email ) => {
return Meteor.users.findOne( { 'emails.address': email } );
};
let _createUser = ( user ) => {
Accounts.createUser({
email: user.email,
password: user.password,
profile: {
name: user.name
}
});
};
let _generateFakeUsers = ( count ) => {
let users = [];
for ( let i = 0; i < count; i++ ) {
users.push({
name: { first: faker.name.firstName(), last: faker.name.lastName() },
email: faker.internet.email(),
password: 'password'
});
}
return users;
};
Modules.server.generateAccounts = generateAccounts;