| @@ -232,6 +232,8 @@ func runWeb(ctx *cli.Context) { | |||||
| m.Combo("/user/repos", middleware.ApiReqToken()).Get(v1.ListMyRepos). | m.Combo("/user/repos", middleware.ApiReqToken()).Get(v1.ListMyRepos). | ||||
| Post(bind(api.CreateRepoOption{}), v1.CreateRepo) | Post(bind(api.CreateRepoOption{}), v1.CreateRepo) | ||||
| m.Post("/org/:org/repos", middleware.ApiReqToken(), bind(api.CreateRepoOption{}), v1.CreateOrgRepo) | 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.Group("/repos", func() { | ||||
| m.Get("/search", v1.SearchRepos) | m.Get("/search", v1.SearchRepos) | ||||
| m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo) | m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo) | ||||
| @@ -68,7 +68,7 @@ func HasAccess(u *User, repo *Repository, testMode AccessMode) (bool, error) { | |||||
| } | } | ||||
| // GetAccessibleRepositories finds all repositories where a user has access to, | // GetAccessibleRepositories finds all repositories where a user has access to, | ||||
| // besides his own. | |||||
| // besides he/she owns. | |||||
| func (u *User) GetAccessibleRepositories() (map[*Repository]AccessMode, error) { | func (u *User) GetAccessibleRepositories() (map[*Repository]AccessMode, error) { | ||||
| accesses := make([]*Access, 0, 10) | accesses := make([]*Access, 0, 10) | ||||
| if err := x.Find(&accesses, &Access{UserID: u.Id}); err != nil { | if err := x.Find(&accesses, &Access{UserID: u.Id}); err != nil { | ||||
| @@ -470,7 +470,7 @@ func trimCommitActionAppUrlPrefix(x *xorm.Engine) error { | |||||
| if _, err = sess.Id(actID).Update(&Action{ | if _, err = sess.Id(actID).Update(&Action{ | ||||
| Content: string(p), | Content: string(p), | ||||
| }); err != nil { | }); err != nil { | ||||
| return fmt.Errorf("update action[%s]: %v", actID, err) | |||||
| return fmt.Errorf("update action[%d]: %v", actID, err) | |||||
| } | } | ||||
| } | } | ||||
| return sess.Commit() | return sess.Commit() | ||||
| @@ -120,7 +120,7 @@ func createRepo(ctx *middleware.Context, owner *models.User, opt api.CreateRepoO | |||||
| return | return | ||||
| } | } | ||||
| ctx.JSON(200, ToApiRepository(owner, repo, api.Permission{true, true, true})) | |||||
| ctx.JSON(201, ToApiRepository(owner, repo, api.Permission{true, true, true})) | |||||
| } | } | ||||
| // POST /user/repos | // POST /user/repos | ||||
| @@ -254,17 +254,11 @@ func ListMyRepos(ctx *middleware.Context) { | |||||
| i := numOwnRepos | i := numOwnRepos | ||||
| for repo, access := range accessibleRepos { | for repo, access := range accessibleRepos { | ||||
| if err = repo.GetOwner(); err != nil { | |||||
| ctx.JSON(500, &base.ApiJsonErr{"GetOwner: " + err.Error(), base.DOC_URL}) | |||||
| return | |||||
| } | |||||
| repos[i] = ToApiRepository(repo.Owner, repo, api.Permission{false, access >= models.ACCESS_MODE_WRITE, true}) | |||||
| // FIXME: cache result to reduce DB query? | |||||
| if repo.Owner.IsOrganization() && repo.Owner.IsOwnedBy(ctx.User.Id) { | |||||
| repos[i].Permissions.Admin = true | |||||
| } | |||||
| repos[i] = ToApiRepository(repo.Owner, repo, api.Permission{ | |||||
| Admin: access >= models.ACCESS_MODE_ADMIN, | |||||
| Push: access >= models.ACCESS_MODE_WRITE, | |||||
| Pull: true, | |||||
| }) | |||||
| i++ | i++ | ||||
| } | } | ||||
| @@ -12,7 +12,6 @@ import ( | |||||
| "github.com/gogits/gogs/models" | "github.com/gogits/gogs/models" | ||||
| "github.com/gogits/gogs/modules/base" | "github.com/gogits/gogs/modules/base" | ||||
| "github.com/gogits/gogs/modules/middleware" | "github.com/gogits/gogs/modules/middleware" | ||||
| "github.com/gogits/gogs/modules/setting" | |||||
| ) | ) | ||||
| // ToApiUser converts user to API format. | // ToApiUser converts user to API format. | ||||
| @@ -20,7 +19,9 @@ func ToApiUser(u *models.User) *api.User { | |||||
| return &api.User{ | return &api.User{ | ||||
| ID: u.Id, | ID: u.Id, | ||||
| UserName: u.Name, | UserName: u.Name, | ||||
| AvatarUrl: string(setting.Protocol) + u.AvatarLink(), | |||||
| FullName: u.FullName, | |||||
| Email: u.Email, | |||||
| AvatarUrl: u.AvatarLink(), | |||||
| } | } | ||||
| } | } | ||||