From 19abb28acf4d7b3105c4f7f23c11f1cd164e6da9 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sun, 17 May 2026 08:49:28 +0330 Subject: [PATCH] upload files --- backend/.dockerignore | 0 backend/.editorconfig | 0 backend/.env.example | 0 backend/.gitattributes | 0 backend/.gitignore | 0 backend/.npmrc | 0 backend/Dockerfile | 0 backend/Dockerfile.production | 0 backend/README.md | 0 .../app/Admin/Controllers/AuthController.php | 0 .../Controllers/DocumentationController.php | 0 .../ExpertManagementController.php | 0 .../PermissionManagementController.php | 0 .../Admin/Controllers/ProfileController.php | 0 .../Controllers/UserManagementController.php | 0 .../app/Admin/Requests/Auth/LoginRequest.php | 0 .../Admin/Requests/Auth/RegisterRequest.php | 0 .../Requests/Documentation/RejectRequest.php | 0 .../ExpertManagement/StoreRequest.php | 0 .../ExpertManagement/UpdateRequest.php | 0 .../PermissionManagement/StoreRequest.php | 0 .../PermissionManagement/UpdateRequest.php | 0 .../Profile/ChangePasswordRequest.php | 0 .../Requests/RoleManagement/StoreRequest.php | 0 .../Requests/RoleManagement/UpdateRequest.php | 0 .../Requests/UserManagement/StoreRequest.php | 0 .../Requests/UserManagement/UpdateRequest.php | 0 .../Resources/ExpertManagementResource.php | 0 .../app/Admin/Resources/ExpertResource.php | 0 backend/app/Facades/DataTable/DataTable.php | 0 .../app/Facades/DataTable/DataTableFacade.php | 0 backend/app/Facades/File/File.php | 0 backend/app/Facades/File/FileFacade.php | 0 backend/app/Http/Controllers/Controller.php | 0 backend/app/Mail/LoginNotificationMail.php | 0 backend/app/Models/City.php | 0 backend/app/Models/Document.php | 0 backend/app/Models/Expert.php | 0 backend/app/Models/Province.php | 0 backend/app/Models/User.php | 12 +++++ backend/app/Providers/AppServiceProvider.php | 2 + .../Providers/DataTableServiceProvider.php | 0 backend/app/Providers/FileServiceProvider.php | 0 .../app/Services/DataTable/DataTableInput.php | 0 .../Services/DataTable/DataTableService.php | 0 .../app/Services/DataTable/Enums/DataType.php | 0 .../Services/DataTable/Enums/SearchType.php | 0 .../Exceptions/InvalidFilterException.php | 0 .../Exceptions/InvalidParameterInterface.php | 0 .../Exceptions/InvalidRelationException.php | 0 .../Exceptions/InvalidSortingException.php | 0 .../Services/DataTable/Filter/ApplyFilter.php | 0 .../app/Services/DataTable/Filter/Filter.php | 0 .../Filter/SearchFunctions/FilterBetween.php | 0 .../Filter/SearchFunctions/FilterContains.php | 0 .../Filter/SearchFunctions/FilterEquals.php | 0 .../SearchFunctions/FilterGreaterThan.php | 0 .../FilterGreaterThanOrEqual.php | 0 .../Filter/SearchFunctions/FilterLessThan.php | 0 .../SearchFunctions/FilterLessThanOrEqual.php | 0 .../SearchFunctions/FilterNotEquals.php | 0 .../Filter/SearchFunctions/SearchFilter.php | 0 .../app/Services/DataTable/Sort/ApplySort.php | 0 backend/app/Services/DataTable/Sort/Sort.php | 0 .../DataTable/Validators/FilterValidator.php | 0 .../Validators/RelationValidator.php | 0 .../DataTable/Validators/SortingValidator.php | 0 .../app/User/Controllers/AuthController.php | 0 .../Dashboard/ConfirmController.php | 14 ----- .../Dashboard/DocumentationController.php | 24 --------- .../Controllers/DocumentationController.php | 42 +++++++++++++++ .../User/Controllers/ProfileController.php | 0 .../app/User/Requests/Auth/LoginRequest.php | 0 .../User/Requests/Auth/RegisterRequest.php | 0 .../Requests/Documentation/EditRequest.php | 31 +++++++++++ .../Requests/Documentation/UploadRequest.php | 31 +++++++++++ .../Profile/ChangePasswordRequest.php | 0 .../app/User/Requests/Profile/EditRequest.php | 0 backend/app/User/Resources/UserResource.php | 0 .../Services/FIB/AuthorizationService.php | 0 .../Services/FIB/CancelPaymentService.php | 0 .../FIB/CheckPaymentStatusService.php | 0 .../Services/FIB/CreatePaymentService.php | 0 .../app/User/Services/FIB/RefundService.php | 0 backend/artisan | 0 backend/bootstrap/providers.php | 0 backend/composer.json | 0 backend/composer.lock | 0 backend/config/app.php | 0 backend/config/cache.php | 0 backend/config/database.php | 0 backend/config/fib.php | 0 backend/config/filesystems.php | 0 backend/config/logging.php | 0 backend/config/mail.php | 0 backend/config/passport.php | 0 backend/config/permission.php | 0 backend/config/queue.php | 0 backend/config/services.php | 0 backend/database/.gitignore | 0 backend/database/factories/CityFactory.php | 0 .../database/factories/DocumentFactory.php | 0 backend/database/factories/ExpertFactory.php | 0 .../database/factories/ProvinceFactory.php | 0 ...01_01_00_000000_create_provinces_table.php | 0 .../0001_01_00_000001_create_cities_table.php | 0 .../0001_01_01_000001_create_cache_table.php | 0 .../0001_01_01_000002_create_jobs_table.php | 0 ...7_122415_create_oauth_auth_codes_table.php | 0 ...22416_create_oauth_access_tokens_table.php | 0 ...2417_create_oauth_refresh_tokens_table.php | 0 ...4_27_122418_create_oauth_clients_table.php | 0 ...122419_create_oauth_device_codes_table.php | 0 ..._05_10_123913_create_permission_tables.php | 0 ...26_05_12_053258_create_documents_table.php | 0 ...2026_05_12_074230_create_experts_table.php | 0 ...05_13_054404_add_column_to_users_table.php | 0 backend/database/seeders/CitySeeder.php | 0 backend/database/seeders/DatabaseSeeder.php | 2 +- backend/database/seeders/DocumentSeeder.php | 0 backend/database/seeders/ExpertSeeder.php | 0 backend/database/seeders/ProvinceSeeder.php | 0 backend/package.json | 0 backend/phpunit.xml | 0 backend/public/.htaccess | 0 backend/public/favicon.ico | 0 backend/public/index.php | 0 backend/public/robots.txt | 0 backend/resources/css/app.css | 0 backend/resources/js/app.js | 0 backend/resources/lang/ar/notifications.php | 0 backend/resources/lang/en/auth.php | 0 backend/resources/lang/en/messages.php | 0 backend/resources/lang/en/pagination.php | 0 backend/resources/lang/en/passwords.php | 0 backend/resources/lang/en/validation.php | 0 backend/resources/lang/fa/auth.php | 0 backend/resources/lang/fa/messages.php | 0 backend/resources/lang/fa/pagination.php | 0 backend/resources/lang/fa/passwords.php | 0 backend/resources/lang/fa/validation.php | 0 .../views/emails/login-notification.blade.php | 0 backend/resources/views/welcome.blade.php | 0 backend/routes/console.php | 0 backend/routes/expert.php | 53 ++++++++++++++++++- backend/routes/web.php | 46 ---------------- backend/tests/Feature/ExampleTest.php | 0 backend/tests/Pest.php | 0 backend/tests/TestCase.php | 0 backend/tests/Unit/ExampleTest.php | 0 backend/vite.config.js | 0 151 files changed, 170 insertions(+), 87 deletions(-) mode change 100644 => 100755 backend/.dockerignore mode change 100644 => 100755 backend/.editorconfig mode change 100644 => 100755 backend/.env.example mode change 100644 => 100755 backend/.gitattributes mode change 100644 => 100755 backend/.gitignore mode change 100644 => 100755 backend/.npmrc mode change 100644 => 100755 backend/Dockerfile mode change 100644 => 100755 backend/Dockerfile.production mode change 100644 => 100755 backend/README.md mode change 100644 => 100755 backend/app/Admin/Controllers/AuthController.php mode change 100644 => 100755 backend/app/Admin/Controllers/DocumentationController.php mode change 100644 => 100755 backend/app/Admin/Controllers/ExpertManagementController.php mode change 100644 => 100755 backend/app/Admin/Controllers/PermissionManagementController.php mode change 100644 => 100755 backend/app/Admin/Controllers/ProfileController.php mode change 100644 => 100755 backend/app/Admin/Controllers/UserManagementController.php mode change 100644 => 100755 backend/app/Admin/Requests/Auth/LoginRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/Auth/RegisterRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/Documentation/RejectRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/ExpertManagement/StoreRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/ExpertManagement/UpdateRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/PermissionManagement/StoreRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/PermissionManagement/UpdateRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/Profile/ChangePasswordRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/RoleManagement/StoreRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/RoleManagement/UpdateRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/UserManagement/StoreRequest.php mode change 100644 => 100755 backend/app/Admin/Requests/UserManagement/UpdateRequest.php mode change 100644 => 100755 backend/app/Admin/Resources/ExpertManagementResource.php mode change 100644 => 100755 backend/app/Admin/Resources/ExpertResource.php mode change 100644 => 100755 backend/app/Facades/DataTable/DataTable.php mode change 100644 => 100755 backend/app/Facades/DataTable/DataTableFacade.php mode change 100644 => 100755 backend/app/Facades/File/File.php mode change 100644 => 100755 backend/app/Facades/File/FileFacade.php mode change 100644 => 100755 backend/app/Http/Controllers/Controller.php mode change 100644 => 100755 backend/app/Mail/LoginNotificationMail.php mode change 100644 => 100755 backend/app/Models/City.php mode change 100644 => 100755 backend/app/Models/Document.php mode change 100644 => 100755 backend/app/Models/Expert.php mode change 100644 => 100755 backend/app/Models/Province.php mode change 100644 => 100755 backend/app/Providers/DataTableServiceProvider.php mode change 100644 => 100755 backend/app/Providers/FileServiceProvider.php mode change 100644 => 100755 backend/app/Services/DataTable/DataTableInput.php mode change 100644 => 100755 backend/app/Services/DataTable/DataTableService.php mode change 100644 => 100755 backend/app/Services/DataTable/Enums/DataType.php mode change 100644 => 100755 backend/app/Services/DataTable/Enums/SearchType.php mode change 100644 => 100755 backend/app/Services/DataTable/Exceptions/InvalidFilterException.php mode change 100644 => 100755 backend/app/Services/DataTable/Exceptions/InvalidParameterInterface.php mode change 100644 => 100755 backend/app/Services/DataTable/Exceptions/InvalidRelationException.php mode change 100644 => 100755 backend/app/Services/DataTable/Exceptions/InvalidSortingException.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/ApplyFilter.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/Filter.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterBetween.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterContains.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterEquals.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThan.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThanOrEqual.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThan.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThanOrEqual.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/FilterNotEquals.php mode change 100644 => 100755 backend/app/Services/DataTable/Filter/SearchFunctions/SearchFilter.php mode change 100644 => 100755 backend/app/Services/DataTable/Sort/ApplySort.php mode change 100644 => 100755 backend/app/Services/DataTable/Sort/Sort.php mode change 100644 => 100755 backend/app/Services/DataTable/Validators/FilterValidator.php mode change 100644 => 100755 backend/app/Services/DataTable/Validators/RelationValidator.php mode change 100644 => 100755 backend/app/Services/DataTable/Validators/SortingValidator.php mode change 100644 => 100755 backend/app/User/Controllers/AuthController.php delete mode 100755 backend/app/User/Controllers/Dashboard/ConfirmController.php delete mode 100755 backend/app/User/Controllers/Dashboard/DocumentationController.php create mode 100755 backend/app/User/Controllers/DocumentationController.php mode change 100644 => 100755 backend/app/User/Controllers/ProfileController.php mode change 100644 => 100755 backend/app/User/Requests/Auth/LoginRequest.php mode change 100644 => 100755 backend/app/User/Requests/Auth/RegisterRequest.php create mode 100755 backend/app/User/Requests/Documentation/EditRequest.php create mode 100755 backend/app/User/Requests/Documentation/UploadRequest.php mode change 100644 => 100755 backend/app/User/Requests/Profile/ChangePasswordRequest.php mode change 100644 => 100755 backend/app/User/Requests/Profile/EditRequest.php mode change 100644 => 100755 backend/app/User/Resources/UserResource.php mode change 100644 => 100755 backend/app/User/Services/FIB/AuthorizationService.php mode change 100644 => 100755 backend/app/User/Services/FIB/CancelPaymentService.php mode change 100644 => 100755 backend/app/User/Services/FIB/CheckPaymentStatusService.php mode change 100644 => 100755 backend/app/User/Services/FIB/CreatePaymentService.php mode change 100644 => 100755 backend/app/User/Services/FIB/RefundService.php mode change 100644 => 100755 backend/artisan mode change 100644 => 100755 backend/bootstrap/providers.php mode change 100644 => 100755 backend/composer.json mode change 100644 => 100755 backend/composer.lock mode change 100644 => 100755 backend/config/app.php mode change 100644 => 100755 backend/config/cache.php mode change 100644 => 100755 backend/config/database.php mode change 100644 => 100755 backend/config/fib.php mode change 100644 => 100755 backend/config/filesystems.php mode change 100644 => 100755 backend/config/logging.php mode change 100644 => 100755 backend/config/mail.php mode change 100644 => 100755 backend/config/passport.php mode change 100644 => 100755 backend/config/permission.php mode change 100644 => 100755 backend/config/queue.php mode change 100644 => 100755 backend/config/services.php mode change 100644 => 100755 backend/database/.gitignore mode change 100644 => 100755 backend/database/factories/CityFactory.php mode change 100644 => 100755 backend/database/factories/DocumentFactory.php mode change 100644 => 100755 backend/database/factories/ExpertFactory.php mode change 100644 => 100755 backend/database/factories/ProvinceFactory.php mode change 100644 => 100755 backend/database/migrations/0001_01_00_000000_create_provinces_table.php mode change 100644 => 100755 backend/database/migrations/0001_01_00_000001_create_cities_table.php mode change 100644 => 100755 backend/database/migrations/0001_01_01_000001_create_cache_table.php mode change 100644 => 100755 backend/database/migrations/0001_01_01_000002_create_jobs_table.php mode change 100644 => 100755 backend/database/migrations/2026_04_27_122415_create_oauth_auth_codes_table.php mode change 100644 => 100755 backend/database/migrations/2026_04_27_122416_create_oauth_access_tokens_table.php mode change 100644 => 100755 backend/database/migrations/2026_04_27_122417_create_oauth_refresh_tokens_table.php mode change 100644 => 100755 backend/database/migrations/2026_04_27_122418_create_oauth_clients_table.php mode change 100644 => 100755 backend/database/migrations/2026_04_27_122419_create_oauth_device_codes_table.php mode change 100644 => 100755 backend/database/migrations/2026_05_10_123913_create_permission_tables.php mode change 100644 => 100755 backend/database/migrations/2026_05_12_053258_create_documents_table.php mode change 100644 => 100755 backend/database/migrations/2026_05_12_074230_create_experts_table.php mode change 100644 => 100755 backend/database/migrations/2026_05_13_054404_add_column_to_users_table.php mode change 100644 => 100755 backend/database/seeders/CitySeeder.php mode change 100644 => 100755 backend/database/seeders/DocumentSeeder.php mode change 100644 => 100755 backend/database/seeders/ExpertSeeder.php mode change 100644 => 100755 backend/database/seeders/ProvinceSeeder.php mode change 100644 => 100755 backend/package.json mode change 100644 => 100755 backend/phpunit.xml mode change 100644 => 100755 backend/public/.htaccess mode change 100644 => 100755 backend/public/favicon.ico mode change 100644 => 100755 backend/public/index.php mode change 100644 => 100755 backend/public/robots.txt mode change 100644 => 100755 backend/resources/css/app.css mode change 100644 => 100755 backend/resources/js/app.js mode change 100644 => 100755 backend/resources/lang/ar/notifications.php mode change 100644 => 100755 backend/resources/lang/en/auth.php mode change 100644 => 100755 backend/resources/lang/en/messages.php mode change 100644 => 100755 backend/resources/lang/en/pagination.php mode change 100644 => 100755 backend/resources/lang/en/passwords.php mode change 100644 => 100755 backend/resources/lang/en/validation.php mode change 100644 => 100755 backend/resources/lang/fa/auth.php mode change 100644 => 100755 backend/resources/lang/fa/messages.php mode change 100644 => 100755 backend/resources/lang/fa/pagination.php mode change 100644 => 100755 backend/resources/lang/fa/passwords.php mode change 100644 => 100755 backend/resources/lang/fa/validation.php mode change 100644 => 100755 backend/resources/views/emails/login-notification.blade.php mode change 100644 => 100755 backend/resources/views/welcome.blade.php mode change 100644 => 100755 backend/routes/console.php mode change 100644 => 100755 backend/tests/Feature/ExampleTest.php mode change 100644 => 100755 backend/tests/Pest.php mode change 100644 => 100755 backend/tests/TestCase.php mode change 100644 => 100755 backend/tests/Unit/ExampleTest.php mode change 100644 => 100755 backend/vite.config.js diff --git a/backend/.dockerignore b/backend/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/.editorconfig b/backend/.editorconfig old mode 100644 new mode 100755 diff --git a/backend/.env.example b/backend/.env.example old mode 100644 new mode 100755 diff --git a/backend/.gitattributes b/backend/.gitattributes old mode 100644 new mode 100755 diff --git a/backend/.gitignore b/backend/.gitignore old mode 100644 new mode 100755 diff --git a/backend/.npmrc b/backend/.npmrc old mode 100644 new mode 100755 diff --git a/backend/Dockerfile b/backend/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/Dockerfile.production b/backend/Dockerfile.production old mode 100644 new mode 100755 diff --git a/backend/README.md b/backend/README.md old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/AuthController.php b/backend/app/Admin/Controllers/AuthController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/DocumentationController.php b/backend/app/Admin/Controllers/DocumentationController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/ExpertManagementController.php b/backend/app/Admin/Controllers/ExpertManagementController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/PermissionManagementController.php b/backend/app/Admin/Controllers/PermissionManagementController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/ProfileController.php b/backend/app/Admin/Controllers/ProfileController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Controllers/UserManagementController.php b/backend/app/Admin/Controllers/UserManagementController.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/Auth/LoginRequest.php b/backend/app/Admin/Requests/Auth/LoginRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/Auth/RegisterRequest.php b/backend/app/Admin/Requests/Auth/RegisterRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/Documentation/RejectRequest.php b/backend/app/Admin/Requests/Documentation/RejectRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/ExpertManagement/StoreRequest.php b/backend/app/Admin/Requests/ExpertManagement/StoreRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/ExpertManagement/UpdateRequest.php b/backend/app/Admin/Requests/ExpertManagement/UpdateRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/PermissionManagement/StoreRequest.php b/backend/app/Admin/Requests/PermissionManagement/StoreRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/PermissionManagement/UpdateRequest.php b/backend/app/Admin/Requests/PermissionManagement/UpdateRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/Profile/ChangePasswordRequest.php b/backend/app/Admin/Requests/Profile/ChangePasswordRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/RoleManagement/StoreRequest.php b/backend/app/Admin/Requests/RoleManagement/StoreRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/RoleManagement/UpdateRequest.php b/backend/app/Admin/Requests/RoleManagement/UpdateRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/UserManagement/StoreRequest.php b/backend/app/Admin/Requests/UserManagement/StoreRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Requests/UserManagement/UpdateRequest.php b/backend/app/Admin/Requests/UserManagement/UpdateRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Resources/ExpertManagementResource.php b/backend/app/Admin/Resources/ExpertManagementResource.php old mode 100644 new mode 100755 diff --git a/backend/app/Admin/Resources/ExpertResource.php b/backend/app/Admin/Resources/ExpertResource.php old mode 100644 new mode 100755 diff --git a/backend/app/Facades/DataTable/DataTable.php b/backend/app/Facades/DataTable/DataTable.php old mode 100644 new mode 100755 diff --git a/backend/app/Facades/DataTable/DataTableFacade.php b/backend/app/Facades/DataTable/DataTableFacade.php old mode 100644 new mode 100755 diff --git a/backend/app/Facades/File/File.php b/backend/app/Facades/File/File.php old mode 100644 new mode 100755 diff --git a/backend/app/Facades/File/FileFacade.php b/backend/app/Facades/File/FileFacade.php old mode 100644 new mode 100755 diff --git a/backend/app/Http/Controllers/Controller.php b/backend/app/Http/Controllers/Controller.php old mode 100644 new mode 100755 diff --git a/backend/app/Mail/LoginNotificationMail.php b/backend/app/Mail/LoginNotificationMail.php old mode 100644 new mode 100755 diff --git a/backend/app/Models/City.php b/backend/app/Models/City.php old mode 100644 new mode 100755 diff --git a/backend/app/Models/Document.php b/backend/app/Models/Document.php old mode 100644 new mode 100755 diff --git a/backend/app/Models/Expert.php b/backend/app/Models/Expert.php old mode 100644 new mode 100755 diff --git a/backend/app/Models/Province.php b/backend/app/Models/Province.php old mode 100644 new mode 100755 diff --git a/backend/app/Models/User.php b/backend/app/Models/User.php index ef9670d0..20e0ad4a 100755 --- a/backend/app/Models/User.php +++ b/backend/app/Models/User.php @@ -10,6 +10,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +use Illuminate\Support\Facades\Hash; +use Laravel\Passport\Bridge\Client; use Laravel\Passport\HasApiTokens; #[Guarded(['id'])] @@ -24,4 +26,14 @@ class User extends Authenticatable { return $this->morphToMany(Document::class, 'documentable'); } + + public function validateForPassportPasswordGrant(string $password): bool + { + return Hash::check($password, $this->password); + } + + public function findForPassport(string $username, Client $client): User + { + return $this->where('username', $username)->first(); + } } diff --git a/backend/app/Providers/AppServiceProvider.php b/backend/app/Providers/AppServiceProvider.php index 1039668a..c542af2e 100755 --- a/backend/app/Providers/AppServiceProvider.php +++ b/backend/app/Providers/AppServiceProvider.php @@ -22,6 +22,8 @@ class AppServiceProvider extends ServiceProvider public function boot(): void { Passport::enablePasswordGrant(); + Passport::tokensExpireIn(CarbonInterval::minutes(1)); + Passport::refreshTokensExpireIn(CarbonInterval::minutes(5)); Passport::personalAccessTokensExpireIn(CarbonInterval::minutes(1)); } } diff --git a/backend/app/Providers/DataTableServiceProvider.php b/backend/app/Providers/DataTableServiceProvider.php old mode 100644 new mode 100755 diff --git a/backend/app/Providers/FileServiceProvider.php b/backend/app/Providers/FileServiceProvider.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/DataTableInput.php b/backend/app/Services/DataTable/DataTableInput.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/DataTableService.php b/backend/app/Services/DataTable/DataTableService.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Enums/DataType.php b/backend/app/Services/DataTable/Enums/DataType.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Enums/SearchType.php b/backend/app/Services/DataTable/Enums/SearchType.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Exceptions/InvalidFilterException.php b/backend/app/Services/DataTable/Exceptions/InvalidFilterException.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Exceptions/InvalidParameterInterface.php b/backend/app/Services/DataTable/Exceptions/InvalidParameterInterface.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Exceptions/InvalidRelationException.php b/backend/app/Services/DataTable/Exceptions/InvalidRelationException.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Exceptions/InvalidSortingException.php b/backend/app/Services/DataTable/Exceptions/InvalidSortingException.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/ApplyFilter.php b/backend/app/Services/DataTable/Filter/ApplyFilter.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/Filter.php b/backend/app/Services/DataTable/Filter/Filter.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterBetween.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterBetween.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterContains.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterContains.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterEquals.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterEquals.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThan.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThan.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThanOrEqual.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterGreaterThanOrEqual.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThan.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThan.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThanOrEqual.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterLessThanOrEqual.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/FilterNotEquals.php b/backend/app/Services/DataTable/Filter/SearchFunctions/FilterNotEquals.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Filter/SearchFunctions/SearchFilter.php b/backend/app/Services/DataTable/Filter/SearchFunctions/SearchFilter.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Sort/ApplySort.php b/backend/app/Services/DataTable/Sort/ApplySort.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Sort/Sort.php b/backend/app/Services/DataTable/Sort/Sort.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Validators/FilterValidator.php b/backend/app/Services/DataTable/Validators/FilterValidator.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Validators/RelationValidator.php b/backend/app/Services/DataTable/Validators/RelationValidator.php old mode 100644 new mode 100755 diff --git a/backend/app/Services/DataTable/Validators/SortingValidator.php b/backend/app/Services/DataTable/Validators/SortingValidator.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Controllers/AuthController.php b/backend/app/User/Controllers/AuthController.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Controllers/Dashboard/ConfirmController.php b/backend/app/User/Controllers/Dashboard/ConfirmController.php deleted file mode 100755 index 8fdc5909..00000000 --- a/backend/app/User/Controllers/Dashboard/ConfirmController.php +++ /dev/null @@ -1,14 +0,0 @@ -user(); + + foreach ($request->documents as $document) { + $user->documents()->create([ + 'title' => $document['title'], + 'url' => FileFacade::save($document['file'], "/{$user->id}/documents", $document['title']), + ]); + } + + return $this->successResponse(); + } + + public function edit(EditRequest $request): JsonResponse + { + $user = Auth::guard('web')->user(); + + foreach ($request->documents as $document) { + $user->documents()->sync(); + } + + return $this->successResponse(); + } +} diff --git a/backend/app/User/Controllers/ProfileController.php b/backend/app/User/Controllers/ProfileController.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Requests/Auth/LoginRequest.php b/backend/app/User/Requests/Auth/LoginRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Requests/Auth/RegisterRequest.php b/backend/app/User/Requests/Auth/RegisterRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Requests/Documentation/EditRequest.php b/backend/app/User/Requests/Documentation/EditRequest.php new file mode 100755 index 00000000..25c3e1d2 --- /dev/null +++ b/backend/app/User/Requests/Documentation/EditRequest.php @@ -0,0 +1,31 @@ + + */ + public function rules(): array + { + return [ + 'documents' => 'required|array', + 'documents.*.file' => 'required|file|mimes:pdf,jpg,jpeg,png|max:2048', + 'documents.*.title' => 'required|string', + ]; + } +} diff --git a/backend/app/User/Requests/Documentation/UploadRequest.php b/backend/app/User/Requests/Documentation/UploadRequest.php new file mode 100755 index 00000000..b832c916 --- /dev/null +++ b/backend/app/User/Requests/Documentation/UploadRequest.php @@ -0,0 +1,31 @@ + + */ + public function rules(): array + { + return [ + 'documents' => 'required|array', + 'documents.*.file' => 'required|file|mimes:pdf,jpg,jpeg,png|max:2048', + 'documents.*.title' => 'required|string', + ]; + } +} diff --git a/backend/app/User/Requests/Profile/ChangePasswordRequest.php b/backend/app/User/Requests/Profile/ChangePasswordRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Requests/Profile/EditRequest.php b/backend/app/User/Requests/Profile/EditRequest.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Resources/UserResource.php b/backend/app/User/Resources/UserResource.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Services/FIB/AuthorizationService.php b/backend/app/User/Services/FIB/AuthorizationService.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Services/FIB/CancelPaymentService.php b/backend/app/User/Services/FIB/CancelPaymentService.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Services/FIB/CheckPaymentStatusService.php b/backend/app/User/Services/FIB/CheckPaymentStatusService.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Services/FIB/CreatePaymentService.php b/backend/app/User/Services/FIB/CreatePaymentService.php old mode 100644 new mode 100755 diff --git a/backend/app/User/Services/FIB/RefundService.php b/backend/app/User/Services/FIB/RefundService.php old mode 100644 new mode 100755 diff --git a/backend/artisan b/backend/artisan old mode 100644 new mode 100755 diff --git a/backend/bootstrap/providers.php b/backend/bootstrap/providers.php old mode 100644 new mode 100755 diff --git a/backend/composer.json b/backend/composer.json old mode 100644 new mode 100755 diff --git a/backend/composer.lock b/backend/composer.lock old mode 100644 new mode 100755 diff --git a/backend/config/app.php b/backend/config/app.php old mode 100644 new mode 100755 diff --git a/backend/config/cache.php b/backend/config/cache.php old mode 100644 new mode 100755 diff --git a/backend/config/database.php b/backend/config/database.php old mode 100644 new mode 100755 diff --git a/backend/config/fib.php b/backend/config/fib.php old mode 100644 new mode 100755 diff --git a/backend/config/filesystems.php b/backend/config/filesystems.php old mode 100644 new mode 100755 diff --git a/backend/config/logging.php b/backend/config/logging.php old mode 100644 new mode 100755 diff --git a/backend/config/mail.php b/backend/config/mail.php old mode 100644 new mode 100755 diff --git a/backend/config/passport.php b/backend/config/passport.php old mode 100644 new mode 100755 diff --git a/backend/config/permission.php b/backend/config/permission.php old mode 100644 new mode 100755 diff --git a/backend/config/queue.php b/backend/config/queue.php old mode 100644 new mode 100755 diff --git a/backend/config/services.php b/backend/config/services.php old mode 100644 new mode 100755 diff --git a/backend/database/.gitignore b/backend/database/.gitignore old mode 100644 new mode 100755 diff --git a/backend/database/factories/CityFactory.php b/backend/database/factories/CityFactory.php old mode 100644 new mode 100755 diff --git a/backend/database/factories/DocumentFactory.php b/backend/database/factories/DocumentFactory.php old mode 100644 new mode 100755 diff --git a/backend/database/factories/ExpertFactory.php b/backend/database/factories/ExpertFactory.php old mode 100644 new mode 100755 diff --git a/backend/database/factories/ProvinceFactory.php b/backend/database/factories/ProvinceFactory.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/0001_01_00_000000_create_provinces_table.php b/backend/database/migrations/0001_01_00_000000_create_provinces_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/0001_01_00_000001_create_cities_table.php b/backend/database/migrations/0001_01_00_000001_create_cities_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/0001_01_01_000001_create_cache_table.php b/backend/database/migrations/0001_01_01_000001_create_cache_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/0001_01_01_000002_create_jobs_table.php b/backend/database/migrations/0001_01_01_000002_create_jobs_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_04_27_122415_create_oauth_auth_codes_table.php b/backend/database/migrations/2026_04_27_122415_create_oauth_auth_codes_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_04_27_122416_create_oauth_access_tokens_table.php b/backend/database/migrations/2026_04_27_122416_create_oauth_access_tokens_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_04_27_122417_create_oauth_refresh_tokens_table.php b/backend/database/migrations/2026_04_27_122417_create_oauth_refresh_tokens_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_04_27_122418_create_oauth_clients_table.php b/backend/database/migrations/2026_04_27_122418_create_oauth_clients_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_04_27_122419_create_oauth_device_codes_table.php b/backend/database/migrations/2026_04_27_122419_create_oauth_device_codes_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_05_10_123913_create_permission_tables.php b/backend/database/migrations/2026_05_10_123913_create_permission_tables.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_05_12_053258_create_documents_table.php b/backend/database/migrations/2026_05_12_053258_create_documents_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_05_12_074230_create_experts_table.php b/backend/database/migrations/2026_05_12_074230_create_experts_table.php old mode 100644 new mode 100755 diff --git a/backend/database/migrations/2026_05_13_054404_add_column_to_users_table.php b/backend/database/migrations/2026_05_13_054404_add_column_to_users_table.php old mode 100644 new mode 100755 diff --git a/backend/database/seeders/CitySeeder.php b/backend/database/seeders/CitySeeder.php old mode 100644 new mode 100755 diff --git a/backend/database/seeders/DatabaseSeeder.php b/backend/database/seeders/DatabaseSeeder.php index 55af5ff8..90d0b1b1 100755 --- a/backend/database/seeders/DatabaseSeeder.php +++ b/backend/database/seeders/DatabaseSeeder.php @@ -18,7 +18,7 @@ class DatabaseSeeder extends Seeder // User::factory(10)->create(); User::factory()->create([ - 'username' => 'Test User', + 'username' => 'test', 'email' => 'test@example.com', 'password' => 'password123@', ]); diff --git a/backend/database/seeders/DocumentSeeder.php b/backend/database/seeders/DocumentSeeder.php old mode 100644 new mode 100755 diff --git a/backend/database/seeders/ExpertSeeder.php b/backend/database/seeders/ExpertSeeder.php old mode 100644 new mode 100755 diff --git a/backend/database/seeders/ProvinceSeeder.php b/backend/database/seeders/ProvinceSeeder.php old mode 100644 new mode 100755 diff --git a/backend/package.json b/backend/package.json old mode 100644 new mode 100755 diff --git a/backend/phpunit.xml b/backend/phpunit.xml old mode 100644 new mode 100755 diff --git a/backend/public/.htaccess b/backend/public/.htaccess old mode 100644 new mode 100755 diff --git a/backend/public/favicon.ico b/backend/public/favicon.ico old mode 100644 new mode 100755 diff --git a/backend/public/index.php b/backend/public/index.php old mode 100644 new mode 100755 diff --git a/backend/public/robots.txt b/backend/public/robots.txt old mode 100644 new mode 100755 diff --git a/backend/resources/css/app.css b/backend/resources/css/app.css old mode 100644 new mode 100755 diff --git a/backend/resources/js/app.js b/backend/resources/js/app.js old mode 100644 new mode 100755 diff --git a/backend/resources/lang/ar/notifications.php b/backend/resources/lang/ar/notifications.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/en/auth.php b/backend/resources/lang/en/auth.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/en/messages.php b/backend/resources/lang/en/messages.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/en/pagination.php b/backend/resources/lang/en/pagination.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/en/passwords.php b/backend/resources/lang/en/passwords.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/en/validation.php b/backend/resources/lang/en/validation.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/fa/auth.php b/backend/resources/lang/fa/auth.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/fa/messages.php b/backend/resources/lang/fa/messages.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/fa/pagination.php b/backend/resources/lang/fa/pagination.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/fa/passwords.php b/backend/resources/lang/fa/passwords.php old mode 100644 new mode 100755 diff --git a/backend/resources/lang/fa/validation.php b/backend/resources/lang/fa/validation.php old mode 100644 new mode 100755 diff --git a/backend/resources/views/emails/login-notification.blade.php b/backend/resources/views/emails/login-notification.blade.php old mode 100644 new mode 100755 diff --git a/backend/resources/views/welcome.blade.php b/backend/resources/views/welcome.blade.php old mode 100644 new mode 100755 diff --git a/backend/routes/console.php b/backend/routes/console.php old mode 100644 new mode 100755 diff --git a/backend/routes/expert.php b/backend/routes/expert.php index db005e64..50400564 100755 --- a/backend/routes/expert.php +++ b/backend/routes/expert.php @@ -2,6 +2,10 @@ use App\Admin\Controllers\AuthController; use App\Admin\Controllers\DocumentationController; +use App\Admin\Controllers\ExpertManagementController; +use App\Admin\Controllers\PermissionManagementController; +use App\Admin\Controllers\RoleManagementController; +use App\Admin\Controllers\UserManagementController; Route::prefix('auth') ->name('auth.') @@ -18,7 +22,52 @@ Route::prefix('documents') ->controller(DocumentationController::class) ->group(function () { Route::get('/', 'index')->name('index'); - Route::post('confirm', 'confirm')->name('confirm'); - Route::post('reject', 'reject')->name('reject'); + Route::post('confirm/{user}', 'confirm')->name('confirm'); + Route::post('reject/{user}', 'reject')->name('reject'); Route::get('files/{user}', 'files')->name('files'); }); + +Route::prefix('user_management') + ->middleware(['auth:expert', 'permission:user-management']) + ->name('user_management.') + ->controller(UserManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'store')->name('store'); + Route::get('/{user}', 'show')->name('show'); + Route::post('/{user}', 'update')->name('update'); + Route::delete('/{user}', 'destroy')->name('destroy'); + }); +Route::prefix('roles') + ->name('roles.') + ->middleware(['auth:expert', 'permission:role-management']) + ->controller(RoleManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'store')->name('store'); + Route::get('/{role}', 'show')->name('show'); + Route::post('/{role}', 'update')->name('update'); + Route::delete('/{role}', 'destroy')->name('destroy'); + }); +Route::prefix('permissions') + ->name('permissions.') + ->middleware(['auth:expert', 'permission:permission-management']) + ->controller(PermissionManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'store')->name('store'); + Route::get('/{permission}', 'show')->name('show'); + Route::post('/{permission}', 'update')->name('update'); + Route::delete('/{permission}', 'destroy')->name('destroy'); + }); +Route::prefix('expert') + ->name('expert.') + ->middleware(['auth:expert', 'permission:expert-management']) + ->controller(ExpertManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'store')->name('store'); + Route::get('/{expert}', 'show')->name('show'); + Route::post('/{expert}', 'update')->name('update'); + Route::delete('/{expert}', 'destroy')->name('destroy'); + }); diff --git a/backend/routes/web.php b/backend/routes/web.php index b81845c1..28784019 100755 --- a/backend/routes/web.php +++ b/backend/routes/web.php @@ -26,49 +26,3 @@ Route::prefix('profile') Route::post('edit', 'edit')->name('edit'); Route::post('change_password', 'changePassword')->name('changePassword'); }); - -Route::prefix('admin') - ->name('Admin.') - ->group(function () { - Route::prefix('user_management') - ->name('user_management.') - ->controller(UserManagementController::class) - ->group(function () { - Route::get('/', 'index')->name('index'); - Route::post('/', 'store')->name('store'); - Route::get('/{user}', 'show')->name('show'); - Route::post('/{user}', 'update')->name('update'); - Route::delete('/{user}', 'destroy')->name('destroy'); - }); - Route::prefix('roles') - ->name('roles.') - ->controller(RoleManagementController::class) - ->group(function () { - Route::get('/', 'index')->name('index'); - Route::post('/', 'store')->name('store'); - Route::get('/{role}', 'show')->name('show'); - Route::post('/{role}', 'update')->name('update'); - Route::delete('/{role}', 'destroy')->name('destroy'); - }); - Route::prefix('permissions') - ->name('permissions.') - ->controller(PermissionManagementController::class) - ->group(function () { - Route::get('/', 'index')->name('index'); - Route::post('/', 'store')->name('store'); - Route::get('/{permission}', 'show')->name('show'); - Route::post('/{permission}', 'update')->name('update'); - Route::delete('/{permission}', 'destroy')->name('destroy'); - }); - Route::prefix('expert') - ->name('expert.') - ->controller(ExpertManagementController::class) - ->group(function () { - Route::get('/', 'index')->name('index'); - Route::post('/', 'store')->name('store'); - Route::get('/{expert}', 'show')->name('show'); - Route::post('/{expert}', 'update')->name('update'); - Route::delete('/{expert}', 'destroy')->name('destroy'); - }); - }); - diff --git a/backend/tests/Feature/ExampleTest.php b/backend/tests/Feature/ExampleTest.php old mode 100644 new mode 100755 diff --git a/backend/tests/Pest.php b/backend/tests/Pest.php old mode 100644 new mode 100755 diff --git a/backend/tests/TestCase.php b/backend/tests/TestCase.php old mode 100644 new mode 100755 diff --git a/backend/tests/Unit/ExampleTest.php b/backend/tests/Unit/ExampleTest.php old mode 100644 new mode 100755 diff --git a/backend/vite.config.js b/backend/vite.config.js old mode 100644 new mode 100755 -- 2.49.1