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)
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)"`
}
}
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) {
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
}