mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	Add a new config option for OAuth2 authentication sources: allow users to change their username. In the case where OAuth2 is more like a social OAuth2 login there's no need to not allow users to change their username. The information how the user is linked to the authentication source is stored in different fields. Resolves forgejo/forgejo#687 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8714 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Gusted <postmaster@gusted.xyz> Co-committed-by: Gusted <postmaster@gusted.xyz>
		
			
				
	
	
		
			89 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2014 The Gogs Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package forms
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 
 | |
| 	"forgejo.org/modules/web/middleware"
 | |
| 	"forgejo.org/services/context"
 | |
| 
 | |
| 	"code.forgejo.org/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
 | |
| 	DefaultDomainName             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
 | |
| 	Oauth2AttributeSSHPublicKey   string
 | |
| 	SkipLocalTwoFA                bool
 | |
| 	GroupTeamMap                  string `binding:"ValidGroupTeamMap"`
 | |
| 	GroupTeamMapRemoval           bool
 | |
| 	AllowUsernameChange           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)
 | |
| }
 |