WIP: Road to 1.0.0 #1
|
@ -24,6 +24,7 @@ namespace App\Http\Controllers\Auth;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Profile;
|
use App\Profile;
|
||||||
use App\User;
|
use App\User;
|
||||||
|
use App\Facades\Options;
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
@ -81,11 +82,30 @@ class RegisterController extends Controller
|
||||||
*/
|
*/
|
||||||
protected function validator(array $data)
|
protected function validator(array $data)
|
||||||
{
|
{
|
||||||
|
$password = ['required', 'string', 'confirmed'];
|
||||||
|
|
||||||
|
switch (Options::getOption('pw_security_policy'))
|
||||||
|
{ // this could be better structured, switch doesn't feel right
|
||||||
|
case 'off':
|
||||||
|
$password = ['required', 'string', 'confirmed'];
|
||||||
|
break;
|
||||||
|
case 'low':
|
||||||
|
$password = ['required', 'string', 'min:10', 'confirmed'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'medium':
|
||||||
|
$password = ['required', 'string', 'confirmed', 'regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[#?!@$%^&*-]).{10,}$/'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'high':
|
||||||
|
$password = ['required', 'string', 'confirmed', 'regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{20,}$/']
|
||||||
|
}
|
||||||
|
|
||||||
return Validator::make($data, [
|
return Validator::make($data, [
|
||||||
'uuid' => ['required', 'string', 'unique:users', 'min:32', 'max:32'],
|
'uuid' => (Options::getOption('requireGameLicense') && Options::getOption('currentGame') == 'MINECRAFT') ? ['required', 'string', 'unique:users', 'min:32', 'max:32'] : ['nullable', 'string'],
|
||||||
'name' => ['required', 'string', 'max:255'],
|
'name' => ['required', 'string', 'max:255'],
|
||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||||
'password' => ['required', 'string', 'min:10', 'confirmed', 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/'],
|
'password' => $password,
|
||||||
], [
|
], [
|
||||||
'uuid.required' => 'Please enter a valid (and Premium) Minecraft username! We do not support cracked users.',
|
'uuid.required' => 'Please enter a valid (and Premium) Minecraft username! We do not support cracked users.',
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -58,7 +58,6 @@
|
||||||
<p><b>Low:</b> Good choice for low-traffic websites, e.g. community with less than 100 members.</p>
|
<p><b>Low:</b> Good choice for low-traffic websites, e.g. community with less than 100 members.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Minimum 10 characters</li>
|
<li>Minimum 10 characters</li>
|
||||||
<li>Must contain special characters</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
@ -67,7 +66,6 @@
|
||||||
<li>Minimum 12 characters</li>
|
<li>Minimum 12 characters</li>
|
||||||
<li>Must contain special characters</li>
|
<li>Must contain special characters</li>
|
||||||
<li>Must contain upper and lower case characters</li>
|
<li>Must contain upper and lower case characters</li>
|
||||||
<li>Can't be the user's name/e-mail</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
|
Loading…
Reference in New Issue