code.gitea.io/gitea@v1.22.3/routers/web/admin/applications.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package admin 5 6 import ( 7 "fmt" 8 "net/http" 9 10 "code.gitea.io/gitea/models/auth" 11 "code.gitea.io/gitea/models/db" 12 "code.gitea.io/gitea/modules/base" 13 "code.gitea.io/gitea/modules/setting" 14 user_setting "code.gitea.io/gitea/routers/web/user/setting" 15 "code.gitea.io/gitea/services/context" 16 ) 17 18 var ( 19 tplSettingsApplications base.TplName = "admin/applications/list" 20 tplSettingsOauth2ApplicationEdit base.TplName = "admin/applications/oauth2_edit" 21 ) 22 23 func newOAuth2CommonHandlers() *user_setting.OAuth2CommonHandlers { 24 return &user_setting.OAuth2CommonHandlers{ 25 OwnerID: 0, 26 BasePathList: fmt.Sprintf("%s/admin/applications", setting.AppSubURL), 27 BasePathEditPrefix: fmt.Sprintf("%s/admin/applications/oauth2", setting.AppSubURL), 28 TplAppEdit: tplSettingsOauth2ApplicationEdit, 29 } 30 } 31 32 // Applications render org applications page (for org, at the moment, there are only OAuth2 applications) 33 func Applications(ctx *context.Context) { 34 ctx.Data["Title"] = ctx.Tr("settings.applications") 35 ctx.Data["PageIsAdminApplications"] = true 36 37 apps, err := db.Find[auth.OAuth2Application](ctx, auth.FindOAuth2ApplicationsOptions{ 38 IsGlobal: true, 39 }) 40 if err != nil { 41 ctx.ServerError("GetOAuth2ApplicationsByUserID", err) 42 return 43 } 44 ctx.Data["Applications"] = apps 45 ctx.Data["BuiltinApplications"] = auth.BuiltinApplications() 46 ctx.HTML(http.StatusOK, tplSettingsApplications) 47 } 48 49 // ApplicationsPost response for adding an oauth2 application 50 func ApplicationsPost(ctx *context.Context) { 51 ctx.Data["Title"] = ctx.Tr("settings.applications") 52 ctx.Data["PageIsAdminApplications"] = true 53 54 oa := newOAuth2CommonHandlers() 55 oa.AddApp(ctx) 56 } 57 58 // EditApplication displays the given application 59 func EditApplication(ctx *context.Context) { 60 ctx.Data["PageIsAdminApplications"] = true 61 62 oa := newOAuth2CommonHandlers() 63 oa.EditShow(ctx) 64 } 65 66 // EditApplicationPost response for editing oauth2 application 67 func EditApplicationPost(ctx *context.Context) { 68 ctx.Data["Title"] = ctx.Tr("settings.applications") 69 ctx.Data["PageIsAdminApplications"] = true 70 71 oa := newOAuth2CommonHandlers() 72 oa.EditSave(ctx) 73 } 74 75 // ApplicationsRegenerateSecret handles the post request for regenerating the secret 76 func ApplicationsRegenerateSecret(ctx *context.Context) { 77 ctx.Data["Title"] = ctx.Tr("settings") 78 ctx.Data["PageIsAdminApplications"] = true 79 80 oa := newOAuth2CommonHandlers() 81 oa.RegenerateSecret(ctx) 82 } 83 84 // DeleteApplication deletes the given oauth2 application 85 func DeleteApplication(ctx *context.Context) { 86 oa := newOAuth2CommonHandlers() 87 oa.DeleteApp(ctx) 88 } 89 90 // TODO: revokes the grant with the given id