fix(oauth): avoid overwriting user state when binding
This commit is contained in:
@@ -170,3 +170,8 @@ func (p *DiscordProvider) SetProviderUserID(user *model.User, providerUserID str
|
||||
func (p *DiscordProvider) GetProviderPrefix() string {
|
||||
return "discord_"
|
||||
}
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column storing this provider's user ID.
|
||||
func (p *DiscordProvider) ProviderUserIDColumn() string {
|
||||
return "discord_id"
|
||||
}
|
||||
|
||||
@@ -312,6 +312,11 @@ func (p *GenericOAuthProvider) GetProviderPrefix() string {
|
||||
return p.config.Slug + "_"
|
||||
}
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column storing this provider's user ID.
|
||||
func (p *GenericOAuthProvider) ProviderUserIDColumn() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// GetProviderId returns the provider ID for binding purposes
|
||||
func (p *GenericOAuthProvider) GetProviderId() int {
|
||||
return p.config.Id
|
||||
|
||||
@@ -176,3 +176,8 @@ func (p *GitHubProvider) SetProviderUserID(user *model.User, providerUserID stri
|
||||
func (p *GitHubProvider) GetProviderPrefix() string {
|
||||
return "github_"
|
||||
}
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column storing this provider's user ID.
|
||||
func (p *GitHubProvider) ProviderUserIDColumn() string {
|
||||
return "github_id"
|
||||
}
|
||||
|
||||
@@ -184,6 +184,11 @@ func (p *LinuxDOProvider) GetProviderPrefix() string {
|
||||
return "linuxdo_"
|
||||
}
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column storing this provider's user ID.
|
||||
func (p *LinuxDOProvider) ProviderUserIDColumn() string {
|
||||
return "linux_do_id"
|
||||
}
|
||||
|
||||
// TrustLevelError indicates the user's trust level is too low
|
||||
type TrustLevelError struct {
|
||||
Required int
|
||||
|
||||
@@ -175,3 +175,8 @@ func (p *OIDCProvider) SetProviderUserID(user *model.User, providerUserID string
|
||||
func (p *OIDCProvider) GetProviderPrefix() string {
|
||||
return "oidc_"
|
||||
}
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column storing this provider's user ID.
|
||||
func (p *OIDCProvider) ProviderUserIDColumn() string {
|
||||
return "oidc_id"
|
||||
}
|
||||
|
||||
@@ -33,4 +33,10 @@ type Provider interface {
|
||||
|
||||
// GetProviderPrefix returns the prefix for auto-generated usernames (e.g., "github_")
|
||||
GetProviderPrefix() string
|
||||
|
||||
// ProviderUserIDColumn returns the users-table column that stores this provider's
|
||||
// user ID, used by bind flows to update only the binding column instead of
|
||||
// writing back a full user snapshot. Providers that persist bindings elsewhere
|
||||
// (e.g. the user_oauth_bindings table) return an empty string.
|
||||
ProviderUserIDColumn() string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user