mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-07-10 17:43:58 +03:00
Initial email settings UI commit
Added email settings page, settings now save in database, ability to send an email to client when it's created
This commit is contained in:
parent
f8a10417ea
commit
c31636b66e
9 changed files with 568 additions and 25 deletions
|
@ -42,6 +42,7 @@ func (o *JsonDB) Init() error {
|
|||
var serverInterfacePath string = path.Join(serverPath, "interfaces.json")
|
||||
var serverKeyPairPath string = path.Join(serverPath, "keypair.json")
|
||||
var globalSettingPath string = path.Join(serverPath, "global_settings.json")
|
||||
var emailSettingPath string = path.Join(serverPath, "email_settings.json")
|
||||
var userPath string = path.Join(o.dbPath, "users")
|
||||
// create directories if they do not exist
|
||||
if _, err := os.Stat(clientPath); os.IsNotExist(err) {
|
||||
|
@ -105,6 +106,27 @@ func (o *JsonDB) Init() error {
|
|||
o.conn.Write("server", "global_settings", globalSetting)
|
||||
}
|
||||
|
||||
// email settings
|
||||
// TODO move ENV_VAR variables and default values to config.go
|
||||
if _, err := os.Stat(emailSettingPath); os.IsNotExist(err) {
|
||||
emailSetting := new(model.EmailSetting)
|
||||
emailSetting.SendgridApiKey = util.LookupEnvOrString("SENDGRID_API_KEY", "")
|
||||
emailSetting.EmailFromName = util.LookupEnvOrString("EMAIL_FROM_NAME", "WireGuard UI")
|
||||
emailSetting.EmailFrom = util.LookupEnvOrString("EMAIL_FROM_ADDRESS", "")
|
||||
emailSetting.SmtpHostname = util.LookupEnvOrString("SMTP_HOSTNAME", "127.0.0.1")
|
||||
emailSetting.SmtpPort = util.LookupEnvOrInt("SMTP_PORT", 25)
|
||||
emailSetting.SmtpUsername = util.LookupEnvOrString("SMTP_USERNAME", "")
|
||||
emailSetting.SmtpPassword = util.LookupEnvOrString("SMTP_PASSWORD", "")
|
||||
emailSetting.SmtpNoTLSCheck = util.LookupEnvOrBool("SMTP_NO_TLS_CHECK", false)
|
||||
emailSetting.SmtpAuthType = util.LookupEnvOrString("SMTP_AUTH_TYPE", "NONE")
|
||||
emailSetting.SmtpEncryption = util.LookupEnvOrString("SMTP_ENCRYPTION", "STARTTLS")
|
||||
emailSetting.DefaultEmailSubject = "Your wireguard configuration"
|
||||
emailSetting.DefaultEmailContent = `Hi,</br>
|
||||
<p>In this email you can find your personal configuration for our wireguard server.</p>
|
||||
<p>Best</p>`
|
||||
o.conn.Write("server", "email_settings", emailSetting)
|
||||
}
|
||||
|
||||
// user info
|
||||
results, err := o.conn.ReadAll("users")
|
||||
if err != nil || len(results) < 1 {
|
||||
|
@ -295,3 +317,13 @@ func (o *JsonDB) SaveServerKeyPair(serverKeyPair model.ServerKeypair) error {
|
|||
func (o *JsonDB) SaveGlobalSettings(globalSettings model.GlobalSetting) error {
|
||||
return o.conn.Write("server", "global_settings", globalSettings)
|
||||
}
|
||||
|
||||
// GetEmailSettings func to query email settings from the database
|
||||
func (o *JsonDB) GetEmailSettings() (model.EmailSetting, error) {
|
||||
settings := model.EmailSetting{}
|
||||
return settings, o.conn.Read("server", "email_settings", &settings)
|
||||
}
|
||||
|
||||
func (o *JsonDB) SaveEmailSettings(emailSettings model.EmailSetting) error {
|
||||
return o.conn.Write("server", "email_settings", emailSettings)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue