forked from jerryjj/infigo-node-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit_db-mongo.coffee
107 lines (88 loc) · 2.54 KB
/
init_db-mongo.coffee
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
###
Setup Dependencies
###
require.paths.unshift __dirname
s = require __dirname + "/lib/setup"
s.ext __dirname + "/lib"
s.ext __dirname + "/support"
mongoose = require 'mongoose'
express = require 'express'
sys = require 'sys'
models = require './models'
CoffeeScript = require 'coffee-script'
app = module.exports = express.createServer()
tmpcfg = require('yaml').eval(
require('fs')
.readFileSync('config/app_config.yml')
.toString('utf-8')
)
global.config = CoffeeScript.helpers.merge tmpcfg['common'], tmpcfg[app.settings.env]
app.set 'db_type', global.config.db_type
app.set 'db-uri', global.config.db_uri
app.configure 'development', () ->
console.log "configure development"
app.use express.errorHandler(dumpExceptions: true, showStack: true)
app.configure 'staging', () ->
console.log "configure staging"
app.use express.errorHandler(dumpExceptions: true, showStack: true)
app.configure 'test', () ->
console.log "configure test"
app.configure 'production', () ->
console.log "configure production"
app.use express.errorHandler()
User = Group = GroupUser = Role = RoleGroup = Instruction = db = null
models.defineModels mongoose, () ->
db = mongoose.connect app.set('db-uri')
app.User = User = mongoose.model 'User'
app.Group = Group = mongoose.model 'Group'
app.GroupUser = GroupUser = mongoose.model 'GroupUser'
app.Role = Role = mongoose.model 'Role'
app.RoleGroup = RoleGroup = mongoose.model 'RoleGroup'
# Create default user
console.log "Creating default user 'admin' with password admin"
u = new User {
username: 'admin'
password: 'admin'
email: 'admin@project.com'
'name.first': 'Project'
'name.last': 'Admin'
}
u.save (err, usr) ->
if err
console.log 'User save error'
console.log err
process.exit 0
console.log "User created"
console.log "Creating default group and roles"
gu = new GroupUser {
user_id: usr.id
username: usr.username
'name.first': usr.name.first
'name.last': usr.name.last
'name.full': usr.name.full
}
g = new Group {
name: 'Admins'
users: [gu.toObject()]
}
g.save (err, grp) ->
if err
console.log 'Group save error'
console.log err
process.exit 0
console.log "Created group 'Admins'"
rg = new RoleGroup {
group_id: grp.id
name: grp.name
}
r = new Role {
key: 'admin'
groups: [rg.toObject()]
}
r.save (err) ->
if err
console.log 'Role save error'
console.log err
process.exit 0
console.log "Created role 'admin'"
process.exit 0