Task Phase3 01
Notification
phase: phase3id: task-phase3-01module: User-ManagementDepends on: task-phase2-01Reference: PLAN.md
Background
Hoàn thiện tính năng an toàn bảo mật từ Phase 1 và 2. Trọng tâm là viết Unit Test cho cơ chế Lockout (khóa tài khoản tự động) khi nhập sai mật khẩu quá 5 lần, kiểm thử các Permission Class xem có xuất hiện lỗ hổng lọt quyền (Privilege Escalation) không, sau đó deploy lên nhánh Staging.
Code Snippets/Path file code cần sửa
path:./MES-Backend/users/tests/test_auth.pycode:from rest_framework.test import APITestCase class AuthLockoutTests(APITestCase): def test_lockout_after_5_failed_attempts(self): # Gọi API login với mật khẩu sai 5 lần liên tiếp # Kiểm tra DB thấy failed_login_attempts = 5 và locked_until != None # Gọi lần 6 bằng mật khẩu ĐÚNG -> Bắt buộc bị trả về 403 Forbidden passbusiness_logic: Giả lập các cuộc tấn công Brute-force để đảm bảo Backend kiên cố và đếm chính xác số lần request sai.acceptance_criteria: Toàn bộ Test suite phần Auth chạy Pass 100%, tỷ lệ Test Coverage đạt tối thiểu 85%.
Technical Acceptance Criteria
http_status: 403 Forbidden (Lần thử đăng nhập thứ 6 cho dù đúng pass).exception:AssertionError(Bắn ra nếu Unit Test failed).log_format: Console log output của Unit Test dạng Verbose (Hiển thị chi tiết từng Test Case Passed/Failed) để build pipeline CI/CD dễ dàng tracking.