mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-30 05:06:21 +01:00
6b33152b7d
Replace #16455 Close #21803 Mixing different Gitea contexts together causes some problems: 1. Unable to respond proper content when error occurs, eg: Web should respond HTML while API should respond JSON 2. Unclear dependency, eg: it's unclear when Context is used in APIContext, which fields should be initialized, which methods are necessary. To make things clear, this PR introduces a Base context, it only provides basic Req/Resp/Data features. This PR mainly moves code. There are still many legacy problems and TODOs in code, leave unrelated changes to future PRs.
75 lines
2.7 KiB
Go
75 lines
2.7 KiB
Go
// Copyright 2014 The Gogs Authors. All rights reserved.
|
|
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package forms
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"code.gitea.io/gitea/modules/context"
|
|
"code.gitea.io/gitea/modules/structs"
|
|
"code.gitea.io/gitea/modules/web/middleware"
|
|
|
|
"gitea.com/go-chi/binding"
|
|
)
|
|
|
|
// ________ .__ __ .__
|
|
// \_____ \_______ _________ ____ |__|____________ _/ |_|__| ____ ____
|
|
// / | \_ __ \/ ___\__ \ / \| \___ /\__ \\ __\ |/ _ \ / \
|
|
// / | \ | \/ /_/ > __ \| | \ |/ / / __ \| | | ( <_> ) | \
|
|
// \_______ /__| \___ (____ /___| /__/_____ \(____ /__| |__|\____/|___| /
|
|
// \/ /_____/ \/ \/ \/ \/ \/
|
|
|
|
// CreateOrgForm form for creating organization
|
|
type CreateOrgForm struct {
|
|
OrgName string `binding:"Required;Username;MaxSize(40)" locale:"org.org_name_holder"`
|
|
Visibility structs.VisibleType
|
|
RepoAdminChangeTeamAccess bool
|
|
}
|
|
|
|
// Validate validates the fields
|
|
func (f *CreateOrgForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
|
|
ctx := context.GetValidateContext(req)
|
|
return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
|
|
}
|
|
|
|
// UpdateOrgSettingForm form for updating organization settings
|
|
type UpdateOrgSettingForm struct {
|
|
Name string `binding:"Required;Username;MaxSize(40)" locale:"org.org_name_holder"`
|
|
FullName string `binding:"MaxSize(100)"`
|
|
Description string `binding:"MaxSize(255)"`
|
|
Website string `binding:"ValidUrl;MaxSize(255)"`
|
|
Location string `binding:"MaxSize(50)"`
|
|
Visibility structs.VisibleType
|
|
MaxRepoCreation int
|
|
RepoAdminChangeTeamAccess bool
|
|
}
|
|
|
|
// Validate validates the fields
|
|
func (f *UpdateOrgSettingForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
|
|
ctx := context.GetValidateContext(req)
|
|
return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
|
|
}
|
|
|
|
// ___________
|
|
// \__ ___/___ _____ _____
|
|
// | |_/ __ \\__ \ / \
|
|
// | |\ ___/ / __ \| Y Y \
|
|
// |____| \___ >____ /__|_| /
|
|
// \/ \/ \/
|
|
|
|
// CreateTeamForm form for creating team
|
|
type CreateTeamForm struct {
|
|
TeamName string `binding:"Required;AlphaDashDot;MaxSize(30)"`
|
|
Description string `binding:"MaxSize(255)"`
|
|
Permission string
|
|
RepoAccess string
|
|
CanCreateOrgRepo bool
|
|
}
|
|
|
|
// Validate validates the fields
|
|
func (f *CreateTeamForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
|
|
ctx := context.GetValidateContext(req)
|
|
return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
|
|
}
|