@@ -213,18 +213,42 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
213213 return
214214 }
215215
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+ }
228252 }
229253
230254 if form .AppURL [len (form .AppURL )- 1 ] != '/' {
0 commit comments