From f2fe5847931d72824b7f3b91456fa167525701ec Mon Sep 17 00:00:00 2001 From: Lakhan Samani Date: Tue, 25 Oct 2022 08:18:29 +0530 Subject: [PATCH] feat: add support for SMTP LocalName Resolves #274 --- .../EnvComponents/EmailConfiguration.tsx | 20 ++++++ dashboard/src/constants.ts | 2 + dashboard/src/graphql/queries/index.ts | 1 + dashboard/src/pages/Environment.tsx | 1 + server/constants/env.go | 2 + server/email/email.go | 12 ++++ server/env/env.go | 8 +++ server/go.sum | 10 ++- server/graph/generated/generated.go | 67 ++++++++++++++++++- server/graph/model/models_gen.go | 2 + server/graph/schema.graphqls | 2 + server/resolvers/env.go | 3 + server/resolvers/forgot_password.go | 5 -- server/test/resolvers_test.go | 2 - 14 files changed, 123 insertions(+), 14 deletions(-) diff --git a/dashboard/src/components/EnvComponents/EmailConfiguration.tsx b/dashboard/src/components/EnvComponents/EmailConfiguration.tsx index 86280fb..61164e5 100644 --- a/dashboard/src/components/EnvComponents/EmailConfiguration.tsx +++ b/dashboard/src/components/EnvComponents/EmailConfiguration.tsx @@ -48,6 +48,26 @@ const EmailConfigurations = ({ /> + + + SMTP Local Name: + +
+ +
+
{ SMTP_PORT: '', SMTP_USERNAME: '', SMTP_PASSWORD: '', + SMTP_LOCAL_NAME: '', SENDER_EMAIL: '', ALLOWED_ORIGINS: [], ORGANIZATION_NAME: '', diff --git a/server/constants/env.go b/server/constants/env.go index c0af6a3..a7dbd65 100644 --- a/server/constants/env.go +++ b/server/constants/env.go @@ -51,6 +51,8 @@ const ( EnvKeySmtpUsername = "SMTP_USERNAME" // EnvKeySmtpPassword key for env variable SMTP_PASSWORD EnvKeySmtpPassword = "SMTP_PASSWORD" + // EnvKeySmtpLocalName key for env variable SMTP_LOCAL_NAME + EnvKeySmtpLocalName = "SMTP_LOCAL_NAME" // EnvKeySenderEmail key for env variable SENDER_EMAIL EnvKeySenderEmail = "SENDER_EMAIL" // EnvKeyIsEmailServiceEnabled key for env variable IS_EMAIL_SERVICE_ENABLED diff --git a/server/email/email.go b/server/email/email.go index fe5f7ff..5120d05 100644 --- a/server/email/email.go +++ b/server/email/email.go @@ -5,6 +5,7 @@ import ( "context" "crypto/tls" "strconv" + "strings" "text/template" log "github.com/sirupsen/logrus" @@ -126,6 +127,12 @@ func SendEmail(to []string, event string, data map[string]interface{}) error { return err } + smtpLocalName, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeySmtpLocalName) + if err != nil { + log.Debugf("Error while getting smtp localname from env variable: %v", err) + smtpLocalName = "" + } + isProd, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyIsProd) if err != nil { log.Errorf("Error while getting env variable: %v", err) @@ -141,6 +148,11 @@ func SendEmail(to []string, event string, data map[string]interface{}) error { if !isProd { d.TLSConfig = &tls.Config{InsecureSkipVerify: true} } + + if strings.TrimSpace(smtpLocalName) != "" { + d.LocalName = smtpLocalName + } + if err := d.DialAndSend(m); err != nil { log.Debug("SMTP Failed: ", err) return err diff --git a/server/env/env.go b/server/env/env.go index 79777f0..e15269d 100644 --- a/server/env/env.go +++ b/server/env/env.go @@ -55,6 +55,7 @@ func InitAllEnv() error { osSmtpPort := os.Getenv(constants.EnvKeySmtpPort) osSmtpUsername := os.Getenv(constants.EnvKeySmtpUsername) osSmtpPassword := os.Getenv(constants.EnvKeySmtpPassword) + osSmtpLocalName := os.Getenv(constants.EnvKeySmtpLocalName) osSenderEmail := os.Getenv(constants.EnvKeySenderEmail) osJwtType := os.Getenv(constants.EnvKeyJwtType) osJwtSecret := os.Getenv(constants.EnvKeyJwtSecret) @@ -205,6 +206,13 @@ func InitAllEnv() error { envData[constants.EnvKeySmtpUsername] = osSmtpUsername } + if val, ok := envData[constants.EnvKeySmtpLocalName]; !ok || val == "" { + envData[constants.EnvKeySmtpLocalName] = osSmtpLocalName + } + if osSmtpLocalName != "" && envData[constants.EnvKeySmtpLocalName] != osSmtpLocalName { + envData[constants.EnvKeySmtpLocalName] = osSmtpLocalName + } + if val, ok := envData[constants.EnvKeySmtpPassword]; !ok || val == "" { envData[constants.EnvKeySmtpPassword] = osSmtpPassword } diff --git a/server/go.sum b/server/go.sum index 8f3f5c2..ece2bd3 100644 --- a/server/go.sum +++ b/server/go.sum @@ -123,7 +123,6 @@ github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gocql/gocql v1.2.0 h1:TZhsCd7fRuye4VyHr3WCvWwIQaZUmjsqnSIXK9FcVCE= github.com/gocql/gocql v1.2.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= -github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= @@ -258,6 +257,7 @@ github.com/jinzhu/now v1.1.3 h1:PlHq1bSCSZL9K0wUhbm2pGLoTWs2GwVhsP6emvGV/ZI= github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -492,12 +492,11 @@ golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220930213112-107f3e3c3b0b h1:uKO3Js8lXGjpjdc4J3rqs0/Ex5yDKUGfk43tTYWVLas= golang.org/x/net v0.0.0-20220930213112-107f3e3c3b0b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -561,14 +560,13 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI= golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/server/graph/generated/generated.go b/server/graph/generated/generated.go index ef14cb9..f4fd1bd 100644 --- a/server/graph/generated/generated.go +++ b/server/graph/generated/generated.go @@ -118,6 +118,7 @@ type ComplexityRoot struct { ResetPasswordURL func(childComplexity int) int Roles func(childComplexity int) int SMTPHost func(childComplexity int) int + SMTPLocalName func(childComplexity int) int SMTPPassword func(childComplexity int) int SMTPPort func(childComplexity int) int SMTPUsername func(childComplexity int) int @@ -805,6 +806,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Env.SMTPHost(childComplexity), true + case "Env.SMTP_LOCAL_NAME": + if e.complexity.Env.SMTPLocalName == nil { + break + } + + return e.complexity.Env.SMTPLocalName(childComplexity), true + case "Env.SMTP_PASSWORD": if e.complexity.Env.SMTPPassword == nil { break @@ -2059,6 +2067,7 @@ type Env { SMTP_PORT: String SMTP_USERNAME: String SMTP_PASSWORD: String + SMTP_LOCAL_NAME: String SENDER_EMAIL: String JWT_TYPE: String JWT_SECRET: String @@ -2168,6 +2177,7 @@ input UpdateEnvInput { SMTP_PORT: String SMTP_USERNAME: String SMTP_PASSWORD: String + SMTP_LOCAL_NAME: String SENDER_EMAIL: String JWT_TYPE: String JWT_SECRET: String @@ -4442,6 +4452,47 @@ func (ec *executionContext) fieldContext_Env_SMTP_PASSWORD(ctx context.Context, return fc, nil } +func (ec *executionContext) _Env_SMTP_LOCAL_NAME(ctx context.Context, field graphql.CollectedField, obj *model.Env) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Env_SMTP_LOCAL_NAME(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.SMTPLocalName, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2áš–string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Env_SMTP_LOCAL_NAME(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Env", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Env_SENDER_EMAIL(ctx context.Context, field graphql.CollectedField, obj *model.Env) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Env_SENDER_EMAIL(ctx, field) if err != nil { @@ -9344,6 +9395,8 @@ func (ec *executionContext) fieldContext_Query__env(ctx context.Context, field g return ec.fieldContext_Env_SMTP_USERNAME(ctx, field) case "SMTP_PASSWORD": return ec.fieldContext_Env_SMTP_PASSWORD(ctx, field) + case "SMTP_LOCAL_NAME": + return ec.fieldContext_Env_SMTP_LOCAL_NAME(ctx, field) case "SENDER_EMAIL": return ec.fieldContext_Env_SENDER_EMAIL(ctx, field) case "JWT_TYPE": @@ -14970,7 +15023,7 @@ func (ec *executionContext) unmarshalInputUpdateEnvInput(ctx context.Context, ob asMap[k] = v } - fieldsInOrder := [...]string{"ACCESS_TOKEN_EXPIRY_TIME", "ADMIN_SECRET", "CUSTOM_ACCESS_TOKEN_SCRIPT", "OLD_ADMIN_SECRET", "SMTP_HOST", "SMTP_PORT", "SMTP_USERNAME", "SMTP_PASSWORD", "SENDER_EMAIL", "JWT_TYPE", "JWT_SECRET", "JWT_PRIVATE_KEY", "JWT_PUBLIC_KEY", "ALLOWED_ORIGINS", "APP_URL", "RESET_PASSWORD_URL", "APP_COOKIE_SECURE", "ADMIN_COOKIE_SECURE", "DISABLE_EMAIL_VERIFICATION", "DISABLE_BASIC_AUTHENTICATION", "DISABLE_MAGIC_LINK_LOGIN", "DISABLE_LOGIN_PAGE", "DISABLE_SIGN_UP", "DISABLE_REDIS_FOR_ENV", "DISABLE_STRONG_PASSWORD", "DISABLE_MULTI_FACTOR_AUTHENTICATION", "ENFORCE_MULTI_FACTOR_AUTHENTICATION", "ROLES", "PROTECTED_ROLES", "DEFAULT_ROLES", "JWT_ROLE_CLAIM", "GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET", "GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET", "FACEBOOK_CLIENT_ID", "FACEBOOK_CLIENT_SECRET", "LINKEDIN_CLIENT_ID", "LINKEDIN_CLIENT_SECRET", "APPLE_CLIENT_ID", "APPLE_CLIENT_SECRET", "TWITTER_CLIENT_ID", "TWITTER_CLIENT_SECRET", "ORGANIZATION_NAME", "ORGANIZATION_LOGO"} + fieldsInOrder := [...]string{"ACCESS_TOKEN_EXPIRY_TIME", "ADMIN_SECRET", "CUSTOM_ACCESS_TOKEN_SCRIPT", "OLD_ADMIN_SECRET", "SMTP_HOST", "SMTP_PORT", "SMTP_USERNAME", "SMTP_PASSWORD", "SMTP_LOCAL_NAME", "SENDER_EMAIL", "JWT_TYPE", "JWT_SECRET", "JWT_PRIVATE_KEY", "JWT_PUBLIC_KEY", "ALLOWED_ORIGINS", "APP_URL", "RESET_PASSWORD_URL", "APP_COOKIE_SECURE", "ADMIN_COOKIE_SECURE", "DISABLE_EMAIL_VERIFICATION", "DISABLE_BASIC_AUTHENTICATION", "DISABLE_MAGIC_LINK_LOGIN", "DISABLE_LOGIN_PAGE", "DISABLE_SIGN_UP", "DISABLE_REDIS_FOR_ENV", "DISABLE_STRONG_PASSWORD", "DISABLE_MULTI_FACTOR_AUTHENTICATION", "ENFORCE_MULTI_FACTOR_AUTHENTICATION", "ROLES", "PROTECTED_ROLES", "DEFAULT_ROLES", "JWT_ROLE_CLAIM", "GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET", "GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET", "FACEBOOK_CLIENT_ID", "FACEBOOK_CLIENT_SECRET", "LINKEDIN_CLIENT_ID", "LINKEDIN_CLIENT_SECRET", "APPLE_CLIENT_ID", "APPLE_CLIENT_SECRET", "TWITTER_CLIENT_ID", "TWITTER_CLIENT_SECRET", "ORGANIZATION_NAME", "ORGANIZATION_LOGO"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -15041,6 +15094,14 @@ func (ec *executionContext) unmarshalInputUpdateEnvInput(ctx context.Context, ob if err != nil { return it, err } + case "SMTP_LOCAL_NAME": + var err error + + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("SMTP_LOCAL_NAME")) + it.SMTPLocalName, err = ec.unmarshalOString2áš–string(ctx, v) + if err != nil { + return it, err + } case "SENDER_EMAIL": var err error @@ -16026,6 +16087,10 @@ func (ec *executionContext) _Env(ctx context.Context, sel ast.SelectionSet, obj out.Values[i] = ec._Env_SMTP_PASSWORD(ctx, field, obj) + case "SMTP_LOCAL_NAME": + + out.Values[i] = ec._Env_SMTP_LOCAL_NAME(ctx, field, obj) + case "SENDER_EMAIL": out.Values[i] = ec._Env_SENDER_EMAIL(ctx, field, obj) diff --git a/server/graph/model/models_gen.go b/server/graph/model/models_gen.go index a3d1478..f95342b 100644 --- a/server/graph/model/models_gen.go +++ b/server/graph/model/models_gen.go @@ -74,6 +74,7 @@ type Env struct { SMTPPort *string `json:"SMTP_PORT"` SMTPUsername *string `json:"SMTP_USERNAME"` SMTPPassword *string `json:"SMTP_PASSWORD"` + SMTPLocalName *string `json:"SMTP_LOCAL_NAME"` SenderEmail *string `json:"SENDER_EMAIL"` JwtType *string `json:"JWT_TYPE"` JwtSecret *string `json:"JWT_SECRET"` @@ -271,6 +272,7 @@ type UpdateEnvInput struct { SMTPPort *string `json:"SMTP_PORT"` SMTPUsername *string `json:"SMTP_USERNAME"` SMTPPassword *string `json:"SMTP_PASSWORD"` + SMTPLocalName *string `json:"SMTP_LOCAL_NAME"` SenderEmail *string `json:"SENDER_EMAIL"` JwtType *string `json:"JWT_TYPE"` JwtSecret *string `json:"JWT_SECRET"` diff --git a/server/graph/schema.graphqls b/server/graph/schema.graphqls index e19a821..c12abb1 100644 --- a/server/graph/schema.graphqls +++ b/server/graph/schema.graphqls @@ -110,6 +110,7 @@ type Env { SMTP_PORT: String SMTP_USERNAME: String SMTP_PASSWORD: String + SMTP_LOCAL_NAME: String SENDER_EMAIL: String JWT_TYPE: String JWT_SECRET: String @@ -219,6 +220,7 @@ input UpdateEnvInput { SMTP_PORT: String SMTP_USERNAME: String SMTP_PASSWORD: String + SMTP_LOCAL_NAME: String SENDER_EMAIL: String JWT_TYPE: String JWT_SECRET: String diff --git a/server/resolvers/env.go b/server/resolvers/env.go index 4765769..1c6772b 100644 --- a/server/resolvers/env.go +++ b/server/resolvers/env.go @@ -89,6 +89,9 @@ func EnvResolver(ctx context.Context) (*model.Env, error) { if val, ok := store[constants.EnvKeySenderEmail]; ok { res.SenderEmail = refs.NewStringRef(val.(string)) } + if val, ok := store[constants.EnvKeySmtpLocalName]; ok { + res.SMTPLocalName = refs.NewStringRef(val.(string)) + } if val, ok := store[constants.EnvKeyJwtType]; ok { res.JwtType = refs.NewStringRef(val.(string)) } diff --git a/server/resolvers/forgot_password.go b/server/resolvers/forgot_password.go index 3cb169d..25a05f4 100644 --- a/server/resolvers/forgot_password.go +++ b/server/resolvers/forgot_password.go @@ -66,21 +66,16 @@ func ForgotPasswordResolver(ctx context.Context, params model.ForgotPasswordInpu redirectURI := "" // give higher preference to params redirect uri if strings.TrimSpace(refs.StringValue(params.RedirectURI)) != "" { - fmt.Println("=> redirect uri from here1", redirectURI) redirectURI = refs.StringValue(params.RedirectURI) } else { redirectURI, err = memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyResetPasswordURL) - fmt.Println("=> redirect uri from here2", redirectURI) if err != nil { log.Debug("ResetPasswordURL not found using default app url: ", err) redirectURI = hostname + "/app/reset-password" - fmt.Println("=> redirect uri from here3", redirectURI) memorystore.Provider.UpdateEnvVariable(constants.EnvKeyResetPasswordURL, redirectURI) } } - fmt.Println("=> redirect uri", redirectURI) - verificationToken, err := token.CreateVerificationToken(params.Email, constants.VerificationTypeForgotPassword, hostname, nonceHash, redirectURI) if err != nil { log.Debug("Failed to create verification token", err) diff --git a/server/test/resolvers_test.go b/server/test/resolvers_test.go index 0ff918b..389a153 100644 --- a/server/test/resolvers_test.go +++ b/server/test/resolvers_test.go @@ -2,7 +2,6 @@ package test import ( "context" - "fmt" "os" "strings" "testing" @@ -68,7 +67,6 @@ func TestResolvers(t *testing.T) { // clean the persisted config for test to use fresh config envData, err := db.Provider.GetEnv(ctx) - fmt.Println("envData", envData.ID, envData.EnvData) if err == nil && envData.ID != "" { envData.EnvData = "" _, err = db.Provider.UpdateEnv(ctx, envData)