quebecstudio / safename
Laravel validation rule to protect against reserved usernames and words
Requires
- php: ^8.2
- illuminate/contracts: ^11.0
- illuminate/support: ^11.0
Requires (Dev)
- laravel/pint: ^1.20
- orchestra/testbench: ^9.0
- peckphp/peck: *
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- rector/rector: ^2.0
README
A Laravel validation package to prevent the use of reserved words in usernames or other fields.
Support for Ukraine and Call for Solidarity 🇺🇦
Québec Studio supports Ukraine and its people in their quest for peace, freedom, and sovereignty.
If you do not support the Ukrainian people in this unjust war they never wanted, we kindly ask you not to use our software, as it is intended for those who wish to be on the right side of history.
Features
- Exact word matching (e.g.,
admin
would block onlyadmin
) - Partial word matching (e.g.,
admin
would blockadministrator
,superadmin
, etc.) - Multilingual support (English and French included)
- Configurable reserved word lists
- Support for Laravel 11.x
Installation
composer require quebecstudio/safename
Configuration
Publish the config and translation files:
php artisan vendor:publish --tag="safename"
Reserved Words Configuration
Edit config/safename.php
to customize your reserved words:
return [ 'exact' => [ 'admin', 'root', // ... ], 'partial' => [ 'admin', // Will block 'administrator', 'superadmin', etc. 'super', // Will block 'superuser', 'superman', etc. // ... ] ];
Usage
Using the Rule Object
use Quebecstudio\SafeName\Rules\SafeName; $request->validate([ 'username' => ['required', new SafeName()] ]);
Using the Rule String
$request->validate([ 'username' => 'required|safe_name' ]);
Command Line Validation
The package includes an artisan command to test usernames:
php artisan validate:username
Translations
The package includes English and French translations. You can override them by publishing the language files and editing them in lang/vendor/safename/
.
Testing
composer test
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.