fix about #1289
This commit is contained in:
		
					parent
					
						
							
								03011ed307
							
						
					
				
			
			
				commit
				
					
						42a72b62fc
					
				
			
		
					 4 changed files with 35 additions and 46 deletions
				
			
		| 
						 | 
					@ -4,7 +4,9 @@
 | 
				
			||||||
Akihiro YAGASAKI <yaggytter@momiage.com>
 | 
					Akihiro YAGASAKI <yaggytter@momiage.com>
 | 
				
			||||||
Alexander Steinhöfer <kontakt@lx-s.de>
 | 
					Alexander Steinhöfer <kontakt@lx-s.de>
 | 
				
			||||||
Christoph Kisfeld <christoph.kisfeld@gmail.com>
 | 
					Christoph Kisfeld <christoph.kisfeld@gmail.com>
 | 
				
			||||||
 | 
					Daniel Speichert <daniel@speichert.pl>
 | 
				
			||||||
Huimin Wang <wanghm2009@hotmail.co.jp>
 | 
					Huimin Wang <wanghm2009@hotmail.co.jp>
 | 
				
			||||||
 | 
					ilko <email>
 | 
				
			||||||
Thomas Fanninger <gogs.thomas@fanninger.at>
 | 
					Thomas Fanninger <gogs.thomas@fanninger.at>
 | 
				
			||||||
Łukasz Jan Niemier <lukasz@niemier.pl>
 | 
					Łukasz Jan Niemier <lukasz@niemier.pl>
 | 
				
			||||||
Lafriks <lafriks@gmail.com>
 | 
					Lafriks <lafriks@gmail.com>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								gogs.go
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
										
									
									
									
								
							| 
						 | 
					@ -17,7 +17,7 @@ import (
 | 
				
			||||||
	"github.com/gogits/gogs/modules/setting"
 | 
						"github.com/gogits/gogs/modules/setting"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const APP_VER = "0.6.1.0716 Beta"
 | 
					const APP_VER = "0.6.1.0719 Beta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
						runtime.GOMAXPROCS(runtime.NumCPU())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,18 +28,25 @@ const (
 | 
				
			||||||
	FORK    base.TplName = "repo/fork"
 | 
						FORK    base.TplName = "repo/fork"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func checkContextUser(ctx *middleware.Context, uid int64) (*models.User, error) {
 | 
					func checkContextUser(ctx *middleware.Context, uid int64) *models.User {
 | 
				
			||||||
	ctxUser := ctx.User
 | 
						// Not equal means current user is an organization.
 | 
				
			||||||
	if uid > 0 {
 | 
						if uid == ctx.User.Id || uid == 0 {
 | 
				
			||||||
		org, err := models.GetUserById(uid)
 | 
							return ctx.User
 | 
				
			||||||
		if err != models.ErrUserNotExist {
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return nil, fmt.Errorf("GetUserById: %v", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			ctxUser = org
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return ctxUser, nil
 | 
					
 | 
				
			||||||
 | 
						org, err := models.GetUserById(uid)
 | 
				
			||||||
 | 
						if err == models.ErrUserNotExist {
 | 
				
			||||||
 | 
							return ctx.User
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							ctx.Handle(500, "checkContextUser", fmt.Errorf("GetUserById(%d): %v", uid, err))
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						} else if !org.IsOrganization() {
 | 
				
			||||||
 | 
							ctx.Error(403)
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return org
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Create(ctx *middleware.Context) {
 | 
					func Create(ctx *middleware.Context) {
 | 
				
			||||||
| 
						 | 
					@ -51,9 +58,8 @@ func Create(ctx *middleware.Context) {
 | 
				
			||||||
	ctx.Data["Gitignores"] = models.Gitignores
 | 
						ctx.Data["Gitignores"] = models.Gitignores
 | 
				
			||||||
	ctx.Data["Licenses"] = models.Licenses
 | 
						ctx.Data["Licenses"] = models.Licenses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctxUser, err := checkContextUser(ctx, ctx.QueryInt64("org"))
 | 
						ctxUser := checkContextUser(ctx, ctx.QueryInt64("org"))
 | 
				
			||||||
	if err != nil {
 | 
						if ctx.Written() {
 | 
				
			||||||
		ctx.Handle(500, "checkContextUser", err)
 | 
					 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["ContextUser"] = ctxUser
 | 
						ctx.Data["ContextUser"] = ctxUser
 | 
				
			||||||
| 
						 | 
					@ -73,15 +79,9 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
 | 
				
			||||||
	ctx.Data["Gitignores"] = models.Gitignores
 | 
						ctx.Data["Gitignores"] = models.Gitignores
 | 
				
			||||||
	ctx.Data["Licenses"] = models.Licenses
 | 
						ctx.Data["Licenses"] = models.Licenses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctxUser := ctx.User
 | 
						ctxUser := checkContextUser(ctx, form.Uid)
 | 
				
			||||||
	// Not equal means current user is an organization.
 | 
						if ctx.Written() {
 | 
				
			||||||
	if form.Uid != ctx.User.Id {
 | 
							return
 | 
				
			||||||
		var err error
 | 
					 | 
				
			||||||
		ctxUser, err = checkContextUser(ctx, form.Uid)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			ctx.Handle(500, "checkContextUser", err)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["ContextUser"] = ctxUser
 | 
						ctx.Data["ContextUser"] = ctxUser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,9 +136,8 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
 | 
				
			||||||
func Migrate(ctx *middleware.Context) {
 | 
					func Migrate(ctx *middleware.Context) {
 | 
				
			||||||
	ctx.Data["Title"] = ctx.Tr("new_migrate")
 | 
						ctx.Data["Title"] = ctx.Tr("new_migrate")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctxUser, err := checkContextUser(ctx, ctx.QueryInt64("org"))
 | 
						ctxUser := checkContextUser(ctx, ctx.QueryInt64("org"))
 | 
				
			||||||
	if err != nil {
 | 
						if ctx.Written() {
 | 
				
			||||||
		ctx.Handle(500, "checkContextUser", err)
 | 
					 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["ContextUser"] = ctxUser
 | 
						ctx.Data["ContextUser"] = ctxUser
 | 
				
			||||||
| 
						 | 
					@ -155,15 +154,9 @@ func Migrate(ctx *middleware.Context) {
 | 
				
			||||||
func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
 | 
					func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
 | 
				
			||||||
	ctx.Data["Title"] = ctx.Tr("new_migrate")
 | 
						ctx.Data["Title"] = ctx.Tr("new_migrate")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctxUser := ctx.User
 | 
						ctxUser := checkContextUser(ctx, form.Uid)
 | 
				
			||||||
	// Not equal means current user is an organization.
 | 
						if ctx.Written() {
 | 
				
			||||||
	if form.Uid != ctx.User.Id {
 | 
							return
 | 
				
			||||||
		var err error
 | 
					 | 
				
			||||||
		ctxUser, err = checkContextUser(ctx, form.Uid)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			ctx.Handle(500, "checkContextUser", err)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["ContextUser"] = ctxUser
 | 
						ctx.Data["ContextUser"] = ctxUser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -297,15 +290,9 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctxUser := ctx.User
 | 
						ctxUser := checkContextUser(ctx, form.Uid)
 | 
				
			||||||
	// Not equal means current user is an organization.
 | 
						if ctx.Written() {
 | 
				
			||||||
	if form.Uid != ctx.User.Id {
 | 
							return
 | 
				
			||||||
		var err error
 | 
					 | 
				
			||||||
		ctxUser, err = checkContextUser(ctx, form.Uid)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			ctx.Handle(500, "checkContextUser", err)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["ContextUser"] = ctxUser
 | 
						ctx.Data["ContextUser"] = ctxUser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
0.6.1.0716 Beta
 | 
					0.6.1.0719 Beta
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue