@@ -213,18 +213,42 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
213
213
return
214
214
}
215
215
216
- // Check admin password.
217
- if len (form .AdminName ) > 0 && len (form .AdminPasswd ) == 0 {
218
- ctx .Data ["Err_Admin" ] = true
219
- ctx .Data ["Err_AdminPasswd" ] = true
220
- ctx .RenderWithErr (ctx .Tr ("install.err_empty_admin_password" ), tplInstall , form )
221
- return
222
- }
223
- if form .AdminPasswd != form .AdminConfirmPasswd {
224
- ctx .Data ["Err_Admin" ] = true
225
- ctx .Data ["Err_AdminPasswd" ] = true
226
- ctx .RenderWithErr (ctx .Tr ("form.password_not_match" ), tplInstall , form )
227
- return
216
+ // Check admin user creation
217
+ if len (form .AdminName ) > 0 {
218
+ // Ensure AdminName is valid
219
+ if err := models .IsUsableUsername (form .AdminName ); err != nil {
220
+ ctx .Data ["Err_Admin" ] = true
221
+ ctx .Data ["Err_AdminName" ] = true
222
+ if models .IsErrNameReserved (err ) {
223
+ ctx .RenderWithErr (ctx .Tr ("install.err_admin_name_is_reserved" ), tplInstall , form )
224
+ return
225
+ } else if models .IsErrNamePatternNotAllowed (err ) {
226
+ ctx .RenderWithErr (ctx .Tr ("install.err_admin_name_pattern_not_allowed" ), tplInstall , form )
227
+ return
228
+ }
229
+ ctx .RenderWithErr (ctx .Tr ("install.err_admin_name_is_invalid" ), tplInstall , form )
230
+ return
231
+ }
232
+ // Check Admin email
233
+ if len (form .AdminEmail ) == 0 {
234
+ ctx .Data ["Err_Admin" ] = true
235
+ ctx .Data ["Err_AdminEmail" ] = true
236
+ ctx .RenderWithErr (ctx .Tr ("install.err_empty_admin_email" ), tplInstall , form )
237
+ return
238
+ }
239
+ // Check admin password.
240
+ if len (form .AdminPasswd ) == 0 {
241
+ ctx .Data ["Err_Admin" ] = true
242
+ ctx .Data ["Err_AdminPasswd" ] = true
243
+ ctx .RenderWithErr (ctx .Tr ("install.err_empty_admin_password" ), tplInstall , form )
244
+ return
245
+ }
246
+ if form .AdminPasswd != form .AdminConfirmPasswd {
247
+ ctx .Data ["Err_Admin" ] = true
248
+ ctx .Data ["Err_AdminPasswd" ] = true
249
+ ctx .RenderWithErr (ctx .Tr ("form.password_not_match" ), tplInstall , form )
250
+ return
251
+ }
228
252
}
229
253
230
254
if form .AppURL [len (form .AppURL )- 1 ] != '/' {
0 commit comments