@@ -95,6 +95,7 @@ type config struct {
9595 SpicedbPreSharedKey string `env:"SMQ_SPICEDB_PRE_SHARED_KEY" envDefault:"12345678"`
9696 PasswordResetURLPrefix string `env:"SMQ_PASSWORD_RESET_URL_PREFIX" envDefault:"http://localhost/password/reset"`
9797 PasswordResetEmailTemplate string `env:"SMQ_PASSWORD_RESET_EMAIL_TEMPLATE" envDefault:"reset-password-email.tmpl"`
98+ EmailTemplate string `env:"SM_EMAIL_TEMPLATE" envDefault:"email.tmpl"`
9899 VerificationURLPrefix string `env:"SMQ_VERIFICATION_URL_PREFIX" envDefault:"http://localhost/verify-email"`
99100 VerificationEmailTemplate string `env:"SMQ_VERIFICATION_EMAIL_TEMPLATE" envDefault:"verification-email.tmpl"`
100101 PassRegex * regexp.Regexp
@@ -146,6 +147,14 @@ func main() {
146147 }
147148 verificationEmailConfig .Template = cfg .VerificationEmailTemplate
148149
150+ customEmailConfig := email.Config {}
151+ if err := env .Parse (& customEmailConfig ); err != nil {
152+ logger .Error (fmt .Sprintf ("failed to load custom email configuration : %s" , err .Error ()))
153+ exitCode = 1
154+ return
155+ }
156+ customEmailConfig .Template = cfg .EmailTemplate
157+
149158 dbConfig := pgclient.Config {Name : defDB }
150159 if err := env .ParseWithOptions (& dbConfig , env.Options {Prefix : envPrefixDB }); err != nil {
151160 logger .Error (err .Error ())
@@ -233,7 +242,7 @@ func main() {
233242 }
234243 logger .Info ("Policy client successfully connected to spicedb gRPC server" )
235244
236- csvc , err := newService (ctx , authz , tokenClient , policyService , domainsClient , db , dbConfig , tracer , cfg , resetPasswordEmailConfig , verificationEmailConfig , logger )
245+ csvc , err := newService (ctx , authz , tokenClient , policyService , domainsClient , db , dbConfig , tracer , cfg , resetPasswordEmailConfig , verificationEmailConfig , customEmailConfig , logger )
237246 if err != nil {
238247 logger .Error (fmt .Sprintf ("failed to setup service: %s" , err ))
239248 exitCode = 1
@@ -294,7 +303,7 @@ func main() {
294303 }
295304}
296305
297- func newService (ctx context.Context , authz smqauthz.Authorization , token grpcTokenV1.TokenServiceClient , policyService policies.Service , domainsClient grpcDomainsV1.DomainsServiceClient , db * sqlx.DB , dbConfig pgclient.Config , tracer trace.Tracer , c config , resetPasswordEmailConfig , verificationEmailConfig email.Config , logger * slog.Logger ) (users.Service , error ) {
306+ func newService (ctx context.Context , authz smqauthz.Authorization , token grpcTokenV1.TokenServiceClient , policyService policies.Service , domainsClient grpcDomainsV1.DomainsServiceClient , db * sqlx.DB , dbConfig pgclient.Config , tracer trace.Tracer , c config , resetPasswordEmailConfig , verificationEmailConfig , customEmailConfig email.Config , logger * slog.Logger ) (users.Service , error ) {
298307 database := pg .NewDatabase (db , dbConfig , tracer )
299308 idp := uuid .New ()
300309 hsr := hasher .New ()
@@ -307,6 +316,7 @@ func newService(ctx context.Context, authz smqauthz.Authorization, token grpcTok
307316 c .VerificationURLPrefix ,
308317 & resetPasswordEmailConfig ,
309318 & verificationEmailConfig ,
319+ & customEmailConfig ,
310320 )
311321 if err != nil {
312322 logger .Error (fmt .Sprintf ("failed to configure e-mailing util: %s" , err .Error ()))
0 commit comments