From 5e05042170d84961ffcaeee89aa0c1502f379caf Mon Sep 17 00:00:00 2001
From: nn2-minh <Nguyen12.Minh@live.uwe.ac.uk>
Date: Tue, 8 Apr 2025 22:32:19 +0700
Subject: [PATCH] add masked code number for payment

---
 app/frontend/components/user_payments.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/app/frontend/components/user_payments.py b/app/frontend/components/user_payments.py
index a3506ae..0573ad3 100644
--- a/app/frontend/components/user_payments.py
+++ b/app/frontend/components/user_payments.py
@@ -220,7 +220,9 @@ def user_payments_frame(parent, switch_func, API_URL, token):
 
         # Format card number with spaces
         raw_number = payment['card_number']
-        formatted_number = ' '.join([raw_number[i:i+4] for i in range(0, len(raw_number), 4)])
+        # Mask first 12 digits and show last 4
+        masked_number = '**** **** **** ' + raw_number[-4:] if len(raw_number) >= 4 else raw_number
+        formatted_number = masked_number
 
         # Card number
         card_number = ctk.CTkLabel(
@@ -644,10 +646,9 @@ def user_payments_frame(parent, switch_func, API_URL, token):
         # Update card number
         card_num = card_entry.get().strip()
         if card_num:
-            # Format card number with spaces
-            formatted_num = ' '.join([card_num[i:i+4] if i+4 <= len(card_num) else '*'*(4-(len(card_num)-i)) 
-                                    for i in range(0, 16, 4)])
-            card_number_preview.configure(text=formatted_num)
+            # Format card number with spaces and mask first 12 digits
+            masked_num = '**** **** **** ' + card_num[-4:] if len(card_num) >= 4 else card_num
+            card_number_preview.configure(text=masked_num)
         else:
             card_number_preview.configure(text="**** **** **** ****")
 
-- 
GitLab