This commit is contained in:
2025-10-29 01:29:58 +05:00
parent 3fe38d5e26
commit 1499fc531d
6 changed files with 44 additions and 9 deletions

View File

@@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Date;
use Spatie\Permission\Traits\HasRoles;
/**
* @property int $id
@@ -23,8 +22,6 @@ class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory;
use HasRoles;
use Notifiable;
use UserAdjustments;

View File

@@ -170,4 +170,14 @@ class RegisterController extends Controller
return redirect(config()->string('module.base-auth.redirect_path'));
}
/**
* Resend verification
*/
public function resendVerification(): RedirectResponse
{
sendSMSVerification((string) user()->phone);
return to_route('sms-verification');
}
}

View File

@@ -29,4 +29,5 @@ return [
'change_phone_label' => 'Telefon belgini üýtgetmek',
'go_back' => 'Yza',
'successfully_changed_phone' => 'Telefon belgiňiz üýtgedildi',
'resend' => 'Täze tassyklaýyş belgi ugratmak'
];

View File

@@ -61,11 +61,22 @@
<span id="phone-error-box" class="text-red-500 text-italic error-box"></span>
</div>
<button type="submit" class="w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 inline-flex items-center justify-center h-9 px-3 mb-3 w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center">
<button type="button" class="w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 inline-flex items-center justify-center h-9 px-3 mb-3 w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center">
<span class=""><span>{{ __('module.base-auth::base.change_number') }}</span></span>
</button>
</form>
<div class="flex justify-center items-center mb-6">
<form id="resend-verification-form" action="{{ route('resend-verification') }}" method="POST">
@csrf
</form>
<span id="resend-verification-trigger" class="text-center font-normal mr-4 underline cursor-pointer d-none" onclick="requestNewVerification()">
{{ __('module.base-auth::base.resend') }}
</span>
</div>
{{-- Verification form --}}
<form method="POST" action="{{ route('sms-verification') }}" id="verification-form">
@csrf
@@ -81,7 +92,8 @@
@endforeach
@endif
</div>
<button type="submit" class="w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 inline-flex items-center justify-center h-9 px-3 mb-3 w-full flex justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 w-full flex justify-center">
<button type="submit" class="w-full justify-center shadow relative bg-primary-500 hover:bg-primary-400 text-white dark:text-gray-900 cursor-pointer rounded text-sm font-bold focus:outline-none focus:ring ring-primary-200 dark:ring-gray-600 inline-flex items-center h-9 px-3 mb-3 bg-primary-500 hover:bg-primary-400">
<span class=""><span>{{ __('module.base-auth::base.submit') }}</span></span>
</button>
</form>
@@ -98,9 +110,15 @@ let changePhoneform = $_ID('change-phone-form')
let verificationForm = $_ID('verification-form')
let changePhoneButton = $_ID('change-phone-button')
let goBackButton = $_ID('go-back-button')
let resendVerificationTrigger = $_ID('resend-verification-trigger')
let resendVerificationForm = $_ID('resend-verification-form')
ready(() => {
new Inputmask("+(\\9\\93)-99-99-99-99").mask(phoneField);
new Inputmask("+(\\9\\93)-99-99-99-99").mask(phoneField)
setTimeout(() => {
show(resendVerificationTrigger)
}, 5000)
})
async function goBack() {
@@ -125,7 +143,7 @@ async function changePhone(event) {
if (response.errors) {
loopObject(response.errors, item => addValidationClasses(item))
return;
return
}
removeValidationClasess()
@@ -138,7 +156,11 @@ async function changePhone(event) {
showCancelButton: false,
})
window.location.href = response.url;
window.location.href = response.url
}
function requestNewVerification() {
resendVerificationForm.submit()
}
</script>
</body>

View File

@@ -20,9 +20,10 @@ Route::middleware(['web', 'guest'])->group(function () {
Route::middleware(['web', 'auth', RedirectIfUserPhoneIsVerfied::class])->group(function () {
Route::post('change-phone', [RegisterController::class, 'changePhone'])->name('change-phone');
Route::post('resend-verification', [RegisterController::class, 'resendVerification'])->name('resend-verification');
Route::get('sms-verification', [RegisterController::class, 'smsVerification'])
->name('sms-verification');
Route::post('sms-verification', [RegisterController::class, 'verifySmsCode']);
});

View File

@@ -2,6 +2,8 @@
namespace App\Modules\UserAdjustments\Traits;
use Spatie\Permission\Traits\HasRoles;
/**
* @property string $username [unique]
* @property string|null $first_name
@@ -15,6 +17,8 @@ namespace App\Modules\UserAdjustments\Traits;
*/
trait UserAdjustments
{
use HasRoles;
/**
* Get the attributes that should be cast.
*