mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 02:35:49 +08:00
feat: fix the Email provider fails to match bug in GetProviderByCategoryAndRule()
This commit is contained in:
parent
bafa80513b
commit
43393f034b
@ -38,6 +38,19 @@ func (application *Application) GetProviderByCategory(category string) (*Provide
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isProviderItemCountryCodeMatched(providerItem *ProviderItem, countryCode string) bool {
|
||||||
|
if len(providerItem.CountryCode) == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, countryCode2 := range providerItem.CountryCode {
|
||||||
|
if countryCode2 == "" || countryCode2 == "All" || countryCode2 == "all" || countryCode2 == countryCode {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (application *Application) GetProviderByCategoryAndRule(category string, method string, countryCode string) (*Provider, error) {
|
func (application *Application) GetProviderByCategoryAndRule(category string, method string, countryCode string) (*Provider, error) {
|
||||||
providers, err := GetProviders(application.Organization)
|
providers, err := GetProviders(application.Organization)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -54,15 +67,13 @@ func (application *Application) GetProviderByCategoryAndRule(category string, me
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, providerItem := range application.Providers {
|
for _, providerItem := range application.Providers {
|
||||||
includeCode := false
|
if providerItem.Provider != nil && providerItem.Provider.Category == "SMS" {
|
||||||
if providerItem.CountryCode != nil {
|
if !isProviderItemCountryCodeMatched(providerItem, countryCode) {
|
||||||
for _, item := range providerItem.CountryCode {
|
continue
|
||||||
if item == countryCode || item == "All" || item == "" {
|
|
||||||
includeCode = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (providerItem.Rule == method || (providerItem.Rule == "All" || providerItem.Rule == "" || providerItem.Rule == "None")) && includeCode {
|
|
||||||
|
if providerItem.Rule == method || providerItem.Rule == "" || providerItem.Rule == "All" || providerItem.Rule == "all" || providerItem.Rule == "None" {
|
||||||
if provider, ok := m[providerItem.Name]; ok {
|
if provider, ok := m[providerItem.Name]; ok {
|
||||||
return provider, nil
|
return provider, nil
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ class ProviderTable extends React.Component {
|
|||||||
|
|
||||||
// If the provider is email or SMS, set the rule to "all" instead of the default "None"
|
// If the provider is email or SMS, set the rule to "all" instead of the default "None"
|
||||||
if (provider.category === "Email" || provider.category === "SMS") {
|
if (provider.category === "Email" || provider.category === "SMS") {
|
||||||
this.updateField(table, index, "rule", "all");
|
this.updateField(table, index, "rule", "All");
|
||||||
}
|
}
|
||||||
}} >
|
}} >
|
||||||
{
|
{
|
||||||
@ -259,12 +259,12 @@ class ProviderTable extends React.Component {
|
|||||||
);
|
);
|
||||||
} else if (record.provider?.category === "SMS" || record.provider?.category === "Email") {
|
} else if (record.provider?.category === "SMS" || record.provider?.category === "Email") {
|
||||||
if (text === "None") {
|
if (text === "None") {
|
||||||
text = "all";
|
text = "All";
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<Select virtual={false} style={{width: "100%"}}
|
<Select virtual={false} style={{width: "100%"}}
|
||||||
value={text}
|
value={text}
|
||||||
defaultValue="all"
|
defaultValue="All"
|
||||||
onChange={value => {
|
onChange={value => {
|
||||||
this.updateField(table, index, "rule", value);
|
this.updateField(table, index, "rule", value);
|
||||||
}}>
|
}}>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user