Chris Chen
180dea60c1
feat(auth): add ChangePasswordAsync with other-session revocation and audit
2026-06-23 19:47:43 -07:00
Chris Chen
9df391b42c
feat(auth): add PasswordChanged audit action and ChangePasswordRequest DTO
2026-06-23 19:44:23 -07:00
Chris Chen
4225b49e58
Merge feature/notification-service: Email + Line notification service (API)
ci-cd-vm / ci-cd (push) Successful in 2m29s
2026-06-23 19:37:35 -07:00
Chris Chen
5a915ebdd1
Harden notifications: bump MailKit, bound webhook body, share truncation, skip soft-deleted members
2026-06-23 19:29:23 -07:00
Chris Chen
fd71f5a107
Cross-link implemented notification design in NOTIFICATIONS.md
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 19:23:22 -07:00
Chris Chen
9405914d88
Register notification services and add SMTP/Line config sections
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 19:21:47 -07:00
Chris Chen
39432ac588
Add admin NotificationsController for binding, groups, history, and send
2026-06-23 19:20:28 -07:00
Chris Chen
4c22cfaf19
Add Line webhook controller with signature verification and dispatch
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 19:18:50 -07:00
Chris Chen
c8bc7103ba
Add LineNotificationService with send, binding, and group ops
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 19:17:10 -07:00
Chris Chen
3eeb314dc2
Add IMessageChannel and Line REST implementation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 19:13:42 -07:00
Chris Chen
0ddb34dd20
Add EmailService with recipient resolution and logging
...
TDD: IEmailService interface, EmailService resolves member emails + raw addresses (case-insensitive dedup), sends via ISmtpDispatcher, writes a NotificationLog per recipient (sent/failed), and never aborts the batch on a single failure.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 19:11:13 -07:00
Chris Chen
444cc70b56
Add SMTP dispatcher seam and MailKit implementation
2026-06-23 19:08:30 -07:00
Chris Chen
85bf329d93
Add Line webhook signature verification helper
...
Implements LineSignature.IsValid() using HMAC-SHA256 + FixedTimeEquals to prevent timing attacks; includes xUnit tests for valid, tampered, and null/empty header cases.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 19:07:01 -07:00
Chris Chen
3544b6ee78
Add change-password implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 19:04:09 -07:00
Chris Chen
0e90f19377
Add notification entities, DbContext config, and migration
...
Creates MemberChannelBinding, LineBindingCode, MessagingGroup, and NotificationLog
entities under ROLAC.API.Entities.Notifications; wires DbSets and fluent config into
AppDbContext; generates EF migration AddNotifications creating the four tables.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 19:03:35 -07:00
Chris Chen
f9c4d7edb2
Add shared notification models, records, and constants
2026-06-23 19:00:24 -07:00
Chris Chen
b7372dec1f
Add MailKit package and notification option classes
2026-06-23 18:58:41 -07:00
Chris Chen
21e9823008
Add self-service change-password design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 18:58:03 -07:00
Chris Chen
583408032d
Add implementation plan for Email + Line notification service
...
12 TDD tasks: MailKit package, entities + migration, email service (SMTP seam),
Line message channel + signature verify, Line notification service (send/binding/
groups), webhook + admin controllers, DI + config.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 18:56:04 -07:00
Chris Chen
ea0ea233a8
Add Email + Line notification service design spec
...
Phase 1 (API-only): IEmailService (MailKit/SMTP) + ILineNotificationService
(full approved Line module) as two peer services sharing NotificationLog.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 18:46:44 -07:00
Chris Chen
7356d0e810
Update attendance-counter-page.component.scss
ci-cd-vm / ci-cd (push) Failing after 1m25s
2026-06-23 17:47:16 -07:00
Chris Chen
b1e3e23325
Sunday Worship Count
ci-cd-vm / ci-cd (push) Failing after 1m28s
2026-06-23 17:24:12 -07:00
Chris Chen
a298d0ee1c
update for signalR
ci-cd-vm / ci-cd (push) Successful in 44s
2026-06-23 17:12:17 -07:00
Chris Chen
249ae1164d
Update rolac.conf
ci-cd-vm / ci-cd (push) Successful in 44s
2026-06-23 17:03:20 -07:00
Chris Chen
c6e3f1db64
Revert "Update rolac.conf"
...
ci-cd-vm / ci-cd (push) Successful in 39s
This reverts commit bd722933dc .
2026-06-23 16:51:43 -07:00
Chris Chen
bd722933dc
Update rolac.conf
ci-cd-vm / ci-cd (push) Successful in 46s
2026-06-23 16:10:14 -07:00
Chris Chen
f6277aa339
Update angular.json
ci-cd-vm / ci-cd (push) Successful in 1m45s
2026-06-23 15:16:19 -07:00
Chris Chen
2e226e60f5
update mobile view.
ci-cd-vm / ci-cd (push) Failing after 1m13s
2026-06-23 14:18:55 -07:00
Chris Chen
68649223d9
update mobile view.
2026-06-23 14:15:20 -07:00
Chris Chen
9d7c224ad2
Update user-portal.component.scss
2026-06-23 13:53:57 -07:00
Chris Chen
47aec287aa
update mobile view for expense.
2026-06-23 13:49:38 -07:00
Chris Chen
5dfca873dd
update for shrink image size.
ci-cd-vm / ci-cd (push) Successful in 1m23s
2026-06-23 13:30:20 -07:00
Chris Chen
62592c29ae
Add audit logs.
ci-cd-vm / ci-cd (push) Successful in 4m2s
2026-06-23 12:13:47 -07:00
Chris Chen
870eeec82a
Add role control
2026-06-23 07:19:08 -07:00
Chris Chen
deff2264a6
Create HealthController.cs
ci-cd-vm / ci-cd (push) Failing after 1m41s
2026-06-22 17:57:20 -07:00
Chris Chen
2b28d2079c
update for
ci-cd-vm / ci-cd (push) Failing after 2m44s
2026-06-22 17:52:40 -07:00
Chris Chen
c7ac431deb
Update Dockerfile
ci-cd-vm / ci-cd (push) Failing after 1m9s
2026-06-22 17:12:13 -07:00
Chris Chen
8a159f1b79
Update rolac.conf
ci-cd-vm / ci-cd (push) Failing after 31s
2026-06-22 17:05:41 -07:00
Chris Chen
70ea56280c
update license
ci-cd-vm / ci-cd (push) Failing after 1m4s
2026-06-22 16:53:29 -07:00
Chris Chen
bcd6b39356
update docker
ci-cd-vm / ci-cd (push) Failing after 40s
2026-06-22 16:37:53 -07:00
Chris Chen
1fb97cfccc
Update angular.json
ci-cd-vm / ci-cd (push) Failing after 58s
2026-06-22 16:27:07 -07:00
Chris Chen
0924b1a980
Update docker
ci-cd-vm / ci-cd (push) Failing after 3m6s
2026-06-22 16:15:28 -07:00
Chris Chen
807e88f929
update package.
ci-cd-vm / ci-cd (push) Failing after 18s
2026-06-22 16:12:13 -07:00
Chris Chen
b8a4c9b727
ci: retrigger after hook fix
ci-cd-vm / ci-cd (push) Failing after 25s
2026-06-22 16:09:16 -07:00
Chris Chen
d2dc568794
ci: trigger first Actions run
2026-06-22 16:05:11 -07:00
Chris Chen
a537974edf
Update runner
2026-06-22 15:53:51 -07:00
Chris Chen
ef3731ba48
Update runnder
ci-cd-nas / build-push (push) Failing after 11s
ci-cd-nas / deploy (push) Has been skipped
2026-06-20 22:36:07 -07:00
Chris Chen
ddced87dc6
Update
ci-cd-nas / build-push (push) Failing after 27s
ci-cd-nas / deploy (push) Has been skipped
2026-06-20 22:26:52 -07:00
Chris Chen
7ab8e9703b
WIP
2026-06-20 21:06:24 -07:00
Chris Chen
aaaae09bd2
Add Line notifications module design spec
...
Phase 1: Line Messaging API channel with webhook binding (individual +
group), manual send-now, history, and binding/group admin UI. Scheduled
sends and event triggers deferred to phases 2-3; IMessageChannel seam
left for future PWA/WeChat channels.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-20 20:49:00 -07:00