add handling of missing QR

This commit is contained in:
Maxim Kochurov 2022-03-13 13:12:13 +00:00
parent e89f7d31d1
commit ec6f0b7506
3 changed files with 15 additions and 8 deletions

View file

@ -255,18 +255,25 @@ func EmailClient(db store.IStore, mailer emailer.Emailer, emailSubject, emailCon
config := util.BuildClientConfig(*clientData.Client, server, globalSettings) config := util.BuildClientConfig(*clientData.Client, server, globalSettings)
cfg_att := emailer.Attachment{"wg0.conf", []byte(config)} cfg_att := emailer.Attachment{"wg0.conf", []byte(config)}
qrdata, err := base64.StdEncoding.DecodeString(strings.TrimPrefix(clientData.QRCode, "data:image/png;base64,")) var attachments []emailer.Attachment
if err != nil { if clientData.Client.PrivateKey != "" {
return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, "decoding: " + err.Error()}) 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( err = mailer.Send(
clientData.Client.Name, clientData.Client.Name,
payload.Email, payload.Email,
emailSubject, emailSubject,
emailContent, emailContent,
[]emailer.Attachment{cfg_att, qr_att}, attachments,
) )
if err != nil { if err != nil {
return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, err.Error()}) return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, err.Error()})
} }

View file

@ -155,7 +155,7 @@ func (o *JsonDB) GetClients(hasQRCode bool) ([]model.ClientData, error) {
} }
// generate client qrcode image in base64 // generate client qrcode image in base64
if hasQRCode { if hasQRCode && client.PrivateKey != "" {
server, _ := o.GetServer() server, _ := o.GetServer()
globalSettings, _ := o.GetGlobalSettings() globalSettings, _ := o.GetGlobalSettings()
@ -185,7 +185,7 @@ func (o *JsonDB) GetClientByID(clientID string, hasQRCode bool) (model.ClientDat
} }
// generate client qrcode image in base64 // generate client qrcode image in base64
if hasQRCode { if hasQRCode && client.PrivateKey != "" {
server, _ := o.GetServer() server, _ := o.GetServer()
globalSettings, _ := o.GetGlobalSettings() globalSettings, _ := o.GetGlobalSettings()

View file

@ -68,7 +68,7 @@ Wireguard Clients
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<img id="qr_code" class="w-100" style="image-rendering: pixelated;" src="" alt="QR code" /> <img id="qr_code" class="w-100" style="image-rendering: pixelated;" src="" alt="QR code not available" />
</div> </div>
<!-- /.modal-content --> <!-- /.modal-content -->
</div> </div>