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>
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2021 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package oauth2
 | |
| 
 | |
| import (
 | |
| 	"code.gitea.io/gitea/models/auth"
 | |
| 	"code.gitea.io/gitea/modules/json"
 | |
| )
 | |
| 
 | |
| // Source holds configuration for the OAuth2 login source.
 | |
| type Source struct {
 | |
| 	auth.ConfigBase `json:"-"`
 | |
| 
 | |
| 	Provider                      string
 | |
| 	ClientID                      string
 | |
| 	ClientSecret                  string
 | |
| 	OpenIDConnectAutoDiscoveryURL string
 | |
| 	CustomURLMapping              *CustomURLMapping
 | |
| 	IconURL                       string
 | |
| 
 | |
| 	Scopes              []string
 | |
| 	RequiredClaimName   string
 | |
| 	RequiredClaimValue  string
 | |
| 	GroupClaimName      string
 | |
| 	AdminGroup          string
 | |
| 	GroupTeamMap        string
 | |
| 	GroupTeamMapRemoval bool
 | |
| 	RestrictedGroup     string
 | |
| }
 | |
| 
 | |
| // FromDB fills up an OAuth2Config from serialized format.
 | |
| func (source *Source) FromDB(bs []byte) error {
 | |
| 	return json.UnmarshalHandleDoubleEncode(bs, &source)
 | |
| }
 | |
| 
 | |
| // ToDB exports an OAuth2Config to a serialized format.
 | |
| func (source *Source) ToDB() ([]byte, error) {
 | |
| 	return json.Marshal(source)
 | |
| }
 | |
| 
 | |
| func init() {
 | |
| 	auth.RegisterTypeConfig(auth.OAuth2, &Source{})
 | |
| }
 |