Browse Source

fix migrate API

Unknwon 9 years ago
parent
commit
e5b105e513
3 changed files with 9 additions and 20 deletions
  1. 5 2
      cmd/web.go
  2. 1 1
      modules/auth/repo_form.go
  3. 3 17
      routers/api/v1/repo.go

+ 5 - 2
cmd/web.go

@@ -229,11 +229,14 @@ func runWeb(ctx *cli.Context) {
 				Post(bind(api.CreateRepoOption{}), v1.CreateRepo)
 			m.Post("/org/:org/repos", middleware.ApiReqToken(), bind(api.CreateRepoOption{}), v1.CreateOrgRepo)
 
-			// TODO: https://github.com/gogits/go-gogs-client/wiki
 			m.Group("/repos", func() {
 				m.Get("/search", v1.SearchRepos)
-				m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo)
 
+				m.Group("", func() {
+					m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo)
+				}, middleware.ApiReqToken())
+
+				// TODO: https://github.com/gogits/go-gogs-client/wiki
 				m.Group("/:username/:reponame", func() {
 					m.Combo("/hooks").Get(v1.ListRepoHooks).
 						Post(bind(api.CreateHookOption{}), v1.CreateRepoHook)

+ 1 - 1
modules/auth/repo_form.go

@@ -35,10 +35,10 @@ type MigrateRepoForm struct {
 	CloneAddr    string `binding:"Required"`
 	AuthUsername string
 	AuthPassword string
-	Mirror       bool
 	Uid          int64  `binding:"Required"`
 	RepoName     string `binding:"Required;AlphaDashDot;MaxSize(100)"`
 	Private      bool
+	Mirror       bool
 	Description  string `binding:"MaxSize(255)"`
 }
 

+ 3 - 17
routers/api/v1/repo.go

@@ -192,23 +192,9 @@ func CreateOrgRepo(ctx *middleware.Context, opt api.CreateRepoOption) {
 }
 
 func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) {
-	u, err := models.GetUserByName(ctx.Query("username"))
-	if err != nil {
-		if models.IsErrUserNotExist(err) {
-			ctx.HandleAPI(422, err)
-		} else {
-			ctx.HandleAPI(500, err)
-		}
-		return
-	}
-	if !u.ValidatePassword(ctx.Query("password")) {
-		ctx.HandleAPI(422, "Username or password is not correct.")
-		return
-	}
-
-	ctxUser := u
+	ctxUser := ctx.User
 	// Not equal means current user is an organization.
-	if form.Uid != u.Id {
+	if form.Uid != ctxUser.Id {
 		org, err := models.GetUserByID(form.Uid)
 		if err != nil {
 			if models.IsErrUserNotExist(err) {
@@ -228,7 +214,7 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) {
 
 	if ctxUser.IsOrganization() {
 		// Check ownership of organization.
-		if !ctxUser.IsOwnedBy(u.Id) {
+		if !ctxUser.IsOwnedBy(ctx.User.Id) {
 			ctx.HandleAPI(403, "Given user is not owner of organization.")
 			return
 		}