feature/ForgotPassword #29

Closed
faezeh wants to merge 91 commits from feature/ForgotPassword into main
20 changed files with 373 additions and 11 deletions
Showing only changes of commit ea68943354 - Show all commits

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use App\Traits\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
use ApiResponse;
public function register(Request $request): JsonResponse
{
// Expert::query()->create();
$request->session()->regenerate();
return $this->successResponse();
}
public function login(Request $request): JsonResponse
{
$credentials = ['password' => $request->password];
if (filter_var($request->login, FILTER_VALIDATE_EMAIL)) {
$credentials['email'] = $request->login;
} else {
$credentials['username'] = $request->login;
}
if (Auth::attempt($credentials))
{
$request->session()->regenerate();
$user = Auth::user();
return $this->successResponse([
'id' => $user->id,
'username' => $user->username,
'email' => $user->email,
]);
}
return $this->errorResponse(__('messages.incorrect_or_username_password'));
}
public function logout(Request $request): JsonResponse
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return $this->successResponse();
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Admin\Controllers;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Traits\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DocumentationController extends Controller
{
use ApiResponse;
public function index(Request $request): array
{
return DataTableFacade::run(
User::query()->with('documentations'),
$request,
allowedFilters: ['*'],
allowedSortings: ['*'],
allowedSelects: [
'user.id', 'user.username'
]
);
}
public function confirm(User $user): JsonResponse
{
$user->update([
]);
return $this->successResponse();
}
public function reject(User $user): JsonResponse
{
$user->update([
]);
return $this->successResponse();
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class City extends Model
{
/** @use HasFactory<\Database\Factories\CityFactory> */
use HasFactory;
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Document extends Model
{
/** @use HasFactory<\Database\Factories\DocumentFactory> */
use HasFactory;
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Province extends Model
{
/** @use HasFactory<\Database\Factories\ProvinceFactory> */
use HasFactory;
}

View File

@@ -1,11 +1,12 @@
<?php
namespace App\Http\Controllers;
namespace App\User\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Http\Requests\Auth\RegisterRequest;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Traits\ApiResponse;
use App\User\Requests\Auth\LoginRequest;
use App\User\Requests\Auth\RegisterRequest;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\Auth;
namespace App\User\Requests\Auth;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\Auth;
namespace App\User\Requests\Auth;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
@@ -25,7 +25,7 @@ class RegisterRequest extends FormRequest
return [
'username' => 'required|unique:users,username',
'email' => 'required|email|unique:users,email',
'password' => 'required|string|regex:/^(?=.*[a-zA-Z])(?=.*\d).+$/|min:6|confirmed:',
'password' => 'required|string|regex:/^(?=.*[a-zA-Z])(?=.*\d).+$/|min:6|confirmed',
];
}
}

View File

@@ -46,6 +46,10 @@ return [
'driver' => 'passport',
'provider' => 'users',
],
'expert' => [
'driver' => 'session',
'provider' => 'experts',
]
],
/*
@@ -70,6 +74,10 @@ return [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', User::class),
],
'experts' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', Expert::class),
],
// 'users' => [
// 'driver' => 'database',

View File

@@ -0,0 +1,24 @@
<?php
namespace Database\Factories;
use App\Models\City;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<City>
*/
class CityFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace Database\Factories;
use App\Models\Document;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Document>
*/
class DocumentFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace Database\Factories;
use App\Models\Province;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Province>
*/
class ProvinceFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('provinces', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('provinces');
}
};

View File

@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('cities', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->foreignId('province_id')->constrained('provinces');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('cities');
}
};

View File

@@ -18,15 +18,16 @@ return new class extends Migration
$table->string('last_name')->nullable();
$table->string('email')->unique();
$table->string('password');
$table->tinyInteger('status')->default(0);
$table->tinyInteger('kyc_status')->default(0);
$table->string('national_id')->nullable();
$table->string('address')->nullable();
$table->string('postal_code')->nullable();
$table->string('account_number')->nullable();
$table->string('tax_id')->nullable();
$table->string('phone_number')->nullable();
$table->string('province_id')->nullable();
$table->date('birth_date')->nullable();
$table->foreignId('province_id')->nullable()->constrained('provinces');
$table->string('province_name')->nullable();
$table->string('city_id')->nullable();
$table->foreignId('city_id')->nullable()->constrained('cities');
$table->string('city_name')->nullable();
$table->timestamps();

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('documents', function (Blueprint $table) {
$table->id();
$table->morphs('documentable');
$table->string('title');
$table->string('url');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('documents');
}
};

View File

@@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class CitySeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DocumentSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class ProvinceSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}

View File

@@ -1,6 +1,6 @@
<?php
use App\Http\Controllers\AuthController;
use App\User\Controller\AuthController;
use App\User\Controller\ProfileController;
use Illuminate\Support\Facades\Route;