@@ -18,6 +18,7 @@ var Assets embed.FS
18
18
// It reads JSON files from the specified setupPath or embeded assets, and populates the database accordingly.
19
19
// The admin user credentials are used for setup.
20
20
func Setup (setupPath string ) error {
21
+ moduleIdMap := map [string ]int64 {}
21
22
var modules []TypeModule
22
23
var files []string
23
24
var err error
@@ -121,10 +122,13 @@ func Setup(setupPath string) error {
121
122
for _ , module := range modules {
122
123
moduleParentId := ModuleGetIdByName (module .Module .ParentName )
123
124
moduleId := ModuleGetIdByName (module .Name )
124
- if moduleId > 0 && moduleParentId > 0 {
125
- _ , err := Run ("UPDATE ejaModules SET parentId=? WHERE ejaId=?" , moduleParentId , moduleId )
126
- if err != nil {
127
- return err
125
+ if moduleId > 0 {
126
+ moduleIdMap [module .Name ] = moduleId
127
+ if moduleParentId > 0 {
128
+ _ , err := Run ("UPDATE ejaModules SET parentId=? WHERE ejaId=?" , moduleParentId , moduleId )
129
+ if err != nil {
130
+ return err
131
+ }
128
132
}
129
133
}
130
134
}
@@ -135,19 +139,30 @@ func Setup(setupPath string) error {
135
139
}
136
140
137
141
// add module links
138
- if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), ModuleGetIdByName ("ejaGroups" ), ModuleGetIdByName ("ejaPermissions" ), 2 ); err != nil {
139
- return err
140
- }
141
- if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), ModuleGetIdByName ("ejaGroups" ), ModuleGetIdByName ("ejaModules" ), 1 ); err != nil {
142
- return err
143
- }
144
- if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), ModuleGetIdByName ("ejaUsers" ), ModuleGetIdByName ("ejaGroups" ), 1 ); err != nil {
145
- return err
142
+ if moduleIdMap ["ejaGroups" ] > 0 {
143
+ if moduleIdMap ["ejaPermissions" ] > 0 {
144
+ if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), moduleIdMap ["ejaGroups" ], moduleIdMap ["ejaPermissions" ], 2 ); err != nil {
145
+ return err
146
+ }
147
+ }
148
+ if moduleIdMap ["ejaModules" ] > 0 {
149
+ if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), moduleIdMap ["ejaGroups" ], moduleIdMap ["ejaModules" ], 1 ); err != nil {
150
+ return err
151
+ }
152
+ }
146
153
}
147
- if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), ModuleGetIdByName ("ejaUsers" ), ModuleGetIdByName ("ejaPermissions" ), 2 ); err != nil {
148
- return err
154
+ if moduleIdMap ["ejaUsers" ] > 0 {
155
+ if moduleIdMap ["ejaGroups" ] > 0 {
156
+ if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), moduleIdMap ["ejaUsers" ], moduleIdMap ["ejaGroups" ], 1 ); err != nil {
157
+ return err
158
+ }
159
+ }
160
+ if moduleIdMap ["ejaPermissions" ] > 0 {
161
+ if _ , err := Run ("INSERT INTO ejaModuleLinks (ejaOwner,ejaLog,dstModuleId,srcModuleId,power) VALUES (1,?,?,?,?)" , Now (), moduleIdMap ["ejaUsers" ], moduleIdMap ["ejaPermissions" ], 2 ); err != nil {
162
+ return err
163
+ }
164
+ }
149
165
}
150
-
151
166
return nil
152
167
}
153
168
0 commit comments