Chris Chen
99585a1c0e
Update dashboard.component.ts
ci-cd-vm / ci-cd (push) Successful in 3m0s
2026-06-23 20:38:11 -07:00
Chris Chen
d327a5146c
Merge branch 'feature/change-password'
2026-06-23 20:36:26 -07:00
Chris Chen
4276ca890b
WIP
2026-06-23 20:36:18 -07:00
Chris Chen
3a121f6085
fix(account): add Account Settings to real sidebar nav
...
The Settings item wired in Task 7 lived in UserHeaderComponent, which is
unused dead code (its selector is rendered nowhere). Add a real "Account
Settings" entry to the Personal nav section of UserPortalComponent (the
actual shell) pointing at /user-portal/account, and revert the ineffective
user-header edit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 20:26:17 -07:00
Chris Chen
5a25b33258
fix(account): show new!=current error under New Password field
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 20:21:52 -07:00
Chris Chen
b0deb62c82
update sunday
2026-06-23 20:20:12 -07:00
Chris Chen
a2ecc895de
feat(account): add Account Settings page, route, and wire Settings menu item
2026-06-23 20:15:56 -07:00
Chris Chen
1e6ddddf1f
feat(account): add ChangePasswordFormComponent
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 20:10:58 -07:00
Chris Chen
c54adf1eda
feat(auth): add changePassword() to frontend AuthService
2026-06-23 20:04:18 -07:00
Chris Chen
5e0348de1d
feat(account): add password strength and match validators
2026-06-23 20:01:16 -07:00
Chris Chen
8f18166dbf
feat(auth): add POST /api/auth/change-password endpoint
2026-06-23 19:54:20 -07:00
Chris Chen
8f1af536ed
fix(auth): make change-password session revocation null-safe for Npgsql
2026-06-23 19:52:21 -07:00
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