Skip to content

Commit d6dec26

Browse files
committed
fix: use provider constants
1 parent 83df1d9 commit d6dec26

13 files changed

Lines changed: 117 additions & 89 deletions

File tree

internal/api/admin.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -272,12 +272,12 @@ func (a *API) adminUserUpdate(w http.ResponseWriter, r *http.Request) error {
272272

273273
var identities []models.Identity
274274
if params.Email != "" {
275-
if identity, terr := models.FindIdentityByIdAndProvider(tx, user.ID.String(), "email"); terr != nil && !models.IsNotFoundError(terr) {
275+
if identity, terr := models.FindIdentityByIdAndProvider(tx, user.ID.String(), EmailProvider); terr != nil && !models.IsNotFoundError(terr) {
276276
return terr
277277
} else if identity == nil {
278278
// if the user doesn't have an existing email
279279
// then updating the user's email should create a new email identity
280-
i, terr := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
280+
i, terr := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
281281
Subject: user.ID.String(),
282282
Email: params.Email,
283283
EmailVerified: params.EmailConfirm,
@@ -308,12 +308,12 @@ func (a *API) adminUserUpdate(w http.ResponseWriter, r *http.Request) error {
308308
}
309309

310310
if params.Phone != "" {
311-
if identity, terr := models.FindIdentityByIdAndProvider(tx, user.ID.String(), "phone"); terr != nil && !models.IsNotFoundError(terr) {
311+
if identity, terr := models.FindIdentityByIdAndProvider(tx, user.ID.String(), PhoneProvider); terr != nil && !models.IsNotFoundError(terr) {
312312
return terr
313313
} else if identity == nil {
314314
// if the user doesn't have an existing phone
315315
// then updating the user's phone should create a new phone identity
316-
identity, terr := a.createNewIdentity(tx, user, "phone", structs.Map(provider.Claims{
316+
identity, terr := a.createNewIdentity(tx, user, PhoneProvider, structs.Map(provider.Claims{
317317
Subject: user.ID.String(),
318318
Phone: params.Phone,
319319
PhoneVerified: params.PhoneConfirm,
@@ -416,7 +416,7 @@ func (a *API) adminUserCreate(w http.ResponseWriter, r *http.Request) error {
416416
} else if user != nil {
417417
return apierrors.NewUnprocessableEntityError(apierrors.ErrorCodeEmailExists, DuplicateEmailMsg)
418418
}
419-
providers = append(providers, "email")
419+
providers = append(providers, EmailProvider)
420420
}
421421

422422
if params.Phone != "" {
@@ -429,7 +429,7 @@ func (a *API) adminUserCreate(w http.ResponseWriter, r *http.Request) error {
429429
} else if exists {
430430
return apierrors.NewUnprocessableEntityError(apierrors.ErrorCodePhoneExists, "Phone number already registered by another user")
431431
}
432-
providers = append(providers, "phone")
432+
providers = append(providers, PhoneProvider)
433433
}
434434

435435
if params.Password != nil && params.PasswordHash != "" {
@@ -495,7 +495,7 @@ func (a *API) adminUserCreate(w http.ResponseWriter, r *http.Request) error {
495495

496496
var identities []models.Identity
497497
if user.GetEmail() != "" {
498-
identity, terr := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
498+
identity, terr := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
499499
Subject: user.ID.String(),
500500
Email: user.GetEmail(),
501501
}))
@@ -507,7 +507,7 @@ func (a *API) adminUserCreate(w http.ResponseWriter, r *http.Request) error {
507507
}
508508

509509
if user.GetPhone() != "" {
510-
identity, terr := a.createNewIdentity(tx, user, "phone", structs.Map(provider.Claims{
510+
identity, terr := a.createNewIdentity(tx, user, PhoneProvider, structs.Map(provider.Claims{
511511
Subject: user.ID.String(),
512512
Phone: user.GetPhone(),
513513
}))

internal/api/anonymous.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (a *API) SignupAnonymously(w http.ResponseWriter, r *http.Request) error {
2424
return err
2525
}
2626
params.Aud = aud
27-
params.Provider = "anonymous"
27+
params.Provider = AnonymousProvider
2828

2929
newUser, err := params.ToUserModel(false /* <- isSSOUser */)
3030
if err != nil {

internal/api/external.go

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (a *API) handleOAuthCallback(r *http.Request) (*OAuthProviderData, error) {
145145
var oAuthResponseData *OAuthProviderData
146146
var err error
147147
switch providerType {
148-
case "twitter":
148+
case TwitterProvider:
149149
// future OAuth1.0 providers will use this method
150150
oAuthResponseData, err = a.oAuth1Callback(ctx, providerType)
151151
default:
@@ -389,7 +389,7 @@ func (a *API) createAccountFromExternalIdentity(tx *storage.Connection, r *http.
389389
return 0, nil, apierrors.NewForbiddenError(apierrors.ErrorCodeUserBanned, "User is banned")
390390
}
391391

392-
hasEmails := providerType != "web3" && !(emailOptional && decision.CandidateEmail.Email == "")
392+
hasEmails := providerType != Web3Provider && !(emailOptional && decision.CandidateEmail.Email == "")
393393

394394
if hasEmails && !user.IsConfirmed() {
395395
// The user may have other unconfirmed email + password
@@ -602,79 +602,79 @@ func (a *API) Provider(ctx context.Context, name string, scopes string) (provide
602602
}
603603

604604
switch name {
605-
case "apple":
605+
case AppleProvider:
606606
pConfig = config.External.Apple
607607
p, err = provider.NewAppleProvider(ctx, pConfig, a.oidcCache)
608-
case "azure":
608+
case AzureProvider:
609609
pConfig = config.External.Azure
610610
p, err = provider.NewAzureProvider(pConfig, scopes, a.oidcCache)
611-
case "bitbucket":
611+
case BitbucketProvider:
612612
pConfig = config.External.Bitbucket
613613
p, err = provider.NewBitbucketProvider(pConfig)
614-
case "discord":
614+
case DiscordProvider:
615615
pConfig = config.External.Discord
616616
p, err = provider.NewDiscordProvider(pConfig, scopes)
617-
case "facebook":
617+
case FacebookProvider:
618618
pConfig = config.External.Facebook
619619
p, err = provider.NewFacebookProvider(pConfig, scopes)
620-
case "figma":
620+
case FigmaProvider:
621621
pConfig = config.External.Figma
622622
p, err = provider.NewFigmaProvider(pConfig, scopes)
623-
case "fly":
623+
case FlyProvider:
624624
pConfig = config.External.Fly
625625
p, err = provider.NewFlyProvider(pConfig, scopes)
626-
case "github":
626+
case GitHubProvider:
627627
pConfig = config.External.Github
628628
p, err = provider.NewGithubProvider(pConfig, scopes)
629-
case "gitlab":
629+
case GitLabProvider:
630630
pConfig = config.External.Gitlab
631631
p, err = provider.NewGitlabProvider(pConfig, scopes)
632-
case "google":
632+
case GoogleProvider:
633633
pConfig = config.External.Google
634634
p, err = provider.NewGoogleProvider(ctx, pConfig, scopes, a.oidcCache)
635-
case "kakao":
635+
case KakaoProvider:
636636
pConfig = config.External.Kakao
637637
p, err = provider.NewKakaoProvider(pConfig, scopes)
638-
case "keycloak":
638+
case KeycloakProvider:
639639
pConfig = config.External.Keycloak
640640
p, err = provider.NewKeycloakProvider(pConfig, scopes)
641-
case "linkedin":
641+
case LinkedInProvider:
642642
pConfig = config.External.Linkedin
643643
p, err = provider.NewLinkedinProvider(pConfig, scopes)
644-
case "linkedin_oidc":
644+
case LinkedInOIDCProvider:
645645
pConfig = config.External.LinkedinOIDC
646646
p, err = provider.NewLinkedinOIDCProvider(ctx, pConfig, scopes, a.oidcCache)
647-
case "notion":
647+
case NotionProvider:
648648
pConfig = config.External.Notion
649649
p, err = provider.NewNotionProvider(pConfig)
650-
case "snapchat":
650+
case SnapchatProvider:
651651
pConfig = config.External.Snapchat
652652
p, err = provider.NewSnapchatProvider(pConfig, scopes)
653-
case "spotify":
653+
case SpotifyProvider:
654654
pConfig = config.External.Spotify
655655
p, err = provider.NewSpotifyProvider(pConfig, scopes)
656-
case "slack":
656+
case SlackProvider:
657657
pConfig = config.External.Slack
658658
p, err = provider.NewSlackProvider(pConfig, scopes)
659-
case "slack_oidc":
659+
case SlackOIDCProvider:
660660
pConfig = config.External.SlackOIDC
661661
p, err = provider.NewSlackOIDCProvider(pConfig, scopes)
662-
case "twitch":
662+
case TwitchProvider:
663663
pConfig = config.External.Twitch
664664
p, err = provider.NewTwitchProvider(pConfig, scopes)
665-
case "twitter":
665+
case TwitterProvider:
666666
pConfig = config.External.Twitter
667667
p, err = provider.NewTwitterProvider(pConfig, scopes)
668-
case "x":
668+
case XProvider:
669669
pConfig = config.External.X
670670
p, err = provider.NewXProvider(pConfig, scopes)
671-
case "vercel_marketplace":
671+
case VercelMarketplaceProvider:
672672
pConfig = config.External.VercelMarketplace
673673
p, err = provider.NewVercelMarketplaceProvider(ctx, pConfig, scopes, a.oidcCache)
674-
case "workos":
674+
case WorkOSProvider:
675675
pConfig = config.External.WorkOS
676676
p, err = provider.NewWorkOSProvider(pConfig)
677-
case "zoom":
677+
case ZoomProvider:
678678
pConfig = config.External.Zoom
679679
p, err = provider.NewZoomProvider(pConfig)
680680
default:

internal/api/identity.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (a *API) DeleteIdentity(w http.ResponseWriter, r *http.Request) error {
6565
}
6666

6767
switch identityToBeDeleted.Provider {
68-
case "phone":
68+
case PhoneProvider:
6969
user.PhoneConfirmedAt = nil
7070
if terr := user.SetPhone(tx, ""); terr != nil {
7171
return apierrors.NewInternalServerError("Database error updating user phone").WithInternalError(terr)
@@ -126,12 +126,12 @@ func (a *API) ensureEmailIdentityForPassword(tx *storage.Connection, user *model
126126
return apierrors.NewInternalServerError("Database error finding identities").WithInternalError(terr)
127127
}
128128
for _, identity := range identities {
129-
if identity.Provider == "email" {
129+
if identity.Provider == EmailProvider {
130130
return nil
131131
}
132132
}
133133

134-
identity, terr := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
134+
identity, terr := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
135135
Subject: user.ID.String(),
136136
Email: email,
137137
EmailVerified: true,

internal/api/invite.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (a *API) Invite(w http.ResponseWriter, r *http.Request) error {
4747
Email: params.Email,
4848
Data: params.Data,
4949
Aud: aud,
50-
Provider: "email",
50+
Provider: EmailProvider,
5151
}
5252

5353
// because params above sets no password, this method
@@ -73,7 +73,7 @@ func (a *API) Invite(w http.ResponseWriter, r *http.Request) error {
7373
if err != nil {
7474
return err
7575
}
76-
identity, err := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
76+
identity, err := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
7777
Subject: user.ID.String(),
7878
Email: user.GetEmail(),
7979
}))

internal/api/mail.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func (a *API) adminGenerateLink(w http.ResponseWriter, r *http.Request) error {
107107
Email: params.Email,
108108
Password: params.Password,
109109
Data: params.Data,
110-
Provider: "email",
110+
Provider: EmailProvider,
111111
Aud: aud,
112112
}
113113

@@ -127,7 +127,7 @@ func (a *API) adminGenerateLink(w http.ResponseWriter, r *http.Request) error {
127127
signupParams := &SignupParams{
128128
Email: params.Email,
129129
Data: params.Data,
130-
Provider: "email",
130+
Provider: EmailProvider,
131131
Aud: aud,
132132
}
133133

@@ -171,7 +171,7 @@ func (a *API) adminGenerateLink(w http.ResponseWriter, r *http.Request) error {
171171
if terr != nil {
172172
return terr
173173
}
174-
identity, terr := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
174+
identity, terr := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
175175
Subject: user.ID.String(),
176176
Email: user.GetEmail(),
177177
}))
@@ -217,7 +217,7 @@ func (a *API) adminGenerateLink(w http.ResponseWriter, r *http.Request) error {
217217
if terr != nil {
218218
return terr
219219
}
220-
identity, terr := a.createNewIdentity(tx, user, "email", structs.Map(provider.Claims{
220+
identity, terr := a.createNewIdentity(tx, user, EmailProvider, structs.Map(provider.Claims{
221221
Subject: user.ID.String(),
222222
Email: user.GetEmail(),
223223
}))

internal/api/provider_constants.go

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@ package api
22

33
// Provider constants
44
const (
5-
EmailProvider = "email"
6-
PhoneProvider = "phone"
5+
AnonymousProvider = "anonymous"
6+
AppleProvider = "apple"
7+
AzureProvider = "azure"
8+
BitbucketProvider = "bitbucket"
9+
DiscordProvider = "discord"
10+
EmailProvider = "email"
11+
FacebookProvider = "facebook"
12+
FigmaProvider = "figma"
13+
FlyProvider = "fly"
14+
GitHubProvider = "github"
15+
GitLabProvider = "gitlab"
16+
GoogleProvider = "google"
17+
KakaoProvider = "kakao"
18+
KeycloakProvider = "keycloak"
19+
LinkedInProvider = "linkedin"
20+
LinkedInOIDCProvider = "linkedin_oidc"
21+
NotionProvider = "notion"
22+
PhoneProvider = "phone"
23+
SAMLProvider = "saml"
24+
SlackProvider = "slack"
25+
SlackOIDCProvider = "slack_oidc"
26+
SnapchatProvider = "snapchat"
27+
SpotifyProvider = "spotify"
28+
TwitchProvider = "twitch"
29+
TwitterProvider = "twitter"
30+
VercelMarketplaceProvider = "vercel_marketplace"
31+
Web3Provider = "web3"
32+
WorkOSProvider = "workos"
33+
XProvider = "x"
34+
ZoomProvider = "zoom"
735
)

0 commit comments

Comments
 (0)