Skip to content

Commit 6f11a3e

Browse files
committed
move access tokens to applications settings page
1 parent 8107662 commit 6f11a3e

File tree

10 files changed

+114
-93
lines changed

10 files changed

+114
-93
lines changed

options/locale/locale_en-US.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ security = Security
311311
avatar = Avatar
312312
ssh_gpg_keys = SSH / GPG Keys
313313
social = Social Accounts
314-
applications = Access Tokens
314+
applications = Applications
315315
orgs = Manage Organizations
316316
repos = Repositories
317317
delete = Delete Account

routers/routes/routes.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,11 @@ func RegisterRoutes(m *macaron.Macaron) {
238238
m.Post("/delete", user.DeleteOpenID)
239239
m.Post("/toggle_visibility", user.ToggleOpenIDVisibility)
240240
}, openIDSignInEnabled)
241-
m.Post("/applications", bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost)
242-
m.Post("/applications/delete", user.SettingsDeleteApplication)
243241
m.Post("/account_link", user.SettingsDeleteAccountLink)
244242
})
243+
m.Combo("/applications").Get(user.SettingsApplications).
244+
Post(bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost)
245+
m.Post("/applications/delete", user.SettingsDeleteApplication)
245246
m.Combo("/keys").Get(user.SettingsKeys).
246247
Post(bindIgnErr(auth.AddKeyForm{}), user.SettingsKeysPost)
247248
m.Post("/keys/delete", user.DeleteKey)

routers/user/setting.go

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const (
3333
tplSettingsAccount base.TplName = "user/settings/account"
3434
tplSettingsSecurity base.TplName = "user/settings/security"
3535
tplSettingsTwofaEnroll base.TplName = "user/settings/twofa_enroll"
36+
tplSettingsApplications base.TplName = "user/settings/applications"
3637
tplSettingsKeys base.TplName = "user/settings/keys"
3738
tplSettingsOrganization base.TplName = "user/settings/organization"
3839
tplSettingsRepositories base.TplName = "user/settings/repos"
@@ -354,13 +355,6 @@ func SettingsSecurity(ctx *context.Context) {
354355
}
355356
ctx.Data["TwofaEnrolled"] = enrolled
356357

357-
tokens, err := models.ListAccessTokens(ctx.User.ID)
358-
if err != nil {
359-
ctx.ServerError("ListAccessTokens", err)
360-
return
361-
}
362-
ctx.Data["Tokens"] = tokens
363-
364358
accountLinks, err := models.ListAccountLinks(ctx.User)
365359
if err != nil {
366360
ctx.ServerError("ListAccountLinks", err)
@@ -398,6 +392,34 @@ func SettingsSecurity(ctx *context.Context) {
398392
ctx.HTML(200, tplSettingsSecurity)
399393
}
400394

395+
// SettingsDeleteAccountLink delete a single account link
396+
func SettingsDeleteAccountLink(ctx *context.Context) {
397+
if _, err := models.RemoveAccountLink(ctx.User, ctx.QueryInt64("loginSourceID")); err != nil {
398+
ctx.Flash.Error("RemoveAccountLink: " + err.Error())
399+
} else {
400+
ctx.Flash.Success(ctx.Tr("settings.remove_account_link_success"))
401+
}
402+
403+
ctx.JSON(200, map[string]interface{}{
404+
"redirect": setting.AppSubURL + "/user/settings/security",
405+
})
406+
}
407+
408+
// SettingsApplications renders access token page
409+
func SettingsApplications(ctx *context.Context) {
410+
ctx.Data["Title"] = ctx.Tr("settings")
411+
ctx.Data["PageIsSettingsApplications"] = true
412+
413+
tokens, err := models.ListAccessTokens(ctx.User.ID)
414+
if err != nil {
415+
ctx.ServerError("ListAccessTokens", err)
416+
return
417+
}
418+
ctx.Data["Tokens"] = tokens
419+
420+
ctx.HTML(200, tplSettingsApplications)
421+
}
422+
401423
// SettingsApplicationsPost response for add user's access token
402424
func SettingsApplicationsPost(ctx *context.Context, form auth.NewAccessTokenForm) {
403425
ctx.Data["Title"] = ctx.Tr("settings")
@@ -410,7 +432,7 @@ func SettingsApplicationsPost(ctx *context.Context, form auth.NewAccessTokenForm
410432
return
411433
}
412434
ctx.Data["Tokens"] = tokens
413-
ctx.HTML(200, tplSettingsSecurity)
435+
ctx.HTML(200, tplSettingsApplications)
414436
return
415437
}
416438

@@ -426,7 +448,7 @@ func SettingsApplicationsPost(ctx *context.Context, form auth.NewAccessTokenForm
426448
ctx.Flash.Success(ctx.Tr("settings.generate_token_success"))
427449
ctx.Flash.Info(t.Sha1)
428450

429-
ctx.Redirect(setting.AppSubURL + "/user/settings/security")
451+
ctx.Redirect(setting.AppSubURL + "/user/settings/applications")
430452
}
431453

432454
// SettingsDeleteApplication response for delete user access token
@@ -438,20 +460,7 @@ func SettingsDeleteApplication(ctx *context.Context) {
438460
}
439461

440462
ctx.JSON(200, map[string]interface{}{
441-
"redirect": setting.AppSubURL + "/user/settings/security",
442-
})
443-
}
444-
445-
// SettingsDeleteAccountLink delete a single account link
446-
func SettingsDeleteAccountLink(ctx *context.Context) {
447-
if _, err := models.RemoveAccountLink(ctx.User, ctx.QueryInt64("loginSourceID")); err != nil {
448-
ctx.Flash.Error("RemoveAccountLink: " + err.Error())
449-
} else {
450-
ctx.Flash.Success(ctx.Tr("settings.remove_account_link_success"))
451-
}
452-
453-
ctx.JSON(200, map[string]interface{}{
454-
"redirect": setting.AppSubURL + "/user/settings/security",
463+
"redirect": setting.AppSubURL + "/user/settings/applications",
455464
})
456465
}
457466

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{{template "base/head" .}}
2+
<div class="user settings applications">
3+
{{template "user/settings/navbar" .}}
4+
<div class="ui container">
5+
<h4 class="ui top attached header">
6+
{{.i18n.Tr "settings.manage_access_token"}}
7+
</h4>
8+
<div class="ui attached segment">
9+
<div class="ui key list">
10+
<div class="item">
11+
{{.i18n.Tr "settings.tokens_desc"}}
12+
</div>
13+
{{range .Tokens}}
14+
<div class="item">
15+
<div class="right floated content">
16+
<button class="ui red tiny button delete-button" id="delete-token" data-url="{{$.Link}}/delete" data-id="{{.ID}}">
17+
{{$.i18n.Tr "settings.delete_token"}}
18+
</button>
19+
</div>
20+
<i class="big send icon {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.token_state_desc"}}" data-variation="inverted tiny"{{end}}></i>
21+
<div class="content">
22+
<strong>{{.Name}}</strong>
23+
<div class="activity meta">
24+
<i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i>
25+
</div>
26+
</div>
27+
</div>
28+
{{end}}
29+
</div>
30+
</div>
31+
<div class="ui attached bottom segment">
32+
<h5 class="ui top header">
33+
{{.i18n.Tr "settings.generate_new_token"}}
34+
</h5>
35+
<p>{{.i18n.Tr "settings.new_token_desc"}}</p>
36+
<form class="ui form ignore-dirty" action="{{.Link}}" method="post">
37+
{{.CsrfTokenHtml}}
38+
<div class="field {{if .Err_Name}}error{{end}}">
39+
<label for="name">{{.i18n.Tr "settings.token_name"}}</label>
40+
<input id="name" name="name" value="{{.name}}" autofocus required>
41+
</div>
42+
<button class="ui green button">
43+
{{.i18n.Tr "settings.generate_token"}}
44+
</button>
45+
</form>
46+
</div>
47+
</div>
48+
</div>
49+
50+
<div class="ui small basic delete modal" id="delete-token">
51+
<div class="ui icon header">
52+
<i class="trash icon"></i>
53+
{{.i18n.Tr "settings.access_token_deletion"}}
54+
</div>
55+
<div class="content">
56+
<p>{{.i18n.Tr "settings.access_token_deletion_desc"}}</p>
57+
</div>
58+
<div class="actions">
59+
<div class="ui red basic inverted cancel button">
60+
<i class="remove icon"></i>
61+
{{.i18n.Tr "modal.no"}}
62+
</div>
63+
<div class="ui green basic inverted ok button">
64+
<i class="checkmark icon"></i>
65+
{{.i18n.Tr "modal.yes"}}
66+
</div>
67+
</div>
68+
</div>
69+
70+
71+
{{template "base/footer" .}}

templates/user/settings/navbar.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
<a class="{{if .PageIsSettingsSecurity}}active{{end}} item" href="{{AppSubUrl}}/user/settings/security">
99
{{.i18n.Tr "settings.security"}}
1010
</a>
11+
<a class="{{if .PageIsSettingsApplications}}active{{end}} item" href="{{AppSubUrl}}/user/settings/applications">
12+
{{.i18n.Tr "settings.applications"}}
13+
</a>
1114
<a class="{{if .PageIsSettingsKeys}}active{{end}} item" href="{{AppSubUrl}}/user/settings/keys">
1215
{{.i18n.Tr "settings.ssh_gpg_keys"}}
1316
</a>

templates/user/settings/organization.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{template "base/head" .}}
2-
<div class="user settings account_link">
2+
<div class="user settings organization">
33
{{template "user/settings/navbar" .}}
44
<div class="ui container">
55
{{template "base/alert" .}}

templates/user/settings/repos.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{template "base/head" .}}
2-
<div class="user settings">
2+
<div class="user settings repos">
33
{{template "user/settings/navbar" .}}
44
<div class="ui container">
55
{{template "base/alert" .}}

templates/user/settings/security.tmpl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
{{template "base/head" .}}
2-
<div class="user settings password">
2+
<div class="user settings security">
33
{{template "user/settings/navbar" .}}
44
<div class="ui container">
55
{{template "base/alert" .}}
66
{{template "user/settings/security_twofa" .}}
7-
{{template "user/settings/security_applications" .}}
87
{{template "user/settings/security_accountlinks" .}}
98
{{if .EnableOpenIDSignIn}}
109
{{template "user/settings/security_openid" .}}

templates/user/settings/security_applications.tmpl

Lines changed: 0 additions & 62 deletions
This file was deleted.

templates/user/settings/twofa_enroll.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{template "base/head" .}}
2-
<div class="user settings delete">
2+
<div class="user settings twofa">
33
{{template "user/settings/navbar" .}}
44
<div class="ui container">
55
{{template "base/alert" .}}

0 commit comments

Comments
 (0)