PASS Anonymous has no identity PASS Password login works PASS Unverified profile submission blocked PASS Verification token single-use PASS Profile requires review PASS Staff cannot edit courses PASS Pending organisation cannot browse PASS Stale admin update blocked PASS Stale admin update blocked PASS Verified approved organisation can browse PASS Organisation sees approved profile without private note PASS Shortlist saved PASS Duplicate training enquiry blocked PASS Staffing request saved PASS Invalid staffing count rejected PASS Photo is decoded and safely reencoded PASS New photo hidden until reapproval PASS Profile deletion works PASS Profile photo deleted PASS Password reset invalidates sessions PASS New password works PASS Rate limiting works PASS Disabled SMTP makes no delivery claim All 23 checks passed (PHP with SQLite test adapter).