password reset added
This commit is contained in:
31
app/Http/Controllers/PasswordChangeController.php
Normal file
31
app/Http/Controllers/PasswordChangeController.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Events\EventType;
|
||||
use Illuminate\Http\Request;
|
||||
use Laravel\Nova\Nova;
|
||||
|
||||
class PasswordChangeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('auth.password-change');
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'password' => ['string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
|
||||
$request->user()->update([
|
||||
'password' => bcrypt($request->password),
|
||||
'password_must_be_changed' => false,
|
||||
]);
|
||||
|
||||
storeAuthEvent(EventType::PASSWORD_RESET, request());
|
||||
|
||||
return redirect(Nova::path());
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ class CheckPasswordMustBeChanged
|
||||
}
|
||||
|
||||
if (boolval($request->user()->password_must_be_changed)) {
|
||||
return to_route('sms-verification');
|
||||
return to_route('password-change');
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
|
||||
@@ -13,7 +13,6 @@ use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
|
||||
use Laravel\Nova\Fields\Badge;
|
||||
use Laravel\Nova\Fields\BelongsTo;
|
||||
use Laravel\Nova\Fields\HasMany;
|
||||
use Laravel\Nova\Fields\Hidden;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\Select;
|
||||
use Laravel\Nova\Fields\Text;
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Nova\Resources\Branch\Branch;
|
||||
use App\Nova\Resources\System\Roles\Permission;
|
||||
use App\Nova\Resources\System\Roles\Role;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rules;
|
||||
use Laravel\Nova\Fields\BelongsToMany;
|
||||
@@ -14,10 +15,10 @@ use Laravel\Nova\Fields\Boolean;
|
||||
use Laravel\Nova\Fields\Hidden;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\MorphToMany;
|
||||
use Laravel\Nova\Fields\Number;
|
||||
use Laravel\Nova\Fields\Password;
|
||||
use Laravel\Nova\Fields\Text;
|
||||
use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
use Nurmuhammet\NovaInputmask\NovaInputmask;
|
||||
|
||||
class User extends Resource
|
||||
{
|
||||
@@ -29,11 +30,12 @@ class User extends Resource
|
||||
public static $model = \App\Models\User::class;
|
||||
|
||||
/**
|
||||
* The single value that should be used to represent the resource when being displayed.
|
||||
*
|
||||
* @var string
|
||||
* Get the value that should be displayed to represent the resource.
|
||||
*/
|
||||
public static $title = 'name';
|
||||
public function title(): string
|
||||
{
|
||||
return $this->username.sprintf(' (%s)', $this->phone);
|
||||
}
|
||||
|
||||
/**
|
||||
* The columns that should be searched.
|
||||
@@ -71,6 +73,18 @@ class User extends Resource
|
||||
return __('User');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback to be called after the resource is created.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public static function afterCreate(NovaRequest $request, Model $model)
|
||||
{
|
||||
sendSMSVerification($model->phone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
@@ -91,10 +105,8 @@ class User extends Resource
|
||||
->sortable()
|
||||
->rules('required', 'max:255'),
|
||||
|
||||
NovaInputmask::make(__('Phone'), 'phone')
|
||||
->mask('+(\\9\\93)-99-99-99-99')
|
||||
->storeRawValue()
|
||||
->rules('nullable', 'integer', 'between:61000000, 71999999'),
|
||||
Number::make(__('Phone'), 'phone')
|
||||
->rules('required', 'integer', 'between:61000000,71999999', 'unique:users,phone'),
|
||||
|
||||
Text::make(__('Email'), 'email')
|
||||
->sortable()
|
||||
@@ -142,7 +154,7 @@ class User extends Resource
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public function cards(NovaRequest $request)
|
||||
public function cards(NovaRequest $request): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
@@ -152,7 +164,7 @@ class User extends Resource
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public function filters(NovaRequest $request)
|
||||
public function filters(NovaRequest $request): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
@@ -162,7 +174,7 @@ class User extends Resource
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public function lenses(NovaRequest $request)
|
||||
public function lenses(NovaRequest $request): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
@@ -172,7 +184,7 @@ class User extends Resource
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public function actions(NovaRequest $request)
|
||||
public function actions(NovaRequest $request): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user