diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/config.go | 69 | ||||
-rw-r--r-- | utils/mail.go | 56 |
2 files changed, 36 insertions, 89 deletions
diff --git a/utils/config.go b/utils/config.go index 35631358b..5d786699b 100644 --- a/utils/config.go +++ b/utils/config.go @@ -58,9 +58,9 @@ func FindDir(dir string) string { func ConfigureCmdLineLog() { ls := model.LogSettings{} - ls.ConsoleEnable = true + ls.EnableConsole = true ls.ConsoleLevel = "ERROR" - ls.FileEnable = false + ls.EnableFile = false configureLog(&ls) } @@ -68,7 +68,7 @@ func configureLog(s *model.LogSettings) { l4g.Close() - if s.ConsoleEnable { + if s.EnableConsole { level := l4g.DEBUG if s.ConsoleLevel == "INFO" { level = l4g.INFO @@ -79,7 +79,7 @@ func configureLog(s *model.LogSettings) { l4g.AddFilter("stdout", level, l4g.NewConsoleLogWriter()) } - if s.FileEnable { + if s.EnableFile { var fileFormat = s.FileFormat @@ -161,8 +161,6 @@ func getSanitizeOptions(c *model.Config) map[string]bool { options := map[string]bool{} options["fullname"] = c.PrivacySettings.ShowFullName options["email"] = c.PrivacySettings.ShowEmailAddress - options["skypeid"] = c.PrivacySettings.ShowSkypeId - options["phonenumber"] = c.PrivacySettings.ShowPhoneNumber return options } @@ -175,57 +173,24 @@ func getClientProperties(c *model.Config) map[string]string { props["BuildDate"] = model.BuildDate props["BuildHash"] = model.BuildHash - props["SiteName"] = c.ServiceSettings.SiteName - props["ByPassEmail"] = strconv.FormatBool(c.EmailSettings.ByPassEmail) - props["FeedbackEmail"] = c.EmailSettings.FeedbackEmail - props["ShowEmailAddress"] = strconv.FormatBool(c.PrivacySettings.ShowEmailAddress) - props["AllowPublicLink"] = strconv.FormatBool(c.TeamSettings.AllowPublicLink) - props["SegmentDeveloperKey"] = c.ClientSettings.SegmentDeveloperKey - props["GoogleDeveloperKey"] = c.ClientSettings.GoogleDeveloperKey - props["AnalyticsUrl"] = c.ServiceSettings.AnalyticsUrl - props["ByPassEmail"] = strconv.FormatBool(c.EmailSettings.ByPassEmail) - props["ProfileHeight"] = fmt.Sprintf("%v", c.ImageSettings.ProfileHeight) - props["ProfileWidth"] = fmt.Sprintf("%v", c.ImageSettings.ProfileWidth) - props["ProfileWidth"] = fmt.Sprintf("%v", c.ImageSettings.ProfileWidth) + props["SiteName"] = c.TeamSettings.SiteName props["EnableOAuthServiceProvider"] = strconv.FormatBool(c.ServiceSettings.EnableOAuthServiceProvider) - props["AllowIncomingWebhooks"] = strconv.FormatBool(c.ServiceSettings.AllowIncomingWebhooks) - - return props -} -func IsS3Configured() bool { - if Cfg.AWSSettings.S3AccessKeyId == "" || Cfg.AWSSettings.S3SecretAccessKey == "" || Cfg.AWSSettings.S3Region == "" || Cfg.AWSSettings.S3Bucket == "" { - return false - } - - return true -} + props["SegmentDeveloperKey"] = c.ServiceSettings.SegmentDeveloperKey + props["GoogleDeveloperKey"] = c.ServiceSettings.GoogleDeveloperKey + props["EnableIncomingWebhooks"] = strconv.FormatBool(c.ServiceSettings.EnableIncomingWebhooks) -func GetAllowedAuthServices() []string { - authServices := []string{} - for name, service := range Cfg.SSOSettings { - if service.Allow { - authServices = append(authServices, name) - } - } + props["SendEmailNotifications"] = strconv.FormatBool(c.EmailSettings.SendEmailNotifications) + props["EnableSignUpWithEmail"] = strconv.FormatBool(c.EmailSettings.EnableSignUpWithEmail) + props["FeedbackEmail"] = c.EmailSettings.FeedbackEmail - if !Cfg.ServiceSettings.DisableEmailSignUp { - authServices = append(authServices, "email") - } + props["EnableSignUpWithGitLab"] = strconv.FormatBool(c.GitLabSettings.Enable) - return authServices -} - -func IsServiceAllowed(s string) bool { - if len(s) == 0 { - return false - } + props["ShowEmailAddress"] = strconv.FormatBool(c.PrivacySettings.ShowEmailAddress) - if service, ok := Cfg.SSOSettings[s]; ok { - if service.Allow { - return true - } - } + props["EnablePublicLink"] = strconv.FormatBool(c.FileSettings.EnablePublicLink) + props["ProfileHeight"] = fmt.Sprintf("%v", c.FileSettings.ProfileHeight) + props["ProfileWidth"] = fmt.Sprintf("%v", c.FileSettings.ProfileWidth) - return false + return props } diff --git a/utils/mail.go b/utils/mail.go index 7cb178626..dd975155d 100644 --- a/utils/mail.go +++ b/utils/mail.go @@ -15,43 +15,22 @@ import ( "time" ) -func CheckMailSettings() *model.AppError { - if len(Cfg.EmailSettings.SMTPServer) == 0 || Cfg.EmailSettings.ByPassEmail { - return model.NewAppError("CheckMailSettings", "No email settings present, mail will not be sent", "") - } - conn, err := connectToSMTPServer() - if err != nil { - return err - } - defer conn.Close() - c, err2 := newSMTPClient(conn) - if err2 != nil { - return err - } - defer c.Quit() - defer c.Close() - - return nil -} - -func connectToSMTPServer() (net.Conn, *model.AppError) { - host, _, _ := net.SplitHostPort(Cfg.EmailSettings.SMTPServer) - +func connectToSMTPServer(config *model.Config) (net.Conn, *model.AppError) { var conn net.Conn var err error - if Cfg.EmailSettings.UseTLS { + if config.EmailSettings.ConnectionSecurity == model.CONN_SECURITY_TLS { tlsconfig := &tls.Config{ InsecureSkipVerify: true, - ServerName: host, + ServerName: config.EmailSettings.SMTPServer, } - conn, err = tls.Dial("tcp", Cfg.EmailSettings.SMTPServer, tlsconfig) + conn, err = tls.Dial("tcp", config.EmailSettings.SMTPServer+":"+config.EmailSettings.SMTPPort, tlsconfig) if err != nil { return nil, model.NewAppError("SendMail", "Failed to open TLS connection", err.Error()) } } else { - conn, err = net.Dial("tcp", Cfg.EmailSettings.SMTPServer) + conn, err = net.Dial("tcp", config.EmailSettings.SMTPServer+":"+config.EmailSettings.SMTPPort) if err != nil { return nil, model.NewAppError("SendMail", "Failed to open connection", err.Error()) } @@ -60,24 +39,23 @@ func connectToSMTPServer() (net.Conn, *model.AppError) { return conn, nil } -func newSMTPClient(conn net.Conn) (*smtp.Client, *model.AppError) { - host, _, _ := net.SplitHostPort(Cfg.EmailSettings.SMTPServer) - c, err := smtp.NewClient(conn, host) +func newSMTPClient(conn net.Conn, config *model.Config) (*smtp.Client, *model.AppError) { + c, err := smtp.NewClient(conn, config.EmailSettings.SMTPServer+":"+config.EmailSettings.SMTPPort) if err != nil { l4g.Error("Failed to open a connection to SMTP server %v", err) return nil, model.NewAppError("SendMail", "Failed to open TLS connection", err.Error()) } // GO does not support plain auth over a non encrypted connection. // so if not tls then no auth - auth := smtp.PlainAuth("", Cfg.EmailSettings.SMTPUsername, Cfg.EmailSettings.SMTPPassword, host) - if Cfg.EmailSettings.UseTLS { + auth := smtp.PlainAuth("", config.EmailSettings.SMTPUsername, config.EmailSettings.SMTPPassword, config.EmailSettings.SMTPServer+":"+config.EmailSettings.SMTPPort) + if config.EmailSettings.ConnectionSecurity == model.CONN_SECURITY_TLS { if err = c.Auth(auth); err != nil { return nil, model.NewAppError("SendMail", "Failed to authenticate on SMTP server", err.Error()) } - } else if Cfg.EmailSettings.UseStartTLS { + } else if config.EmailSettings.ConnectionSecurity == model.CONN_SECURITY_STARTTLS { tlsconfig := &tls.Config{ InsecureSkipVerify: true, - ServerName: host, + ServerName: config.EmailSettings.SMTPServer, } c.StartTLS(tlsconfig) if err = c.Auth(auth); err != nil { @@ -88,12 +66,16 @@ func newSMTPClient(conn net.Conn) (*smtp.Client, *model.AppError) { } func SendMail(to, subject, body string) *model.AppError { + return SendMailUsingConfig(to, subject, body, Cfg) +} + +func SendMailUsingConfig(to, subject, body string, config *model.Config) *model.AppError { - if len(Cfg.EmailSettings.SMTPServer) == 0 || Cfg.EmailSettings.ByPassEmail { + if !config.EmailSettings.SendEmailNotifications { return nil } - fromMail := mail.Address{Cfg.EmailSettings.FeedbackName, Cfg.EmailSettings.FeedbackEmail} + fromMail := mail.Address{config.EmailSettings.FeedbackName, config.EmailSettings.FeedbackEmail} toMail := mail.Address{"", to} headers := make(map[string]string) @@ -110,13 +92,13 @@ func SendMail(to, subject, body string) *model.AppError { } message += "\r\n<html><body>" + body + "</body></html>" - conn, err1 := connectToSMTPServer() + conn, err1 := connectToSMTPServer(config) if err1 != nil { return err1 } defer conn.Close() - c, err2 := newSMTPClient(conn) + c, err2 := newSMTPClient(conn, config) if err2 != nil { return err2 } |