diff --git a/app/Http/Requests/Account/CreateAccountRequest.php b/app/Http/Requests/Account/CreateAccountRequest.php index 363ec222b6..78661967c3 100644 --- a/app/Http/Requests/Account/CreateAccountRequest.php +++ b/app/Http/Requests/Account/CreateAccountRequest.php @@ -12,7 +12,10 @@ namespace App\Http\Requests\Account; use App\Http\Requests\Request; +use App\Http\ValidationRules\Account\BlackListRule; +use App\Http\ValidationRules\Account\EmailBlackListRule; use App\Http\ValidationRules\NewUniqueUserRule; +use App\Utils\Ninja; class CreateAccountRequest extends Request { @@ -33,13 +36,18 @@ class CreateAccountRequest extends Request */ public function rules() { + + if(Ninja::isHosted()) + $email_rules = ['required', 'email:rfc,dns', new NewUniqueUserRule, new BlackListRule, new EmailBlackListRule]; + else + $email_rules = ['required', 'email:rfc,dns', new NewUniqueUserRule]; + + return [ 'first_name' => 'string|max:100', 'last_name' => 'string:max:100', 'password' => 'required|string|min:6|max:1000', - // 'email' => 'bail|required|email:rfc,dns', - // 'email' => new NewUniqueUserRule(), - 'email' => ['required', 'email:rfc,dns', new NewUniqueUserRule], + 'email' => $email_rules, 'privacy_policy' => 'required|boolean', 'terms_of_service' => 'required|boolean', ]; diff --git a/app/Http/Requests/Login/LoginRequest.php b/app/Http/Requests/Login/LoginRequest.php index 2f8b42e0c3..01c67c281e 100644 --- a/app/Http/Requests/Login/LoginRequest.php +++ b/app/Http/Requests/Login/LoginRequest.php @@ -14,6 +14,7 @@ namespace App\Http\Requests\Login; use App\Http\Requests\Request; use App\Http\ValidationRules\Account\BlackListRule; +use App\Http\ValidationRules\Account\EmailBlackListRule; use App\Utils\Ninja; class LoginRequest extends Request @@ -38,7 +39,7 @@ class LoginRequest extends Request { if(Ninja::isHosted()) - $email_rules = ['required', new BlackListRule]; + $email_rules = ['required', new BlackListRule, new EmailBlackListRule]; else $email_rules = 'required'; diff --git a/app/Http/ValidationRules/Account/EmailBlackListRule.php b/app/Http/ValidationRules/Account/EmailBlackListRule.php new file mode 100644 index 0000000000..06a5f854a9 --- /dev/null +++ b/app/Http/ValidationRules/Account/EmailBlackListRule.php @@ -0,0 +1,47 @@ +blacklist); + + } + + /** + * @return string + */ + public function message() + { + return "This email address is blacklisted, if you think this is in error, please email contact@invoiceninja.com"; + } + + +} diff --git a/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php b/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php new file mode 100644 index 0000000000..2852728374 --- /dev/null +++ b/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php @@ -0,0 +1,70 @@ +blacklist = ['gimmy@gmail.com']; + + $rules = [ + 'email' => [$email_rule] + ]; + + $data = [ + 'email' => "gimmy@gmail.com", + ]; + + $v = $this->app['validator']->make($data, $rules); + $this->assertFalse($v->passes()); + } + + + public function testInValidEmailRule() + { + + $rules = [ + 'email' => [new EmailBlackListRule] + ]; + + $data = [ + 'email' => "jimmy@candassociates.com", + ]; + + $v = $this->app['validator']->make($data, $rules); + $this->assertTrue($v->passes()); + } + + + + +}