mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Fix #880 Design: 1. A global setting `security.TWO_FACTOR_AUTH`. * To support org-level config, we need to introduce a better "owner setting" system first (in the future) 2. A user without 2FA can login and may explore, but can NOT read or write to any repositories via API/web. 3. Keep things as simple as possible. * This option only aggressively suggest users to enable their 2FA at the moment, it does NOT guarantee that users must have 2FA before all other operations, it should be good enough for real world use cases. * Some details and tests could be improved in the future since this change only adds a check and seems won't affect too much. --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2014 The Gogs Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package forms
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 
 | |
| 	"code.gitea.io/gitea/modules/web/middleware"
 | |
| 	"code.gitea.io/gitea/services/context"
 | |
| 
 | |
| 	"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)"`
 | |
| 	TwoFactorPolicy string
 | |
| 
 | |
| 	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
 | |
| 	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)
 | |
| }
 |