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…
Reference in a new issue