Add regenerate secret feature for oauth2 (#6291)
* Add regenerate secret functionality * Fix lint
This commit is contained in:
parent
8211e01d9e
commit
8fffb06168
3 changed files with 33 additions and 1 deletions
|
@ -302,6 +302,7 @@ func RegisterRoutes(m *macaron.Macaron) {
|
||||||
m.Group("/applications/oauth2", func() {
|
m.Group("/applications/oauth2", func() {
|
||||||
m.Get("/:id", userSetting.OAuth2ApplicationShow)
|
m.Get("/:id", userSetting.OAuth2ApplicationShow)
|
||||||
m.Post("/:id", bindIgnErr(auth.EditOAuth2ApplicationForm{}), userSetting.OAuthApplicationsEdit)
|
m.Post("/:id", bindIgnErr(auth.EditOAuth2ApplicationForm{}), userSetting.OAuthApplicationsEdit)
|
||||||
|
m.Post("/:id/regenerate_secret", userSetting.OAuthApplicationsRegenerateSecret)
|
||||||
m.Post("", bindIgnErr(auth.EditOAuth2ApplicationForm{}), userSetting.OAuthApplicationsPost)
|
m.Post("", bindIgnErr(auth.EditOAuth2ApplicationForm{}), userSetting.OAuthApplicationsPost)
|
||||||
m.Post("/delete", userSetting.DeleteOAuth2Application)
|
m.Post("/delete", userSetting.DeleteOAuth2Application)
|
||||||
})
|
})
|
||||||
|
|
|
@ -78,6 +78,34 @@ func OAuthApplicationsEdit(ctx *context.Context, form auth.EditOAuth2Application
|
||||||
ctx.HTML(200, tplSettingsOAuthApplications)
|
ctx.HTML(200, tplSettingsOAuthApplications)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OAuthApplicationsRegenerateSecret handles the post request for regenerating the secret
|
||||||
|
func OAuthApplicationsRegenerateSecret(ctx *context.Context) {
|
||||||
|
ctx.Data["Title"] = ctx.Tr("settings")
|
||||||
|
ctx.Data["PageIsSettingsApplications"] = true
|
||||||
|
|
||||||
|
app, err := models.GetOAuth2ApplicationByID(ctx.ParamsInt64("id"))
|
||||||
|
if err != nil {
|
||||||
|
if models.IsErrOAuthApplicationNotFound(err) {
|
||||||
|
ctx.NotFound("Application not found", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.ServerError("GetOAuth2ApplicationByID", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if app.UID != ctx.User.ID {
|
||||||
|
ctx.NotFound("Application not found", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.Data["App"] = app
|
||||||
|
ctx.Data["ClientSecret"], err = app.GenerateClientSecret()
|
||||||
|
if err != nil {
|
||||||
|
ctx.ServerError("GenerateClientSecret", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.Flash.Success(ctx.Tr("settings.update_oauth2_application_success"))
|
||||||
|
ctx.HTML(200, tplSettingsOAuthApplications)
|
||||||
|
}
|
||||||
|
|
||||||
// OAuth2ApplicationShow displays the given application
|
// OAuth2ApplicationShow displays the given application
|
||||||
func OAuth2ApplicationShow(ctx *context.Context) {
|
func OAuth2ApplicationShow(ctx *context.Context) {
|
||||||
app, err := models.GetOAuth2ApplicationByID(ctx.ParamsInt64("id"))
|
app, err := models.GetOAuth2ApplicationByID(ctx.ParamsInt64("id"))
|
||||||
|
|
|
@ -30,7 +30,10 @@
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<!-- TODO add regenerate secret functionality */ -->
|
<!-- TODO add regenerate secret functionality */ -->
|
||||||
{{.i18n.Tr "settings.oauth2_regenerate_secret_hint"}}
|
{{.i18n.Tr "settings.oauth2_regenerate_secret_hint"}}
|
||||||
<a onclick="alert('Not yet implemented.')">{{.i18n.Tr "settings.oauth2_regenerate_secret"}}</a>
|
<form class="ui form ignore-dirty" action="{{$.AppSubURL}}/user/settings/applications/oauth2/{{.App.ID}}/regenerate_secret" method="post">
|
||||||
|
{{.CsrfTokenHtml}}
|
||||||
|
<a href="#" onclick="event.target.parentNode.submit()">{{.i18n.Tr "settings.oauth2_regenerate_secret"}}</a>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui attached bottom segment">
|
<div class="ui attached bottom segment">
|
||||||
|
|
Reference in a new issue