From aa67de910af6246a6dc9ad96c56f789e282e8403 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 6 Sep 2015 08:54:08 -0400 Subject: fix #1558 --- routers/repo/repo.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'routers/repo/repo.go') diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 329bc933..b9cc98a2 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -198,7 +198,8 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { } if strings.Contains(err.Error(), "Authentication failed") || - strings.Contains(err.Error(), " not found") { + strings.Contains(err.Error(), " not found") || + strings.Contains(err.Error(), "could not read Username") { ctx.Data["Err_Auth"] = true ctx.RenderWithErr(ctx.Tr("form.auth_failed", strings.Replace(err.Error(), ":"+form.AuthPassword+"@", ":@", 1)), MIGRATE, &form) return -- cgit v1.2.3 From 3d9b98fae4782a45edc3f53ad4561fe7e14a4377 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 7 Sep 2015 13:58:23 -0400 Subject: #1585 order owners list by last changed time --- models/org.go | 21 +++++++++++++++++++++ models/user.go | 7 +++++++ routers/repo/repo.go | 7 ++++--- 3 files changed, 32 insertions(+), 3 deletions(-) (limited to 'routers/repo/repo.go') diff --git a/models/org.go b/models/org.go index 4076bf15..b45dcafb 100644 --- a/models/org.go +++ b/models/org.go @@ -9,6 +9,8 @@ import ( "fmt" "os" "strings" + + "github.com/go-xorm/xorm" ) var ( @@ -251,6 +253,25 @@ func IsPublicMembership(orgId, uid int64) bool { return has } +func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) { + orgs := make([]*User, 0, 10) + return orgs, sess.Where("`org_user`.uid=?", userID).And("`org_user`.is_owner=?", true). + Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs) +} + +// GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID. +func GetOwnedOrgsByUserID(userID int64) ([]*User, error) { + sess := x.NewSession() + return getOwnedOrgsByUserID(sess, userID) +} + +// GetOwnedOrganizationsByUserIDDesc returns a list of organizations are owned by +// given user ID and descring order by given condition. +func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) { + sess := x.NewSession() + return getOwnedOrgsByUserID(sess.Desc(desc), userID) +} + // GetOrgUsersByUserId returns all organization-user relations by user ID. func GetOrgUsersByUserId(uid int64) ([]*OrgUser, error) { ous := make([]*OrgUser, 0, 10) diff --git a/models/user.go b/models/user.go index 641e14d0..da2f49a1 100644 --- a/models/user.go +++ b/models/user.go @@ -61,6 +61,7 @@ type User struct { LoginSource int64 `xorm:"NOT NULL DEFAULT 0"` LoginName string Type UserType + OwnedOrgs []*User `xorm:"-"` Orgs []*User `xorm:"-"` Repos []*Repository `xorm:"-"` Location string @@ -307,6 +308,12 @@ func (u *User) GetRepositories() (err error) { return err } +// GetOwnedOrganizations returns all organizations that user owns. +func (u *User) GetOwnedOrganizations() (err error) { + u.OwnedOrgs, err = GetOwnedOrgsByUserID(u.Id) + return err +} + // GetOrganizations returns all organizations that user belongs to. func (u *User) GetOrganizations() error { ous, err := GetOrgUsersByUserId(u.Id) diff --git a/routers/repo/repo.go b/routers/repo/repo.go index b9cc98a2..567b717a 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -28,11 +28,12 @@ const ( ) func checkContextUser(ctx *middleware.Context, uid int64) *models.User { - if err := ctx.User.GetOrganizations(); err != nil { - ctx.Handle(500, "GetOrganizations", err) + orgs, err := models.GetOwnedOrgsByUserIDDesc(ctx.User.Id, "updated") + if err != nil { + ctx.Handle(500, "GetOwnedOrganizationsByUserIDDesc", err) return nil } - ctx.Data["Orgs"] = ctx.User.Orgs + ctx.Data["Orgs"] = orgs // Not equal means current user is an organization. if uid == ctx.User.Id || uid == 0 { -- cgit v1.2.3 From cc83043edc2ddda52d3cbd2748b0fb4fe6406369 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 7 Sep 2015 14:02:09 -0400 Subject: minor fix on template --- modules/auth/org.go | 2 +- routers/repo/repo.go | 2 +- templates/repo/create.tmpl | 2 -- templates/repo/migrate.tmpl | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) (limited to 'routers/repo/repo.go') diff --git a/modules/auth/org.go b/modules/auth/org.go index 63c06168..6d9a7269 100644 --- a/modules/auth/org.go +++ b/modules/auth/org.go @@ -17,7 +17,7 @@ import ( // \/ /_____/ \/ \/ \/ \/ \/ type CreateOrgForm struct { - OrgName string `binding:"Required;AlphaDashDot;MaxSize(30)"` + OrgName string `binding:"Required;AlphaDashDot;MaxSize(30)" locale:"org.org_name_holder"` } func (f *CreateOrgForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 567b717a..8a0c5f97 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -30,7 +30,7 @@ const ( func checkContextUser(ctx *middleware.Context, uid int64) *models.User { orgs, err := models.GetOwnedOrgsByUserIDDesc(ctx.User.Id, "updated") if err != nil { - ctx.Handle(500, "GetOwnedOrganizationsByUserIDDesc", err) + ctx.Handle(500, "GetOwnedOrgsByUserIDDesc", err) return nil } ctx.Data["Orgs"] = orgs diff --git a/templates/repo/create.tmpl b/templates/repo/create.tmpl index 084c99c2..c2d1c460 100644 --- a/templates/repo/create.tmpl +++ b/templates/repo/create.tmpl @@ -24,13 +24,11 @@ {{.SignedUser.Name}} {{range .Orgs}} - {{if .IsOwnedBy $.SignedUser.Id}}
{{.Name}}
{{end}} - {{end}} diff --git a/templates/repo/migrate.tmpl b/templates/repo/migrate.tmpl index fa920e9f..5a76850d 100644 --- a/templates/repo/migrate.tmpl +++ b/templates/repo/migrate.tmpl @@ -49,13 +49,11 @@ {{.SignedUser.Name}} {{range .Orgs}} - {{if .IsOwnedBy $.SignedUser.Id}}
{{.Name}}
{{end}} - {{end}} -- cgit v1.2.3