|
|
|
@ -28,18 +28,25 @@ const ( |
|
|
|
|
FORK base.TplName = "repo/fork" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func checkContextUser(ctx *middleware.Context, uid int64) (*models.User, error) { |
|
|
|
|
ctxUser := ctx.User |
|
|
|
|
if uid > 0 { |
|
|
|
|
org, err := models.GetUserById(uid) |
|
|
|
|
if err != models.ErrUserNotExist { |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, fmt.Errorf("GetUserById: %v", err) |
|
|
|
|
func checkContextUser(ctx *middleware.Context, uid int64) *models.User { |
|
|
|
|
// Not equal means current user is an organization.
|
|
|
|
|
if uid == ctx.User.Id || uid == 0 { |
|
|
|
|
return ctx.User |
|
|
|
|
} |
|
|
|
|
ctxUser = org |
|
|
|
|
|
|
|
|
|
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 ctxUser, nil |
|
|
|
|
return org |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Create(ctx *middleware.Context) { |
|
|
|
@ -51,9 +58,8 @@ func Create(ctx *middleware.Context) { |
|
|
|
|
ctx.Data["Gitignores"] = models.Gitignores |
|
|
|
|
ctx.Data["Licenses"] = models.Licenses |
|
|
|
|
|
|
|
|
|
ctxUser, err := checkContextUser(ctx, ctx.QueryInt64("org")) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "checkContextUser", err) |
|
|
|
|
ctxUser := checkContextUser(ctx, ctx.QueryInt64("org")) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
ctx.Data["ContextUser"] = ctxUser |
|
|
|
@ -73,16 +79,10 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) { |
|
|
|
|
ctx.Data["Gitignores"] = models.Gitignores |
|
|
|
|
ctx.Data["Licenses"] = models.Licenses |
|
|
|
|
|
|
|
|
|
ctxUser := ctx.User |
|
|
|
|
// Not equal means current user is an organization.
|
|
|
|
|
if form.Uid != ctx.User.Id { |
|
|
|
|
var err error |
|
|
|
|
ctxUser, err = checkContextUser(ctx, form.Uid) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "checkContextUser", err) |
|
|
|
|
ctxUser := checkContextUser(ctx, form.Uid) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ctx.Data["ContextUser"] = ctxUser |
|
|
|
|
|
|
|
|
|
if err := ctx.User.GetOrganizations(); err != nil { |
|
|
|
@ -136,9 +136,8 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) { |
|
|
|
|
func Migrate(ctx *middleware.Context) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("new_migrate") |
|
|
|
|
|
|
|
|
|
ctxUser, err := checkContextUser(ctx, ctx.QueryInt64("org")) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "checkContextUser", err) |
|
|
|
|
ctxUser := checkContextUser(ctx, ctx.QueryInt64("org")) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
ctx.Data["ContextUser"] = ctxUser |
|
|
|
@ -155,16 +154,10 @@ func Migrate(ctx *middleware.Context) { |
|
|
|
|
func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("new_migrate") |
|
|
|
|
|
|
|
|
|
ctxUser := ctx.User |
|
|
|
|
// Not equal means current user is an organization.
|
|
|
|
|
if form.Uid != ctx.User.Id { |
|
|
|
|
var err error |
|
|
|
|
ctxUser, err = checkContextUser(ctx, form.Uid) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "checkContextUser", err) |
|
|
|
|
ctxUser := checkContextUser(ctx, form.Uid) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ctx.Data["ContextUser"] = ctxUser |
|
|
|
|
|
|
|
|
|
if err := ctx.User.GetOrganizations(); err != nil { |
|
|
|
@ -297,16 +290,10 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ctxUser := ctx.User |
|
|
|
|
// Not equal means current user is an organization.
|
|
|
|
|
if form.Uid != ctx.User.Id { |
|
|
|
|
var err error |
|
|
|
|
ctxUser, err = checkContextUser(ctx, form.Uid) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "checkContextUser", err) |
|
|
|
|
ctxUser := checkContextUser(ctx, form.Uid) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ctx.Data["ContextUser"] = ctxUser |
|
|
|
|
|
|
|
|
|
if err := ctx.User.GetOrganizations(); err != nil { |
|
|
|
|