mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-14 02:24:03 +00: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.
92 lines
3.2 KiB
Go
92 lines
3.2 KiB
Go
// Copyright 2014 The Gogs Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package forms
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"code.gitea.io/gitea/modules/context"
|
|
"code.gitea.io/gitea/modules/web/middleware"
|
|
|
|
"gitea.com/go-chi/binding"
|
|
)
|
|
|
|
// AuthenticationForm form for authentication
|
|
type AuthenticationForm struct {
|
|
ID int64
|
|
Type int `binding:"Range(2,7)"`
|
|
Name string `binding:"Required;MaxSize(30)"`
|
|
Host string
|
|
Port int
|
|
BindDN string
|
|
BindPassword string
|
|
UserBase string
|
|
UserDN string
|
|
AttributeUsername string
|
|
AttributeName string
|
|
AttributeSurname string
|
|
AttributeMail string
|
|
AttributeSSHPublicKey string
|
|
AttributeAvatar string
|
|
AttributesInBind bool
|
|
UsePagedSearch bool
|
|
SearchPageSize int
|
|
Filter string
|
|
AdminFilter string
|
|
GroupsEnabled bool
|
|
GroupDN string
|
|
GroupFilter string
|
|
GroupMemberUID string
|
|
UserUID string
|
|
RestrictedFilter string
|
|
AllowDeactivateAll bool
|
|
IsActive bool
|
|
IsSyncEnabled bool
|
|
SMTPAuth string
|
|
SMTPHost string
|
|
SMTPPort int
|
|
AllowedDomains string
|
|
SecurityProtocol int `binding:"Range(0,2)"`
|
|
TLS bool
|
|
SkipVerify bool
|
|
HeloHostname string
|
|
DisableHelo bool
|
|
ForceSMTPS bool
|
|
PAMServiceName string
|
|
PAMEmailDomain string
|
|
Oauth2Provider string
|
|
Oauth2Key string
|
|
Oauth2Secret string
|
|
OpenIDConnectAutoDiscoveryURL string
|
|
Oauth2UseCustomURL bool
|
|
Oauth2TokenURL string
|
|
Oauth2AuthURL string
|
|
Oauth2ProfileURL string
|
|
Oauth2EmailURL string
|
|
Oauth2IconURL string
|
|
Oauth2Tenant string
|
|
Oauth2Scopes string
|
|
Oauth2RequiredClaimName string
|
|
Oauth2RequiredClaimValue string
|
|
Oauth2GroupClaimName string
|
|
Oauth2AdminGroup string
|
|
Oauth2RestrictedGroup string
|
|
Oauth2GroupTeamMap string `binding:"ValidGroupTeamMap"`
|
|
Oauth2GroupTeamMapRemoval bool
|
|
SkipLocalTwoFA bool
|
|
SSPIAutoCreateUsers bool
|
|
SSPIAutoActivateUsers bool
|
|
SSPIStripDomainNames bool
|
|
SSPISeparatorReplacement string `binding:"AlphaDashDot;MaxSize(5)"`
|
|
SSPIDefaultLanguage string
|
|
GroupTeamMap string `binding:"ValidGroupTeamMap"`
|
|
GroupTeamMapRemoval bool
|
|
}
|
|
|
|
// Validate validates fields
|
|
func (f *AuthenticationForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
|
|
ctx := context.GetValidateContext(req)
|
|
return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
|
|
}
|