diff --git a/internal/handlers/file.go b/internal/handlers/file.go index 8bbffb4..a27e3d4 100644 --- a/internal/handlers/file.go +++ b/internal/handlers/file.go @@ -163,7 +163,10 @@ func (h *FileHandler) FileEvent(w http.ResponseWriter, r *http.Request) { renderFileError(w, "SMTP not configured. Please contact the administrator.") return } - subject := "Expense report for event " + event.Name + subject := fmt.Sprintf("%s | Expense report for event %s", userName, event.Name) + if userName == "" { + subject = "Expense report for event " + event.Name + } body := "Please find attached the expense report and receipt images." if err := h.EmailSender.SendReport(to, subject, body, attachments); err != nil { log.Printf("ERROR [%s] handlers: FileEvent: SendReport(%s): %v", @@ -428,7 +431,16 @@ func (h *FileHandler) SendDownloadLink(w http.ResponseWriter, r *http.Request) { } link := fmt.Sprintf("%s://%s/dl/%s/%s.zip", scheme, host, token, safeName) - subject := "Expense report: " + event.Name + // Fetch user name for the subject line. + repUser, _ := database.GetUserByID(h.DB, getUserID(r)) + userName := "" + if repUser != nil { + userName = repUser.Name + } + subject := fmt.Sprintf("%s | Expense report: %s", userName, event.Name) + if userName == "" { + subject = "Expense report: " + event.Name + } body := fmt.Sprintf("Expense report for %s is ready.\n\nDownload: %s\n\nThis link expires in 24 hours.", event.Name, link) if err := h.EmailSender.SendReport(to, subject, body, nil); err != nil { diff --git a/internal/handlers/months.go b/internal/handlers/months.go index 1fd50ca..be25237 100644 --- a/internal/handlers/months.go +++ b/internal/handlers/months.go @@ -536,7 +536,17 @@ func (h *MonthHandler) SendMonthlyDownloadLink(w http.ResponseWriter, r *http.Re } link := fmt.Sprintf("%s://%s/dl/%s/%s.zip", scheme, host, token, safeName) - subject := "Monthly Expense Report: " + month.Name + // Fetch user name for the subject line. + user, _ := database.GetUserByID(h.DB, getUserID(r)) + userName := "" + if user != nil { + userName = user.Name + } + + subject := fmt.Sprintf("%s | Monthly Expense Report: %s", userName, month.Name) + if userName == "" { + subject = "Monthly Expense Report: " + month.Name + } body := fmt.Sprintf("Monthly expense report for %s is ready.\n\nDownload: %s\n\nThis link expires in 24 hours.", month.Name, link) if err := h.EmailSender.SendReport(to, subject, body, nil); err != nil {