Blame view

server/modules/generate-accounts.js 1.35 KB
0ccda7775   Ryan Glover   add support for E...
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;