Skip to content

Commit 0e189ee

Browse files
authored
Move oauth2 error to oauth2 service package (#17603)
1 parent 43bbc54 commit 0e189ee

File tree

3 files changed

+20
-28
lines changed

3 files changed

+20
-28
lines changed

models/error_oauth2.go

Lines changed: 0 additions & 24 deletions
This file was deleted.

routers/web/admin/auths.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"net/http"
1111
"regexp"
1212

13-
"code.gitea.io/gitea/models"
1413
"code.gitea.io/gitea/models/login"
1514
"code.gitea.io/gitea/modules/auth/pam"
1615
"code.gitea.io/gitea/modules/base"
@@ -386,7 +385,7 @@ func EditAuthSourcePost(ctx *context.Context) {
386385
source.IsSyncEnabled = form.IsSyncEnabled
387386
source.Cfg = config
388387
if err := login.UpdateSource(source); err != nil {
389-
if models.IsErrOpenIDConnectInitialize(err) {
388+
if oauth2.IsErrOpenIDConnectInitialize(err) {
390389
ctx.Flash.Error(err.Error(), true)
391390
ctx.HTML(http.StatusOK, tplAuthEdit)
392391
} else {

services/auth/source/oauth2/source_register.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package oauth2
66

77
import (
8-
"code.gitea.io/gitea/models"
8+
"fmt"
99
)
1010

1111
// RegisterSource causes an OAuth2 configuration to be registered
@@ -20,11 +20,28 @@ func (source *Source) UnregisterSource() error {
2020
return nil
2121
}
2222

23+
// ErrOpenIDConnectInitialize represents a "OpenIDConnectInitialize" kind of error.
24+
type ErrOpenIDConnectInitialize struct {
25+
OpenIDConnectAutoDiscoveryURL string
26+
ProviderName string
27+
Cause error
28+
}
29+
30+
// IsErrOpenIDConnectInitialize checks if an error is a ExternalLoginUserAlreadyExist.
31+
func IsErrOpenIDConnectInitialize(err error) bool {
32+
_, ok := err.(ErrOpenIDConnectInitialize)
33+
return ok
34+
}
35+
36+
func (err ErrOpenIDConnectInitialize) Error() string {
37+
return fmt.Sprintf("Failed to initialize OpenID Connect Provider with name '%s' with url '%s': %v", err.ProviderName, err.OpenIDConnectAutoDiscoveryURL, err.Cause)
38+
}
39+
2340
// wrapOpenIDConnectInitializeError is used to wrap the error but this cannot be done in modules/auth/oauth2
2441
// inside oauth2: import cycle not allowed models -> modules/auth/oauth2 -> models
2542
func wrapOpenIDConnectInitializeError(err error, providerName string, source *Source) error {
2643
if err != nil && source.Provider == "openidConnect" {
27-
err = models.ErrOpenIDConnectInitialize{ProviderName: providerName, OpenIDConnectAutoDiscoveryURL: source.OpenIDConnectAutoDiscoveryURL, Cause: err}
44+
err = ErrOpenIDConnectInitialize{ProviderName: providerName, OpenIDConnectAutoDiscoveryURL: source.OpenIDConnectAutoDiscoveryURL, Cause: err}
2845
}
2946
return err
3047
}

0 commit comments

Comments
 (0)