mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Move oauth2 error to oauth2 service package (#17603)
This commit is contained in:
		@@ -5,7 +5,7 @@
 | 
			
		||||
package oauth2
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RegisterSource causes an OAuth2 configuration to be registered
 | 
			
		||||
@@ -20,11 +20,28 @@ func (source *Source) UnregisterSource() error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ErrOpenIDConnectInitialize represents a "OpenIDConnectInitialize" kind of error.
 | 
			
		||||
type ErrOpenIDConnectInitialize struct {
 | 
			
		||||
	OpenIDConnectAutoDiscoveryURL string
 | 
			
		||||
	ProviderName                  string
 | 
			
		||||
	Cause                         error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsErrOpenIDConnectInitialize checks if an error is a ExternalLoginUserAlreadyExist.
 | 
			
		||||
func IsErrOpenIDConnectInitialize(err error) bool {
 | 
			
		||||
	_, ok := err.(ErrOpenIDConnectInitialize)
 | 
			
		||||
	return ok
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (err ErrOpenIDConnectInitialize) Error() string {
 | 
			
		||||
	return fmt.Sprintf("Failed to initialize OpenID Connect Provider with name '%s' with url '%s': %v", err.ProviderName, err.OpenIDConnectAutoDiscoveryURL, err.Cause)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// wrapOpenIDConnectInitializeError is used to wrap the error but this cannot be done in modules/auth/oauth2
 | 
			
		||||
// inside oauth2: import cycle not allowed models -> modules/auth/oauth2 -> models
 | 
			
		||||
func wrapOpenIDConnectInitializeError(err error, providerName string, source *Source) error {
 | 
			
		||||
	if err != nil && source.Provider == "openidConnect" {
 | 
			
		||||
		err = models.ErrOpenIDConnectInitialize{ProviderName: providerName, OpenIDConnectAutoDiscoveryURL: source.OpenIDConnectAutoDiscoveryURL, Cause: err}
 | 
			
		||||
		err = ErrOpenIDConnectInitialize{ProviderName: providerName, OpenIDConnectAutoDiscoveryURL: source.OpenIDConnectAutoDiscoveryURL, Cause: err}
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user