Browse Source

Merge pull request #822 from phsmit/fix_807

Fix #807 parse the userinfo with the golang tools
for-closed-social
无闻 9 years ago
parent
commit
edbfbfa66e
1 changed files with 14 additions and 4 deletions
  1. +14
    -4
      routers/repo/repo.go

+ 14
- 4
routers/repo/repo.go View File

@ -6,6 +6,7 @@ package repo
import ( import (
"fmt" "fmt"
"net/url"
"os" "os"
"path" "path"
"strings" "strings"
@ -180,11 +181,20 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
} }
} }
authStr := strings.Replace(fmt.Sprintf("://%s:%s",
form.AuthUserName, form.AuthPasswd), "@", "%40", -1)
url := strings.Replace(form.HttpsUrl, "://", authStr+"@", 1)
u, err := url.Parse(form.HttpsUrl)
if err != nil || u.Scheme != "https" {
ctx.Data["Err_HttpsUrl"] = true
ctx.RenderWithErr(ctx.Tr("form.url_error"), MIGRATE, &form)
return
}
if len(form.AuthUserName) > 0 || len(form.AuthPasswd) > 0 {
u.User = url.UserPassword(form.AuthUserName, form.AuthPasswd)
}
repo, err := models.MigrateRepository(ctxUser, form.RepoName, form.Description, form.Private, repo, err := models.MigrateRepository(ctxUser, form.RepoName, form.Description, form.Private,
form.Mirror, url)
form.Mirror, u.String())
if err == nil { if err == nil {
log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName)
ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName)

Loading…
Cancel
Save