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