@@ -30,7 +30,7 @@ import (
30
30
31
31
const (
32
32
tplSettingsProfile base.TplName = "user/settings/profile"
33
- tplSettingsEmails base.TplName = "user/settings/email "
33
+ tplSettingsAccount base.TplName = "user/settings/account "
34
34
tplSettingsKeys base.TplName = "user/settings/keys"
35
35
tplSettingsSocial base.TplName = "user/settings/social"
36
36
tplSettingsApplications base.TplName = "user/settings/applications"
@@ -39,7 +39,6 @@ const (
39
39
tplSettingsAccountLink base.TplName = "user/settings/account_link"
40
40
tplSettingsOrganization base.TplName = "user/settings/organization"
41
41
tplSettingsRepositories base.TplName = "user/settings/repos"
42
- tplSettingsDelete base.TplName = "user/settings/delete"
43
42
tplSettingsSecurity base.TplName = "user/settings/security"
44
43
)
45
44
@@ -187,35 +186,29 @@ func SettingsDeleteAvatar(ctx *context.Context) {
187
186
ctx .Redirect (setting .AppSubURL + "/user/settings" )
188
187
}
189
188
190
- // SettingsSecurity render change user's password page and 2FA
191
- func SettingsSecurity (ctx * context.Context ) {
189
+ // SettingsAccount renders change user's password, user's email and user suicide page
190
+ func SettingsAccount (ctx * context.Context ) {
192
191
ctx .Data ["Title" ] = ctx .Tr ("settings" )
193
- ctx .Data ["PageIsSettingsSecurity " ] = true
192
+ ctx .Data ["PageIsSettingsAccount " ] = true
194
193
ctx .Data ["Email" ] = ctx .User .Email
195
194
196
- enrolled := true
197
- _ , err := models .GetTwoFactorByUID (ctx .User .ID )
195
+ emails , err := models .GetEmailAddresses (ctx .User .ID )
198
196
if err != nil {
199
- if models .IsErrTwoFactorNotEnrolled (err ) {
200
- enrolled = false
201
- } else {
202
- ctx .ServerError ("SettingsTwoFactor" , err )
203
- return
204
- }
197
+ ctx .ServerError ("GetEmailAddresses" , err )
198
+ return
205
199
}
200
+ ctx .Data ["Emails" ] = emails
206
201
207
- ctx .Data ["TwofaEnrolled" ] = enrolled
208
- ctx .HTML (200 , tplSettingsSecurity )
202
+ ctx .HTML (200 , tplSettingsAccount )
209
203
}
210
204
211
- // SettingsSecurityPost response for change user's password
212
- func SettingsSecurityPost (ctx * context.Context , form auth.ChangePasswordForm ) {
205
+ // SettingsAccountPost response for change user's password
206
+ func SettingsAccountPost (ctx * context.Context , form auth.ChangePasswordForm ) {
213
207
ctx .Data ["Title" ] = ctx .Tr ("settings" )
214
- ctx .Data ["PageIsSettingsSecurity" ] = true
215
- ctx .Data ["PageIsSettingsDelete" ] = true
208
+ ctx .Data ["PageIsSettingsAccount" ] = true
216
209
217
210
if ctx .HasError () {
218
- ctx .HTML (200 , tplSettingsSecurity )
211
+ ctx .HTML (200 , tplSettingsAccount )
219
212
return
220
213
}
221
214
@@ -240,28 +233,13 @@ func SettingsSecurityPost(ctx *context.Context, form auth.ChangePasswordForm) {
240
233
ctx .Flash .Success (ctx .Tr ("settings.change_password_success" ))
241
234
}
242
235
243
- ctx .Redirect (setting .AppSubURL + "/user/settings/security" )
244
- }
245
-
246
- // SettingsEmails render user's emails page
247
- func SettingsEmails (ctx * context.Context ) {
248
- ctx .Data ["Title" ] = ctx .Tr ("settings" )
249
- ctx .Data ["PageIsSettingsEmails" ] = true
250
-
251
- emails , err := models .GetEmailAddresses (ctx .User .ID )
252
- if err != nil {
253
- ctx .ServerError ("GetEmailAddresses" , err )
254
- return
255
- }
256
- ctx .Data ["Emails" ] = emails
257
-
258
- ctx .HTML (200 , tplSettingsEmails )
236
+ ctx .Redirect (setting .AppSubURL + "/user/settings/account" )
259
237
}
260
238
261
239
// SettingsEmailPost response for change user's email
262
240
func SettingsEmailPost (ctx * context.Context , form auth.AddEmailForm ) {
263
241
ctx .Data ["Title" ] = ctx .Tr ("settings" )
264
- ctx .Data ["PageIsSettingsEmails " ] = true
242
+ ctx .Data ["PageIsSettingsAccount " ] = true
265
243
266
244
// Make emailaddress primary.
267
245
if ctx .Query ("_method" ) == "PRIMARY" {
@@ -271,7 +249,7 @@ func SettingsEmailPost(ctx *context.Context, form auth.AddEmailForm) {
271
249
}
272
250
273
251
log .Trace ("Email made primary: %s" , ctx .User .Name )
274
- ctx .Redirect (setting .AppSubURL + "/user/settings/email " )
252
+ ctx .Redirect (setting .AppSubURL + "/user/settings/account " )
275
253
return
276
254
}
277
255
@@ -284,7 +262,7 @@ func SettingsEmailPost(ctx *context.Context, form auth.AddEmailForm) {
284
262
ctx .Data ["Emails" ] = emails
285
263
286
264
if ctx .HasError () {
287
- ctx .HTML (200 , tplSettingsEmails )
265
+ ctx .HTML (200 , tplSettingsAccount )
288
266
return
289
267
}
290
268
@@ -295,7 +273,7 @@ func SettingsEmailPost(ctx *context.Context, form auth.AddEmailForm) {
295
273
}
296
274
if err := models .AddEmailAddress (email ); err != nil {
297
275
if models .IsErrEmailAlreadyUsed (err ) {
298
- ctx .RenderWithErr (ctx .Tr ("form.email_been_used" ), tplSettingsEmails , & form )
276
+ ctx .RenderWithErr (ctx .Tr ("form.email_been_used" ), tplSettingsAccount , & form )
299
277
return
300
278
}
301
279
ctx .ServerError ("AddEmailAddress" , err )
@@ -315,7 +293,7 @@ func SettingsEmailPost(ctx *context.Context, form auth.AddEmailForm) {
315
293
}
316
294
317
295
log .Trace ("Email address added: %s" , email .Email )
318
- ctx .Redirect (setting .AppSubURL + "/user/settings/email " )
296
+ ctx .Redirect (setting .AppSubURL + "/user/settings/account " )
319
297
}
320
298
321
299
// DeleteEmail response for delete user's email
@@ -328,10 +306,61 @@ func DeleteEmail(ctx *context.Context) {
328
306
329
307
ctx .Flash .Success (ctx .Tr ("settings.email_deletion_success" ))
330
308
ctx .JSON (200 , map [string ]interface {}{
331
- "redirect" : setting .AppSubURL + "/user/settings/email " ,
309
+ "redirect" : setting .AppSubURL + "/user/settings/account " ,
332
310
})
333
311
}
334
312
313
+ // SettingsDelete render user suicide page and response for delete user himself
314
+ func SettingsDelete (ctx * context.Context ) {
315
+ ctx .Data ["Title" ] = ctx .Tr ("settings" )
316
+ ctx .Data ["PageIsSettingsAccount" ] = true
317
+
318
+ if _ , err := models .UserSignIn (ctx .User .Name , ctx .Query ("password" )); err != nil {
319
+ if models .IsErrUserNotExist (err ) {
320
+ ctx .RenderWithErr (ctx .Tr ("form.enterred_invalid_password" ), tplSettingsAccount , nil )
321
+ } else {
322
+ ctx .ServerError ("UserSignIn" , err )
323
+ }
324
+ return
325
+ }
326
+
327
+ if err := models .DeleteUser (ctx .User ); err != nil {
328
+ switch {
329
+ case models .IsErrUserOwnRepos (err ):
330
+ ctx .Flash .Error (ctx .Tr ("form.still_own_repo" ))
331
+ ctx .Redirect (setting .AppSubURL + "/user/settings/account" )
332
+ case models .IsErrUserHasOrgs (err ):
333
+ ctx .Flash .Error (ctx .Tr ("form.still_has_org" ))
334
+ ctx .Redirect (setting .AppSubURL + "/user/settings/account" )
335
+ default :
336
+ ctx .ServerError ("DeleteUser" , err )
337
+ }
338
+ } else {
339
+ log .Trace ("Account deleted: %s" , ctx .User .Name )
340
+ ctx .Redirect (setting .AppSubURL + "/" )
341
+ }
342
+ }
343
+
344
+ // SettingsSecurity render change user's password page and 2FA
345
+ func SettingsSecurity (ctx * context.Context ) {
346
+ ctx .Data ["Title" ] = ctx .Tr ("settings" )
347
+ ctx .Data ["PageIsSettingsSecurity" ] = true
348
+
349
+ enrolled := true
350
+ _ , err := models .GetTwoFactorByUID (ctx .User .ID )
351
+ if err != nil {
352
+ if models .IsErrTwoFactorNotEnrolled (err ) {
353
+ enrolled = false
354
+ } else {
355
+ ctx .ServerError ("SettingsTwoFactor" , err )
356
+ return
357
+ }
358
+ }
359
+
360
+ ctx .Data ["TwofaEnrolled" ] = enrolled
361
+ ctx .HTML (200 , tplSettingsSecurity )
362
+ }
363
+
335
364
// SettingsKeys render user's SSH/GPG public keys page
336
365
func SettingsKeys (ctx * context.Context ) {
337
366
ctx .Data ["Title" ] = ctx .Tr ("settings" )
@@ -730,43 +759,6 @@ func SettingsDeleteAccountLink(ctx *context.Context) {
730
759
})
731
760
}
732
761
733
- // SettingsDelete render user suicide page and response for delete user himself
734
- func SettingsDelete (ctx * context.Context ) {
735
- ctx .Data ["Title" ] = ctx .Tr ("settings" )
736
- ctx .Data ["PageIsSettingsDelete" ] = true
737
- ctx .Data ["Email" ] = ctx .User .Email
738
-
739
- if ctx .Req .Method == "POST" {
740
- if _ , err := models .UserSignIn (ctx .User .Name , ctx .Query ("password" )); err != nil {
741
- if models .IsErrUserNotExist (err ) {
742
- ctx .RenderWithErr (ctx .Tr ("form.enterred_invalid_password" ), tplSettingsDelete , nil )
743
- } else {
744
- ctx .ServerError ("UserSignIn" , err )
745
- }
746
- return
747
- }
748
-
749
- if err := models .DeleteUser (ctx .User ); err != nil {
750
- switch {
751
- case models .IsErrUserOwnRepos (err ):
752
- ctx .Flash .Error (ctx .Tr ("form.still_own_repo" ))
753
- ctx .Redirect (setting .AppSubURL + "/user/settings/delete" )
754
- case models .IsErrUserHasOrgs (err ):
755
- ctx .Flash .Error (ctx .Tr ("form.still_has_org" ))
756
- ctx .Redirect (setting .AppSubURL + "/user/settings/delete" )
757
- default :
758
- ctx .ServerError ("DeleteUser" , err )
759
- }
760
- } else {
761
- log .Trace ("Account deleted: %s" , ctx .User .Name )
762
- ctx .Redirect (setting .AppSubURL + "/" )
763
- }
764
- return
765
- }
766
-
767
- ctx .HTML (200 , tplSettingsDelete )
768
- }
769
-
770
762
// SettingsOrganization render all the organization of the user
771
763
func SettingsOrganization (ctx * context.Context ) {
772
764
ctx .Data ["Title" ] = ctx .Tr ("settings" )
0 commit comments