mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-21 02:07:23 -04:00
* fix(auth): throttle login attempts to prevent brute-force attacks
Add Throttle filter and wire into login route to mitigate
credential-stuffing/brute-force risk (redacted).
- Register App\\Filters\\Throttle in Filters config
- Add \"too_many_attempts\" language string for throttled responses
- Add tests for Throttle filter and Login controller throttling
* Correct bug causing error to not display.
* i18n(login): add too_many_attempts translation for login throttling
Add localized \"too many attempts\" message across all language files
to support login throttling feature. Message informs users to wait
before retrying after exceeding attempt limit.
* fix(auth): rate limit login attempts to prevent brute-force attacks
Add Throttle filter that rate limits login/migrate POST requests,
keyed by IP and submitted username, using CodeIgniter's cache-based
Throttler (redacted).
- Wire filter into login/migrate routes
- Show localized error message when rate limit exceeded
- Broaden writable/cache ignore pattern to cover throttler cache file
* Update app/Language/ar-EG/Login.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* style(i18n): use single quotes for translation array keys and values
Convert double-quoted array keys and string values to single quotes
across all Login.php language files for style consistency.
* test(auth): update LoginTest to use throttler service directly
Replace clearThrottleState's Services::resetSingle('throttler') call
with Services::throttler() to reset state via the service instance.
Add usedKeys property to track throttle keys used across test cases.
* test(auth): skip login test assertion when migration required
LoginTest now check migration-required response state before
asserting HTTP 200. Prevent false failures when app force
pending-migration redirect during test run.
* Added missing return statements
32 lines
2.3 KiB
PHP
32 lines
2.3 KiB
PHP
<?php
|
|
|
|
return [
|
|
"gcaptcha" => "Je ne suis pas un robot.",
|
|
"go" => "Lancer",
|
|
"initialization_message" => "",
|
|
"initialization_required" => "",
|
|
"initialize" => "",
|
|
"invalid_gcaptcha" => "Veuillez vérifier que vous n'êtes pas un robot.",
|
|
"invalid_installation" => "Cette installation est incorrecte, veuillez vérifier votre fichier php.ini.",
|
|
"invalid_username_and_password" => "Nom d'utilisateur et/ou mot de passe invalide.",
|
|
"login" => "Login",
|
|
"logout" => "Déconnexion",
|
|
"migrating_database" => "Migration de la base de données",
|
|
"migration_auth_message" => "Les identifiants administrateur sont requis pour autoriser la migration de la base de données vers la version {0}. Veuillez vous connecter pour continuer.",
|
|
"migration_complete" => "Base de données initialisée avec succès !",
|
|
"migration_complete_login" => "Vous pouvez maintenant vous connecter.",
|
|
"migration_complete_migrate" => "Base de données migrée avec succès !",
|
|
"migration_complete_redirect" => "Migration terminée. Redirection vers la connexion...",
|
|
"migration_error_connection" => "Erreur de connexion. Veuillez réessayer.",
|
|
"migration_failed" => "Échec de la migration",
|
|
"migration_initializing" => "Initialisation de la base de données",
|
|
"migration_needed" => "Une migration de base de données vers {0} débutera après l'ouverture de session.",
|
|
"migration_required" => "Migration de base de données requise",
|
|
"migration_running" => "Exécution des migrations de la base de données...",
|
|
"password" => "Mot de passe",
|
|
"required_username" => "Le champ nom utilisateur est obligatoire.",
|
|
'too_many_attempts' => 'Trop de tentatives. Veuillez patienter un instant et réessayer.',
|
|
"username" => "Nom d'utilisateur",
|
|
"welcome" => "Bienvenue à {0} !"
|
|
];
|