diff --git a/server/cleanup.go b/server/cleanup.go index ef2617fc1c538dcb8213a42033af69f0dde846f5..c59ba674c42d82a2b7051189a7aaede777204141 100644 --- a/server/cleanup.go +++ b/server/cleanup.go @@ -94,21 +94,28 @@ func (s *Server) checkKeyExpiration(dn string, key *ldap.OpenPGPkey, name string if key.Expiry.Before(time.Now()) { s.ldap.DeleteOpenPGPkey(dn) + + data := NotificationData{ + Name: name, + Fingerprint: key.Fingerprint, + Days: 0, + } + s.mail.Send([]string{mail}, "openpgp_expire", data) } notifiedFingerprint, err := s.db.GetOpenpgpNotification(dn) if err != nil { log.Printf("An error has occurred accessing the user %s last notification: %v", name, err) } - if key.Expiry.Add(-notifyKeyExpiredDuration).Before(time.Now()) && notifiedFingerprint != key.Fingerprint { + if time.Now().Add(notifyKeyExpiredDuration).After(key.Expiry) && notifiedFingerprint != key.Fingerprint { data := NotificationData{ Name: name, Fingerprint: key.Fingerprint, - Days: int(math.Round(time.Now().Sub(key.Expiry).Hours())), + Days: int(math.Round(time.Now().Sub(key.Expiry).Hours() / 24)), } s.mail.Send([]string{mail}, "openpgp_expire", data) - err = s.db.AddOpenpgpNotification(name, key.Fingerprint) + err = s.db.AddOpenpgpNotification(dn, key.Fingerprint) if err != nil { log.Printf("An error has occurred storing user %s last notification: %v", name, err) } @@ -119,5 +126,5 @@ func (s *Server) expireDBEntries() { s.db.ExpireInvites(inviteExpireDuration) s.db.ExpireAccounts(accountExpireDuration) s.db.ExpireCollectives(collectiveExpireDuration) - s.db.ExpireOpenpgpNotifications(notifyKeyExpiredDuration) + s.db.ExpireOpenpgpNotifications(2 * notifyKeyExpiredDuration) } diff --git a/tmpl/openpgp_expire.mail b/tmpl/openpgp_expire.mail index 19e96415cbc25caed599789ddb353de2b1e5b8ba..2e7c040731b163167c1e7961760e81ebbe0fc21d 100644 --- a/tmpl/openpgp_expire.mail +++ b/tmpl/openpgp_expire.mail @@ -5,9 +5,10 @@ Subject: tu clave OpenPGP en sindominio va a expirar Hola {{.Data.Name}}, -En {{.Data.Days}} tu clave OpenPGP con fingerprint: - {{.Data.Fingerprint}} -Visita https://lowry.sindominio.net/ para actualizarla. +La clave OpenPGP con fingerpring {{.Data.Fingerprint}} +que has configurado en sindominio {{if .Data.Days}}va a expirar en {{.Data.Days}}{{else}}ha expirado y la hemos borrado{{end}}. + +Puedes visitar https://lowry.sindominio.net/ para actualizarla o subir una clave nueva Gracias,