Skip to content

Commit 65eea82

Browse files
authored
fix repo settings external tracker failed and check external urls (#1215) (#1236)
1 parent fac75b8 commit 65eea82

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

options/locale/locale_en-US.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,11 +718,13 @@ settings.wiki_desc = Enable wiki system
718718
settings.use_internal_wiki = Use builtin wiki
719719
settings.use_external_wiki = Use external wiki
720720
settings.external_wiki_url = External Wiki URL
721+
settings.external_wiki_url_error = External Wiki URL is invalid
721722
settings.external_wiki_url_desc = Visitors will be redirected to the specified URL when they click on the tab.
722723
settings.issues_desc = Enable issue tracker
723724
settings.use_internal_issue_tracker = Use builtin issue tracker
724725
settings.use_external_issue_tracker = Use external issue tracker
725726
settings.external_tracker_url = External Issue Tracker URL
727+
settings.external_tracker_url_error = External Issue Tracker URL is invalid
726728
settings.external_tracker_url_desc = Visitors will be redirected to the specified URL when they click on the tab.
727729
settings.tracker_url_format = External Issue Tracker URL Format
728730
settings.tracker_issue_style = External Issue Tracker Naming Style:

routers/repo/setting.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
7272
err := models.NewRepoRedirect(ctx.Repo.Owner.ID, repo.ID, repo.Name, newRepoName)
7373
if err != nil {
7474
ctx.Handle(500, "NewRepoRedirect", err)
75+
return
7576
}
7677

7778
log.Trace("Repository name changed: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newRepoName)
@@ -151,6 +152,12 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
151152

152153
if form.EnableWiki {
153154
if form.EnableExternalWiki {
155+
if !strings.HasPrefix(form.ExternalWikiURL, "http://") && !strings.HasPrefix(form.ExternalWikiURL, "https://") {
156+
ctx.Flash.Error(ctx.Tr("repo.settings.external_wiki_url_error"))
157+
ctx.Redirect(repo.Link() + "/settings")
158+
return
159+
}
160+
154161
units = append(units, models.RepoUnit{
155162
RepoID: repo.ID,
156163
Type: models.UnitTypeExternalWiki,
@@ -171,10 +178,15 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
171178

172179
if form.EnableIssues {
173180
if form.EnableExternalTracker {
181+
if !strings.HasPrefix(form.ExternalTrackerURL, "http://") && !strings.HasPrefix(form.ExternalTrackerURL, "https://") {
182+
ctx.Flash.Error(ctx.Tr("repo.settings.external_tracker_url_error"))
183+
ctx.Redirect(repo.Link() + "/settings")
184+
return
185+
}
174186
units = append(units, models.RepoUnit{
175187
RepoID: repo.ID,
176-
Type: models.UnitTypeExternalWiki,
177-
Index: int(models.UnitTypeExternalWiki),
188+
Type: models.UnitTypeExternalTracker,
189+
Index: int(models.UnitTypeExternalTracker),
178190
Config: &models.ExternalTrackerConfig{
179191
ExternalTrackerURL: form.ExternalTrackerURL,
180192
ExternalTrackerFormat: form.TrackerURLFormat,

0 commit comments

Comments
 (0)