code.gitea.io/gitea@v1.21.7/routers/web/user/setting/packages.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package setting 5 6 import ( 7 "net/http" 8 "strings" 9 10 user_model "code.gitea.io/gitea/models/user" 11 "code.gitea.io/gitea/modules/base" 12 "code.gitea.io/gitea/modules/context" 13 chef_module "code.gitea.io/gitea/modules/packages/chef" 14 "code.gitea.io/gitea/modules/setting" 15 "code.gitea.io/gitea/modules/util" 16 shared "code.gitea.io/gitea/routers/web/shared/packages" 17 ) 18 19 const ( 20 tplSettingsPackages base.TplName = "user/settings/packages" 21 tplSettingsPackagesRuleEdit base.TplName = "user/settings/packages_cleanup_rules_edit" 22 tplSettingsPackagesRulePreview base.TplName = "user/settings/packages_cleanup_rules_preview" 23 ) 24 25 func Packages(ctx *context.Context) { 26 ctx.Data["Title"] = ctx.Tr("packages.title") 27 ctx.Data["PageIsSettingsPackages"] = true 28 29 shared.SetPackagesContext(ctx, ctx.Doer) 30 31 ctx.HTML(http.StatusOK, tplSettingsPackages) 32 } 33 34 func PackagesRuleAdd(ctx *context.Context) { 35 ctx.Data["Title"] = ctx.Tr("packages.title") 36 ctx.Data["PageIsSettingsPackages"] = true 37 38 shared.SetRuleAddContext(ctx) 39 40 ctx.HTML(http.StatusOK, tplSettingsPackagesRuleEdit) 41 } 42 43 func PackagesRuleEdit(ctx *context.Context) { 44 ctx.Data["Title"] = ctx.Tr("packages.title") 45 ctx.Data["PageIsSettingsPackages"] = true 46 47 shared.SetRuleEditContext(ctx, ctx.Doer) 48 49 ctx.HTML(http.StatusOK, tplSettingsPackagesRuleEdit) 50 } 51 52 func PackagesRuleAddPost(ctx *context.Context) { 53 ctx.Data["Title"] = ctx.Tr("settings") 54 ctx.Data["PageIsSettingsPackages"] = true 55 56 shared.PerformRuleAddPost( 57 ctx, 58 ctx.Doer, 59 setting.AppSubURL+"/user/settings/packages", 60 tplSettingsPackagesRuleEdit, 61 ) 62 } 63 64 func PackagesRuleEditPost(ctx *context.Context) { 65 ctx.Data["Title"] = ctx.Tr("packages.title") 66 ctx.Data["PageIsSettingsPackages"] = true 67 68 shared.PerformRuleEditPost( 69 ctx, 70 ctx.Doer, 71 setting.AppSubURL+"/user/settings/packages", 72 tplSettingsPackagesRuleEdit, 73 ) 74 } 75 76 func PackagesRulePreview(ctx *context.Context) { 77 ctx.Data["Title"] = ctx.Tr("packages.title") 78 ctx.Data["PageIsSettingsPackages"] = true 79 80 shared.SetRulePreviewContext(ctx, ctx.Doer) 81 82 ctx.HTML(http.StatusOK, tplSettingsPackagesRulePreview) 83 } 84 85 func InitializeCargoIndex(ctx *context.Context) { 86 ctx.Data["Title"] = ctx.Tr("packages.title") 87 ctx.Data["PageIsSettingsPackages"] = true 88 89 shared.InitializeCargoIndex(ctx, ctx.Doer) 90 91 ctx.Redirect(setting.AppSubURL + "/user/settings/packages") 92 } 93 94 func RebuildCargoIndex(ctx *context.Context) { 95 ctx.Data["Title"] = ctx.Tr("packages.title") 96 ctx.Data["PageIsSettingsPackages"] = true 97 98 shared.RebuildCargoIndex(ctx, ctx.Doer) 99 100 ctx.Redirect(setting.AppSubURL + "/user/settings/packages") 101 } 102 103 func RegenerateChefKeyPair(ctx *context.Context) { 104 priv, pub, err := util.GenerateKeyPair(chef_module.KeyBits) 105 if err != nil { 106 ctx.ServerError("GenerateKeyPair", err) 107 return 108 } 109 110 if err := user_model.SetUserSetting(ctx, ctx.Doer.ID, chef_module.SettingPublicPem, pub); err != nil { 111 ctx.ServerError("SetUserSetting", err) 112 return 113 } 114 115 ctx.ServeContent(strings.NewReader(priv), &context.ServeHeaderOptions{ 116 ContentType: "application/x-pem-file", 117 Filename: ctx.Doer.Name + ".priv", 118 }) 119 }