Fix User model validation behavior, closes #950

This commit is contained in:
Dane Everitt 2018-02-18 13:29:28 -06:00
parent 50809cad36
commit c61c2bc5fd
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
3 changed files with 23 additions and 0 deletions

View file

@ -6,6 +6,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
## v0.7.1 (Derelict Dermodactylus) ## v0.7.1 (Derelict Dermodactylus)
### Fixed ### Fixed
* Fixes an exception when no token is entered on the 2-Factor enable/disable page and the form is submitted. * Fixes an exception when no token is entered on the 2-Factor enable/disable page and the form is submitted.
* Fixes an exception when trying to perform actions aganist a User model due to a validator that could not be cast to a string correctly.
## v0.7.0 (Derelict Dermodactylus) ## v0.7.0 (Derelict Dermodactylus)
### Fixed ### Fixed

View file

@ -6,6 +6,9 @@ use Illuminate\Contracts\Validation\Rule;
class Username implements Rule class Username implements Rule
{ {
/**
* Regex to use when validating usernames.
*/
public const VALIDATION_REGEX = '/^[a-z0-9]([\w\.-]+)[a-z0-9]$/'; public const VALIDATION_REGEX = '/^[a-z0-9]([\w\.-]+)[a-z0-9]$/';
/** /**
@ -33,4 +36,15 @@ class Username implements Rule
return 'The :attribute must start and end with alpha-numeric characters and return 'The :attribute must start and end with alpha-numeric characters and
contain only letters, numbers, dashes, underscores, and periods.'; contain only letters, numbers, dashes, underscores, and periods.';
} }
/**
* Convert the rule to a validation string. This is necessary to avoid
* issues with Eloquence which tries to use this rule as a string.
*
* @return string
*/
public function __toString()
{
return 'p_username';
}
} }

View file

@ -7,6 +7,14 @@ use Pterodactyl\Rules\Username;
class UsernameTest extends TestCase class UsernameTest extends TestCase
{ {
/**
* Test that this rule can be cast to a string correctly.
*/
public function testRuleIsStringable()
{
$this->assertSame('p_username', (string) new Username);
}
/** /**
* Test valid usernames. * Test valid usernames.
* *