summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/web.go9
-rw-r--r--routers/api/v1/repos.go68
-rw-r--r--routers/repo/repo.go2
3 files changed, 39 insertions, 40 deletions
diff --git a/cmd/web.go b/cmd/web.go
index 8e471eb61f..de1aa03cc2 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -138,10 +138,15 @@ func runWeb(*cli.Context) {
r.Post("/markdown/raw", v1.MarkdownRaw)
// Users.
- r.Get("/users/search", v1.SearchUsers)
+ m.Group("/users", func(r *macaron.Router) {
+ r.Get("/search", v1.SearchUsers)
+ })
// Repositories.
- r.Get("/repos/search", v1.SearchRepos)
+ m.Group("/repos", func(r *macaron.Router) {
+ r.Get("/search", v1.SearchRepos)
+ r.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.Migrate)
+ })
r.Any("/*", func(ctx *middleware.Context) {
ctx.JSON(404, &base.ApiJsonErr{"Not Found", v1.DOC_URL})
diff --git a/routers/api/v1/repos.go b/routers/api/v1/repos.go
index e343cfce7c..37a3e47a63 100644
--- a/routers/api/v1/repos.go
+++ b/routers/api/v1/repos.go
@@ -61,42 +61,50 @@ func SearchRepos(ctx *middleware.Context) {
}
func Migrate(ctx *middleware.Context, form auth.MigrateRepoForm) {
- ctxUser := ctx.User
+ u, err := models.GetUserByName(ctx.Query("username"))
+ if err != nil {
+ ctx.JSON(500, map[string]interface{}{
+ "ok": false,
+ "error": err.Error(),
+ })
+ return
+ }
+ if !u.ValidtePassword(ctx.Query("password")) {
+ ctx.JSON(500, map[string]interface{}{
+ "ok": false,
+ "error": "username or password is not correct",
+ })
+ return
+ }
+
+ ctxUser := u
// Not equal means current user is an organization.
- if form.Uid != ctx.User.Id {
+ if form.Uid != u.Id {
org, err := models.GetUserById(form.Uid)
- if err != nil && err != models.ErrUserNotExist {
+ if err != nil {
ctx.JSON(500, map[string]interface{}{
- "ok": false,
- "data": err.Error(),
+ "ok": false,
+ "error": err.Error(),
})
return
}
ctxUser = org
}
- if err := ctx.User.GetOrganizations(); err != nil {
- ctx.JSON(500, map[string]interface{}{
- "ok": false,
- "data": err.Error(),
- })
- return
- }
-
if ctx.HasError() {
ctx.JSON(500, map[string]interface{}{
- "ok": false,
- "data": ctx.GetErrMsg(),
+ "ok": false,
+ "error": ctx.GetErrMsg(),
})
return
}
if ctxUser.IsOrganization() {
// Check ownership of organization.
- if !ctxUser.IsOrgOwner(ctx.User.Id) {
+ if !ctxUser.IsOrgOwner(u.Id) {
ctx.JSON(403, map[string]interface{}{
- "ok": false,
- "data": "Not allowed",
+ "ok": false,
+ "error": "given user is not owner of organization",
})
return
}
@@ -109,23 +117,9 @@ func Migrate(ctx *middleware.Context, form auth.MigrateRepoForm) {
form.Mirror, url)
if err == nil {
log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName)
- ctx.JSON(200,
- map[string]interface{}{
- "ok": true,
- "data": "/" + ctxUser.Name + "/" + form.RepoName,
- })
- return
- } else if err == models.ErrRepoAlreadyExist {
- ctx.JSON(500,
- map[string]interface{}{
- "ok": false,
- "data": err.Error(),
- })
- return
- } else if err == models.ErrRepoNameIllegal {
- ctx.JSON(500, map[string]interface{}{
- "ok": false,
- "data": err.Error(),
+ ctx.JSON(200, map[string]interface{}{
+ "ok": true,
+ "data": "/" + ctxUser.Name + "/" + form.RepoName,
})
return
}
@@ -137,7 +131,7 @@ func Migrate(ctx *middleware.Context, form auth.MigrateRepoForm) {
}
ctx.JSON(500, map[string]interface{}{
- "ok": false,
- "data": err.Error(),
+ "ok": false,
+ "error": err.Error(),
})
}
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index bbc7cf850f..17f20a0a71 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -145,7 +145,7 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
// Not equal means current user is an organization.
if form.Uid != ctx.User.Id {
org, err := models.GetUserById(form.Uid)
- if err != nil && err != models.ErrUserNotExist {
+ if err != nil {
ctx.Handle(500, "GetUserById", err)
return
}