diff --git a/handler/routes.go b/handler/routes.go
index 603e5ee..da7ecd2 100644
--- a/handler/routes.go
+++ b/handler/routes.go
@@ -255,18 +255,25 @@ func EmailClient(db store.IStore, mailer emailer.Emailer, emailSubject, emailCon
config := util.BuildClientConfig(*clientData.Client, server, globalSettings)
cfg_att := emailer.Attachment{"wg0.conf", []byte(config)}
- qrdata, err := base64.StdEncoding.DecodeString(strings.TrimPrefix(clientData.QRCode, "data:image/png;base64,"))
- if err != nil {
- return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, "decoding: " + err.Error()})
+ var attachments []emailer.Attachment
+ if clientData.Client.PrivateKey != "" {
+ qrdata, err := base64.StdEncoding.DecodeString(strings.TrimPrefix(clientData.QRCode, "data:image/png;base64,"))
+ if err != nil {
+ return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, "decoding: " + err.Error()})
+ }
+ qr_att := emailer.Attachment{"wg.png", qrdata}
+ attachments = []emailer.Attachment{cfg_att, qr_att}
+ } else {
+ attachments = []emailer.Attachment{cfg_att}
}
- qr_att := emailer.Attachment{"wg.png", qrdata}
err = mailer.Send(
clientData.Client.Name,
payload.Email,
emailSubject,
emailContent,
- []emailer.Attachment{cfg_att, qr_att},
+ attachments,
)
+
if err != nil {
return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, err.Error()})
}
diff --git a/store/jsondb/jsondb.go b/store/jsondb/jsondb.go
index 763756e..4ee35ca 100644
--- a/store/jsondb/jsondb.go
+++ b/store/jsondb/jsondb.go
@@ -155,7 +155,7 @@ func (o *JsonDB) GetClients(hasQRCode bool) ([]model.ClientData, error) {
}
// generate client qrcode image in base64
- if hasQRCode {
+ if hasQRCode && client.PrivateKey != "" {
server, _ := o.GetServer()
globalSettings, _ := o.GetGlobalSettings()
@@ -185,7 +185,7 @@ func (o *JsonDB) GetClientByID(clientID string, hasQRCode bool) (model.ClientDat
}
// generate client qrcode image in base64
- if hasQRCode {
+ if hasQRCode && client.PrivateKey != "" {
server, _ := o.GetServer()
globalSettings, _ := o.GetGlobalSettings()
diff --git a/templates/clients.html b/templates/clients.html
index 16d2057..5d52dd7 100644
--- a/templates/clients.html
+++ b/templates/clients.html
@@ -68,7 +68,7 @@ Wireguard Clients
×
-
+