feat: add user authentication
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'ورود | آژانس مسافرتی')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="auth-page">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="auth-card login-card">
|
||||
|
||||
{{-- عنوان --}}
|
||||
|
||||
<div class="auth-header">
|
||||
|
||||
<div class="auth-icon">
|
||||
|
||||
<i class="fa fa-sign-in"></i>
|
||||
|
||||
</div>
|
||||
|
||||
<h1>
|
||||
ورود به حساب کاربری
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
برای ورود، نام کاربری یا ایمیل و رمز عبور خود را وارد کنید.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- خطاها --}}
|
||||
|
||||
@if($errors->any())
|
||||
|
||||
<div class="auth-alert auth-alert-danger">
|
||||
|
||||
<i class="fa fa-exclamation-circle"></i>
|
||||
|
||||
<div>
|
||||
|
||||
<strong>
|
||||
ورود انجام نشد.
|
||||
</strong>
|
||||
|
||||
<ul>
|
||||
|
||||
@foreach($errors->all() as $error)
|
||||
|
||||
<li>
|
||||
{{ $error }}
|
||||
</li>
|
||||
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
{{-- پیام موفقیت --}}
|
||||
|
||||
@if(session('success'))
|
||||
|
||||
<div class="auth-alert auth-alert-success">
|
||||
|
||||
<i class="fa fa-check-circle"></i>
|
||||
|
||||
{{ session('success') }}
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
{{-- فرم --}}
|
||||
|
||||
<form
|
||||
action="{{ route('auth.login.post') }}"
|
||||
method="POST"
|
||||
class="auth-form"
|
||||
>
|
||||
|
||||
@csrf
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="login">
|
||||
ایمیل یا نام کاربری
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="login"
|
||||
name="login"
|
||||
value="{{ old('login') }}"
|
||||
class="form-control"
|
||||
placeholder="ایمیل یا نام کاربری"
|
||||
dir="ltr"
|
||||
autocomplete="username"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="password">
|
||||
رمز عبور
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="password"
|
||||
id="password"
|
||||
name="password"
|
||||
class="form-control"
|
||||
placeholder="رمز عبور"
|
||||
autocomplete="current-password"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- مرا به خاطر بسپار --}}
|
||||
|
||||
<div class="login-options">
|
||||
|
||||
<label class="remember-me">
|
||||
|
||||
<input
|
||||
type="checkbox"
|
||||
name="remember"
|
||||
value="1"
|
||||
{{ old('remember') ? 'checked' : '' }}
|
||||
>
|
||||
|
||||
<span>
|
||||
مرا به خاطر بسپار
|
||||
</span>
|
||||
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- دکمه --}}
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="auth-btn"
|
||||
>
|
||||
|
||||
<i class="fa fa-sign-in"></i>
|
||||
|
||||
ورود به حساب
|
||||
|
||||
</button>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
{{-- ثبت نام --}}
|
||||
|
||||
<div class="auth-footer">
|
||||
|
||||
حساب کاربری ندارید؟
|
||||
|
||||
<a href="{{ route('auth.register.index') }}">
|
||||
ثبتنام کنید
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,659 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'ثبت نام | آژانس مسافرتی')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="auth-page">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="auth-card register-card">
|
||||
|
||||
{{-- =========================================
|
||||
عنوان
|
||||
========================================== --}}
|
||||
|
||||
<div class="auth-header">
|
||||
|
||||
<div class="auth-icon">
|
||||
<i class="fa fa-user-plus"></i>
|
||||
</div>
|
||||
|
||||
<h1>
|
||||
ایجاد حساب کاربری
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
برای استفاده از امکانات سایت، اطلاعات خود را وارد کنید.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =========================================
|
||||
خطاهای کلی
|
||||
========================================== --}}
|
||||
|
||||
@if($errors->any())
|
||||
|
||||
<div class="auth-alert auth-alert-danger">
|
||||
|
||||
<i class="fa fa-exclamation-circle"></i>
|
||||
|
||||
<div>
|
||||
|
||||
<strong>
|
||||
لطفاً خطاهای زیر را بررسی کنید:
|
||||
</strong>
|
||||
|
||||
<ul>
|
||||
|
||||
@foreach($errors->all() as $error)
|
||||
|
||||
<li>
|
||||
{{ $error }}
|
||||
</li>
|
||||
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
{{-- =========================================
|
||||
فرم ثبت نام
|
||||
========================================== --}}
|
||||
|
||||
<form
|
||||
action="{{ route('auth.register.post') }}"
|
||||
method="POST"
|
||||
enctype="multipart/form-data"
|
||||
class="auth-form"
|
||||
>
|
||||
|
||||
@csrf
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
اطلاعات شخصی
|
||||
====================================== --}}
|
||||
|
||||
<div class="form-section">
|
||||
|
||||
<div class="form-section-title">
|
||||
|
||||
<i class="fa fa-user"></i>
|
||||
|
||||
اطلاعات شخصی
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
{{-- نام --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="first_name">
|
||||
نام
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="first_name"
|
||||
name="first_name"
|
||||
value="{{ old('first_name') }}"
|
||||
class="form-control"
|
||||
placeholder="نام خود را وارد کنید"
|
||||
maxlength="100"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- نام خانوادگی --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="last_name">
|
||||
نام خانوادگی
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="last_name"
|
||||
name="last_name"
|
||||
value="{{ old('last_name') }}"
|
||||
class="form-control"
|
||||
placeholder="نام خانوادگی خود را وارد کنید"
|
||||
maxlength="100"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- کد ملی --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="national_code">
|
||||
کد ملی
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="national_code"
|
||||
name="national_code"
|
||||
value="{{ old('national_code') }}"
|
||||
class="form-control"
|
||||
placeholder="مثلاً 0012345678"
|
||||
maxlength="10"
|
||||
inputmode="numeric"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- جنسیت --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="gender">
|
||||
جنسیت
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<select
|
||||
id="gender"
|
||||
name="gender"
|
||||
class="form-control"
|
||||
required
|
||||
>
|
||||
|
||||
<option value="">
|
||||
انتخاب کنید
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="1"
|
||||
{{ old('gender') == 1 ? 'selected' : '' }}
|
||||
>
|
||||
مرد
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="2"
|
||||
{{ old('gender') == 2 ? 'selected' : '' }}
|
||||
>
|
||||
زن
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- وضعیت تأهل --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="marital_status">
|
||||
وضعیت تأهل
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<select
|
||||
id="marital_status"
|
||||
name="marital_status"
|
||||
class="form-control"
|
||||
required
|
||||
>
|
||||
|
||||
<option value="">
|
||||
انتخاب کنید
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="1"
|
||||
{{ old('marital_status') == 1 ? 'selected' : '' }}
|
||||
>
|
||||
مجرد
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="2"
|
||||
{{ old('marital_status') == 2 ? 'selected' : '' }}
|
||||
>
|
||||
متأهل
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="3"
|
||||
{{ old('marital_status') == 3 ? 'selected' : '' }}
|
||||
>
|
||||
متارکه
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- نام همسر --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="spouse_name">
|
||||
نام و نام خانوادگی همسر
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="spouse_name"
|
||||
name="spouse_name"
|
||||
value="{{ old('spouse_name') }}"
|
||||
class="form-control"
|
||||
placeholder="در صورت تأهل وارد کنید"
|
||||
maxlength="200"
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
اطلاعات تماس
|
||||
====================================== --}}
|
||||
|
||||
<div class="form-section">
|
||||
|
||||
<div class="form-section-title">
|
||||
|
||||
<i class="fa fa-phone"></i>
|
||||
|
||||
اطلاعات تماس
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
{{-- موبایل --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="mobile">
|
||||
شماره همراه
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="mobile"
|
||||
name="mobile"
|
||||
value="{{ old('mobile') }}"
|
||||
class="form-control"
|
||||
placeholder="09123456789"
|
||||
maxlength="11"
|
||||
inputmode="numeric"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- ایمیل --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="email">
|
||||
ایمیل
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="email"
|
||||
id="email"
|
||||
name="email"
|
||||
value="{{ old('email') }}"
|
||||
class="form-control"
|
||||
placeholder="example@email.com"
|
||||
maxlength="150"
|
||||
dir="ltr"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
اطلاعات حساب
|
||||
====================================== --}}
|
||||
|
||||
<div class="form-section">
|
||||
|
||||
<div class="form-section-title">
|
||||
|
||||
<i class="fa fa-lock"></i>
|
||||
|
||||
اطلاعات حساب کاربری
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
{{-- نام کاربری --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="username">
|
||||
نام کاربری
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="username"
|
||||
name="username"
|
||||
value="{{ old('username') }}"
|
||||
class="form-control"
|
||||
placeholder="مثلاً ali123"
|
||||
maxlength="100"
|
||||
dir="ltr"
|
||||
pattern="[A-Za-z0-9]+"
|
||||
required
|
||||
>
|
||||
|
||||
<small class="form-help">
|
||||
فقط حروف انگلیسی و اعداد مجاز است.
|
||||
</small>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- رمز --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="password">
|
||||
رمز عبور
|
||||
<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="password"
|
||||
id="password"
|
||||
name="password"
|
||||
class="form-control"
|
||||
placeholder="رمز عبور"
|
||||
minlength="8"
|
||||
required
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- تکرار رمز --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="password_confirmation">
|
||||
تکرار رمز عبور
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="password"
|
||||
id="password_confirmation"
|
||||
name="password_confirmation"
|
||||
class="form-control"
|
||||
placeholder="تکرار رمز عبور"
|
||||
minlength="8"
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
استان و شهرستان
|
||||
====================================== --}}
|
||||
|
||||
<div class="form-section">
|
||||
|
||||
<div class="form-section-title">
|
||||
|
||||
<i class="fa fa-map-marker"></i>
|
||||
|
||||
محل سکونت
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
{{-- استان --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="province_id">
|
||||
استان
|
||||
</label>
|
||||
|
||||
<select
|
||||
name="province_id"
|
||||
id="province_id"
|
||||
class="form-control"
|
||||
>
|
||||
|
||||
<option value="">
|
||||
انتخاب استان
|
||||
</option>
|
||||
|
||||
@if(isset($provinces))
|
||||
|
||||
@foreach($provinces as $province)
|
||||
|
||||
<option
|
||||
value="{{ $province->id }}"
|
||||
{{ old('province_id') == $province->id ? 'selected' : '' }}
|
||||
>
|
||||
{{ $province->name }}
|
||||
</option>
|
||||
|
||||
@endforeach
|
||||
|
||||
@endif
|
||||
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- شهرستان --}}
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="city_id">
|
||||
شهرستان
|
||||
</label>
|
||||
|
||||
<select
|
||||
name="city_id"
|
||||
id="city_id"
|
||||
class="form-control"
|
||||
>
|
||||
|
||||
<option value="">
|
||||
ابتدا استان را انتخاب کنید
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
عکس
|
||||
====================================== --}}
|
||||
|
||||
<div class="form-section">
|
||||
|
||||
<div class="form-section-title">
|
||||
|
||||
<i class="fa fa-image"></i>
|
||||
|
||||
تصویر پروفایل
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="image">
|
||||
عکس
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="file"
|
||||
id="image"
|
||||
name="image"
|
||||
class="form-control"
|
||||
accept="image/jpeg,image/png,image/jpg"
|
||||
>
|
||||
|
||||
<small class="form-help">
|
||||
|
||||
فرمتهای مجاز:
|
||||
JPG ، JPEG ، PNG
|
||||
|
||||
<br>
|
||||
|
||||
حداکثر حجم:
|
||||
800 کیلوبایت
|
||||
|
||||
</small>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
دکمه ثبت
|
||||
====================================== --}}
|
||||
|
||||
<div class="auth-submit">
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="auth-btn"
|
||||
>
|
||||
|
||||
<i class="fa fa-user-plus"></i>
|
||||
|
||||
ایجاد حساب کاربری
|
||||
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
{{-- =====================================
|
||||
ورود
|
||||
====================================== --}}
|
||||
|
||||
<div class="auth-footer">
|
||||
|
||||
قبلاً حساب ساختهاید؟
|
||||
|
||||
<a href="{{ route('auth.login.index') }}">
|
||||
وارد شوید
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
Reference in New Issue
Block a user