Skip to content

Commit

Permalink
Closes #42
Browse files Browse the repository at this point in the history
  • Loading branch information
csavelief committed Jul 2, 2024
1 parent 6d19657 commit a518a29
Show file tree
Hide file tree
Showing 7 changed files with 124 additions and 5 deletions.
9 changes: 5 additions & 4 deletions app/Http/Controllers/Auth/RegisterController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Illuminate\Validation\Rules\Password;
use Konekt\User\Models\UserType;

class RegisterController extends Controller
Expand Down Expand Up @@ -53,9 +54,9 @@ public function __construct()
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'name' => 'required|string|max:100',
'email' => 'required|string|email|max:100|unique:users',
'password' => ['required', 'string', 'confirmed', Password::defaults()],
]);
}

Expand All @@ -81,7 +82,7 @@ protected function create(array $data)
$user->save();

$this->setupAccount($tenant, $user);

return $user;
}

Expand Down
15 changes: 14 additions & 1 deletion app/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,18 @@
use App\Observers\TaxRateObserver;
use App\Observers\ZoneMemberObserver;
use App\Observers\ZoneObserver;
use App\Rules\AtLeastOneDigit;
use App\Rules\AtLeastOneLetter;
use App\Rules\AtLeastOneLowercaseLetter;
use App\Rules\AtLeastOneUppercaseLetter;
use App\Rules\OnlyLettersAndDigits;
use App\User;
use Illuminate\Foundation\AliasLoader;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
use Illuminate\Validation\Rules\Password;

class AppServiceProvider extends ServiceProvider
{
Expand All @@ -102,6 +107,14 @@ public function boot()
return new TwHasher();
});

Password::defaults(Password::min(12)->max(100)->rules([
new OnlyLettersAndDigits,
new AtLeastOneLetter,
new AtLeastOneDigit,
new AtLeastOneUppercaseLetter,
new AtLeastOneLowercaseLetter,
]));

$this->app->concord->registerModel(\Konekt\Address\Contracts\Address::class, Address::class);
$this->app->concord->registerModel(\Vanilo\Adjustments\Contracts\Adjustment::class, Adjustment::class);
$this->app->concord->registerModel(\Vanilo\Order\Contracts\Billpayer::class, Billpayer::class);
Expand Down
21 changes: 21 additions & 0 deletions app/Rules/AtLeastOneDigit.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class AtLeastOneDigit implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (ctype_alpha($value)) {
$fail('The :attribute must contain at least one digit.');
}
}
}
21 changes: 21 additions & 0 deletions app/Rules/AtLeastOneLetter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class AtLeastOneLetter implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (ctype_digit($value)) {
$fail('The :attribute must contain at least one letter.');
}
}
}
21 changes: 21 additions & 0 deletions app/Rules/AtLeastOneLowercaseLetter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class AtLeastOneLowercaseLetter implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (strtoupper($value) === $value) {
$fail('The :attribute must contain at least one lowercase letter.');
}
}
}
21 changes: 21 additions & 0 deletions app/Rules/AtLeastOneUppercaseLetter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class AtLeastOneUppercaseLetter implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (strtolower($value) === $value) {
$fail('The :attribute must contain at least one uppercase letter.');
}
}
}
21 changes: 21 additions & 0 deletions app/Rules/OnlyLettersAndDigits.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class OnlyLettersAndDigits implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (!ctype_alnum($value)) {
$fail('The :attribute must contain only letters and digits.');
}
}
}

0 comments on commit a518a29

Please sign in to comment.