# ✨ ChurchCRM 6.3.0 — People & Family Editor Redesign

> *Cleaner forms, a smarter dashboard, and tighter security.*

Released: December 2025

---

## 👤 Person & Family Editor — Redesigned Forms

The forms used to add and edit congregation members have been completely reorganized:

**Person Editor:**
- Reorganized layout with Bootstrap 4 input groups for a cleaner, more consistent look
- Custom field icons make it easier to identify field types at a glance

**Family Editor:**
- Reorganized layout with dynamic member rows — add and remove family members inline
- FAB (floating action button) pattern for save and primary actions, consistent with the rest of the app

---

## 📊 Dashboard — Birthday & Anniversary Range

- The dashboard birthday and anniversary list now shows a **14-day lookahead** instead of just today's birthdays — giving administrators advance notice to reach out
- **Horizontal tabs** replace the vertical stacked layout for a cleaner overview

---

## 🏦 Finance Module

A new structured finance module has been added under the admin MVC pattern:

- Finance routes, views, and SCSS moved into a proper module structure
- **Finance Dashboard** added with summary data
- **Pledge Editor** updated to clearly distinguish between Pledge mode and Payment mode
- Unauthenticated browser requests to finance routes now redirect to the login page
- Administrators can access all finance routes via updated middleware

---

## 🛡️ Security

- **XSS fixed in family view notes** — note content was rendered unescaped; now properly sanitized
- **HTML Purifier library** added for rich-text field sanitization — stronger XSS protection for Quill editor content
- **Phone custom field XSS** fixed — `tel:` links built from phone numbers are now escaped
- **Plaintext password risks** eliminated in several code paths
- **SQL injection risks** addressed in service layer methods
- `filterSanitizeString` removed and replaced with explicit `InputUtils` escaping throughout
- **CSRF protection** added to log operations

---

## 🔒 Access Control

- `nofinance` test user added — verifies that finance routes properly deny access to non-finance users
- Authorization checks improved and documented for all admin routes

---

## 🌍 Localization

- Locale strings extracted and updated from source
- Locale updated from POEditor

---

**Full Changelog**: https://github.com/ChurchCRM/CRM/compare/6.2.0...6.3.0
