From b22a24637c83091ff5453eae0b90d0be4f94fdbf Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Tue, 4 Nov 2025 17:33:55 +0330 Subject: [PATCH 1/3] updade and fix service and request for create user --- .env.example | 6 ++- .../Harim/PanjareVahedController.php | 2 +- .../V3/Dashboard/UserManagementController.php | 44 +++++++++++++------ .../UserManagement/StoreExrtraRequest.php | 23 +++++++--- .../Dashboard/UserManagement/StoreRequest.php | 21 +++++++-- .../UserManagement/UpdateRequest.php | 17 ++++++- .../UserManagement/UserManagementService.php | 2 +- resources/lang/fa/validation.php | 4 +- routes/v3.php | 14 +++--- 9 files changed, 97 insertions(+), 36 deletions(-) diff --git a/.env.example b/.env.example index af200645..5a6b45c4 100644 --- a/.env.example +++ b/.env.example @@ -93,4 +93,8 @@ HARIM_NEED_GUARANTEE_LETTER_USERNAME= BACKUP_TARGET_DIR= BACKUP_USER= -BACKUP_PASSWORD= \ No newline at end of file +BACKUP_PASSWORD= + + +HARIM_ENCRYPTION_KEY="TestKey" +HARIM_ENCRYPTION_IV="1111000011110101" diff --git a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php index 75af3678..cc177988 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php @@ -22,7 +22,7 @@ class PanjareVahedController extends Controller public function receiveNewRequest(ReceiveNewRequest $request): JsonResponse { $iv = config('harim_web_services.Harim_Info.iv'); - $keyString = config('harim_web_services.Harim_Info.keyString'); + $keyString = config('harim_web_services.Harim_Info.key'); $key = hash('sha256',$keyString, true); diff --git a/app/Http/Controllers/V3/Dashboard/UserManagementController.php b/app/Http/Controllers/V3/Dashboard/UserManagementController.php index 72ebb554..a3514002 100644 --- a/app/Http/Controllers/V3/Dashboard/UserManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/UserManagementController.php @@ -24,6 +24,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; +use Throwable; class UserManagementController extends Controller { @@ -38,7 +39,7 @@ class UserManagementController extends Controller return response()->json($data); } - public function store(StoreRequest $request): jsonResponse + public function limitStore(StoreRequest $request): jsonResponse { auth()->user()->addActivityComplete(1039); @@ -53,17 +54,20 @@ class UserManagementController extends Controller 'edarate_ostani_id' => $request->edarate_ostani_id, 'edarate_ostani_name' => $request->edarate_ostani_id == null ? null : - EdarateOstani::query()->find($request->edarate_ostani_id), + EdarateOstani::query()->find($request->edarate_ostani_id)->name_fa, 'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_name' => $request->edarate_shahri_id == null ? null : - EdarateShahri::query()->find($request->edarate_shahri_id), + EdarateShahri::query()->find($request->edarate_shahri_id)->name_fa, ]); return $this->successResponse(); } - public function storeExtra(StoreRequest $request): jsonResponse + /** + * @throws Throwable + */ + public function fullStore(StoreRequest $request): jsonResponse { DB::transaction(function () use ($request) { auth()->user()->addActivityComplete(1039); @@ -79,11 +83,11 @@ class UserManagementController extends Controller 'edarate_ostani_id' => $request->edarate_ostani_id, 'edarate_ostani_name' => $request->edarate_ostani_id == null ? null : - EdarateOstani::query()->find($request->edarate_ostani_id), + EdarateOstani::query()->find($request->edarate_ostani_id)->name_fa, 'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_name' => $request->edarate_shahri_id == null ? null : - EdarateShahri::query()->find($request->edarate_shahri_id), + EdarateShahri::query()->find($request->edarate_shahri_id)->name_fa, 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'position' => $request->position, @@ -91,6 +95,7 @@ class UserManagementController extends Controller 'degree' => $request->degree, 'major' => $request->major, ]); + $user->avatar = $request->has('avatar') ? FileFacade::save($request->avatar, "user/{$user->id}") : null; @@ -101,11 +106,22 @@ class UserManagementController extends Controller public function show(User $user): JsonResponse { - return $this->successResponse($user->with(['roles', 'permissions'])->get()); + return $this->successResponse($user); + } + + public function userPermissions(User $user): JsonResponse + { + $role = $user->roles()->pluck('name')->first(); + $permissions = $user->getAllPermissions()->pluck('name'); + + return $this->successResponse([ + 'role' => $role, + 'permissions' => $permissions, + ]); } /** - * @throws \Throwable + * @throws Throwable */ public function update(UpdateRequest $request, User $user): JsonResponse { @@ -122,11 +138,11 @@ class UserManagementController extends Controller 'edarate_ostani_id' => $request->edarate_ostani_id, 'edarate_ostani_name' => $request->edarate_ostani_id == null ? null : - EdarateOstani::query()->find($request->edarate_ostani_id), + EdarateOstani::query()->find($request->edarate_ostani_id)->name_fa, 'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_name' => $request->edarate_shahri_id == null ? null : - EdarateShahri::query()->find($request->edarate_shahri_id), + EdarateShahri::query()->find($request->edarate_shahri_id)->name_fa, 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'position' => $request->position, @@ -139,7 +155,7 @@ class UserManagementController extends Controller if ($user->avatar) { FileFacade::delete($user->avatar, true); } - $data['avatar'] = FileFacade::save($request->file('avatar'), "avatar/{$user->id}/"); + $data['avatar'] = FileFacade::save($request->file('avatar'), "avatars/{$user->id}/"); } $user->update($data); @@ -148,15 +164,15 @@ class UserManagementController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function destroy(User $user): JsonResponse { DB::transaction(function () use ($user) { if ($user->avatar) { FileFacade::delete($user->avatar, true); } - if ($user->photo) { - FileFacade::delete($user->photo, true); - } $user->roles()->detach(); $user->permissions()->detach(); diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php index 2663aeb0..f7b6b85b 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php @@ -4,6 +4,7 @@ namespace App\Http\Requests\V3\Dashboard\UserManagement; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class StoreExrtraRequest extends FormRequest { @@ -23,17 +24,29 @@ class StoreExrtraRequest extends FormRequest public function rules(): array { return [ - 'edarate_ostani_id' => 'nullable|exists:edarate_ostanis,id|required_without:edarate_shahri_id', - 'edarate_shahri_id' => 'nullable|exists:edarate_shahris,id|required_without:edarate_ostani_id', + 'edarate_ostani_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_ostani', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), + ], + 'edarate_shahri_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_shahri', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), + ], 'province_id' => 'required|exists:provinces,id', 'city_id' => 'exists:cities,id', 'username' => 'required|unique:users,username', - 'national_code' => 'unique:users,national_code', - 'password' => 'required|string|confirmed|min:8', + 'national_code' => 'unique:users,national_code|digits:10', + 'password' => 'required|confirmed|min:8', 'first_name' => 'required|string', 'last_name' => 'required|string', 'position' => 'string', - 'mobile' => 'required|string', + 'mobile' => 'required|regex:/^09\d{9}$/|numeric|digits:11', 'degree' => 'string', 'major' => 'string', 'avatar' => 'required|file|mimes:pdf,jpg,jpeg,png', diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php index e6b6c29d..4c3583d0 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php @@ -4,6 +4,7 @@ namespace App\Http\Requests\V3\Dashboard\UserManagement; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class StoreRequest extends FormRequest { @@ -23,13 +24,25 @@ class StoreRequest extends FormRequest public function rules(): array { return [ - 'edarate_ostani_id' => 'nullable|exists:edarate_ostanis,id|required_without:edarate_shahri_id', - 'edarate_shahri_id' => 'nullable|exists:edarate_shahris,id|required_without:edarate_ostani_id', + 'edarate_ostani_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_ostani', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), + ], + 'edarate_shahri_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_shahri', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), + ], 'province_id' => 'required|exists:provinces,id', 'city_id' => 'exists:cities,id', 'username' => 'required|unique:users,username', - 'national_code' => 'unique:users,national_code', - 'password' => 'required|string|confirmed|min:8', + 'national_code' => 'unique:users,national_code|digits:10', + 'password' => 'required|confirmed|min:8', ]; } } diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php index d41eea2e..8dbbc53b 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php @@ -25,8 +25,21 @@ class UpdateRequest extends FormRequest { return [ 'province_id' => 'required|exists:provinces,id', - 'edarate_ostani_id' => 'nullable|exists:edarate_ostanis,id|required_without:edarate_shahri_id', - 'edarate_shahri_id' => 'nullable|exists:edarate_shahris,id|required_without:edarate_ostani_id', 'city_id' => 'exists:cities,id', + 'edarate_ostani_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_ostani', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), + ], + 'edarate_shahri_id' => [ + 'nullable', + 'integer', + Rule::exists('edarate_shahri', 'id'), + Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), + Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), + ], + 'city_id' => 'exists:cities,id', 'username' => [Rule::unique('users', 'username')->ignore($this->user->id)], 'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)], 'first_name' => 'required|string', diff --git a/app/Services/Cartables/UserManagement/UserManagementService.php b/app/Services/Cartables/UserManagement/UserManagementService.php index 36f02645..dbd0f56f 100644 --- a/app/Services/Cartables/UserManagement/UserManagementService.php +++ b/app/Services/Cartables/UserManagement/UserManagementService.php @@ -21,7 +21,7 @@ class UserManagementService $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: ['id', 'username', 'status', 'province_id', 'province_fa', 'city_id', 'city_fa', 'first_name', 'last_name', 'mobile', 'position', 'major', 'setad_id', 'last_login', 'roles', 'edarate_shahri_id', 'edarate_shahri_name', 'national_code', 'name', 'enabled', 'email', + allowedSelects: ['id', 'username', 'province_id', 'province_fa', 'city_id', 'city_fa', 'first_name', 'last_name', 'mobile', 'position', 'major', 'setad_id', 'last_login', 'edarate_shahri_id', 'edarate_shahri_name', 'national_code', 'name', 'enabled', 'email', 'edarate_ostani_id', 'edarate_ostani_name', 'degree', 'confirmed', 'checked', 'updated_at', 'photo', 'created_at'], ); } diff --git a/resources/lang/fa/validation.php b/resources/lang/fa/validation.php index 1907f5e7..d58a36b0 100644 --- a/resources/lang/fa/validation.php +++ b/resources/lang/fa/validation.php @@ -12,7 +12,7 @@ return [ | as the size rules. Feel free to tweak each of these messages here. | */ - + 'prohibited' => ':attribute در این حالت مجاز نیست.', "accepted" => ":attribute باید پذیرفته شده باشد.", "active_url" => "آدرس :attribute معتبر نیست", "after" => ":attribute باید بعد از :date باشد.", @@ -286,5 +286,7 @@ return [ 'forbidden_area' => 'محدوده ممنوعه', 'forbidden_area.type' => 'نوع محدوده محدوده', 'forbidden_area.coordinates' => 'مختصات محدوده ممنوعه', + 'edarate_ostani_id' => 'اداره استانی', + 'edarate_shahri_id' => ' اداره شهری' ], ]; diff --git a/routes/v3.php b/routes/v3.php index d93ff295..fede5047 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -586,19 +586,19 @@ Route::prefix('user_management') ->name('user_management.') ->controller(UserManagementController::class) ->group(function () { -// Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index')->middleware( 'permission:full-user-management|limited-user-management'); - Route::post('/', 'store')->name('store'); - Route::post('/store_extra', 'storeExtra')->name('storeExtra'); + Route::post('/limit_store', 'limitStore')->name('limitStore'); + Route::post('/full_store', 'fullStore')->name('fullStore'); Route::get('/{user}', 'show')->name('show'); + Route::get('/user_permissions/{user}', 'userPermissions')->name('userPermissions'); Route::post('/{user}', 'update')->name('update'); Route::delete('/{user}', 'destroy')->name('destroy'); Route::post('/change_password/{user}', 'changePassword')->name('changePassword'); - Route::post('/give_permissions_to', 'givePermissionsTo')->name('givePermissionsTo'); - Route::post('/give_role_to_user','giveRoleToUser')->name('giveRoleToUser'); - Route::post('/change_confirmed_status', 'changeConfirmedStatus')->name('changeConfirmedStatus'); - Route::post('/change_user_enabeld','changeUserEnabeld')->name('changeUserEnabeld')->middleware( + Route::post('/give_permissions_to/{user}', 'givePermissionsTo')->name('givePermissionsTo'); + Route::post('/give_role_to_user/{user}','giveRoleToUser')->name('giveRoleToUser'); + Route::post('/change_confirmed_status/{user}', 'changeConfirmedStatus')->name('changeConfirmedStatus'); + Route::post('/change_user_enabeld/{user}','changeUserEnabeld')->name('changeUserEnabeld')->middleware( 'permission:full-user-management|limited-user-management'); Route::get('/activity_report', 'activityReport')->name('activityReport'); Route::get('/userActivityLogs', 'userActivityLogs')->name('userActivityLogs'); From b736a8a8547259106e3d4fc56305205ce56ae053 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Wed, 5 Nov 2025 10:47:37 +0330 Subject: [PATCH 2/3] change two item in fromrequest --- .../V3/Dashboard/UserManagementController.php | 7 ++++--- ...ExrtraRequest.php => FullStoreRequest.php} | 18 +++--------------- ...StoreRequest.php => LimitStoreRequest.php} | 19 +++---------------- .../UserManagement/UpdateRequest.php | 16 ++-------------- 4 files changed, 12 insertions(+), 48 deletions(-) rename app/Http/Requests/V3/Dashboard/UserManagement/{StoreExrtraRequest.php => FullStoreRequest.php} (62%) rename app/Http/Requests/V3/Dashboard/UserManagement/{StoreRequest.php => LimitStoreRequest.php} (52%) diff --git a/app/Http/Controllers/V3/Dashboard/UserManagementController.php b/app/Http/Controllers/V3/Dashboard/UserManagementController.php index a3514002..cb5abc76 100644 --- a/app/Http/Controllers/V3/Dashboard/UserManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/UserManagementController.php @@ -7,9 +7,10 @@ use App\Http\Controllers\Controller; use App\Http\Requests\V3\Dashboard\UserManagement\ChangeConfirmEnabelRequest; use App\Http\Requests\V3\Dashboard\UserManagement\ChangeConfirmStatusRequest; use App\Http\Requests\V3\Dashboard\UserManagement\ChangePasswordRequest; +use App\Http\Requests\V3\Dashboard\UserManagement\FullStoreRequest; use App\Http\Requests\V3\Dashboard\UserManagement\GivePermissionRequest; use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest; -use App\Http\Requests\V3\Dashboard\UserManagement\StoreRequest; +use App\Http\Requests\V3\Dashboard\UserManagement\LimitStoreRequest; use App\Http\Requests\V3\Dashboard\UserManagement\UpdateRequest; use App\Http\Traits\ApiResponse; use App\Models\City; @@ -39,7 +40,7 @@ class UserManagementController extends Controller return response()->json($data); } - public function limitStore(StoreRequest $request): jsonResponse + public function limitStore(LimitStoreRequest $request): jsonResponse { auth()->user()->addActivityComplete(1039); @@ -67,7 +68,7 @@ class UserManagementController extends Controller /** * @throws Throwable */ - public function fullStore(StoreRequest $request): jsonResponse + public function fullStore(FullStoreRequest $request): jsonResponse { DB::transaction(function () use ($request) { auth()->user()->addActivityComplete(1039); diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php similarity index 62% rename from app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php rename to app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php index f7b6b85b..03b6a2e1 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php @@ -6,7 +6,7 @@ use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; -class StoreExrtraRequest extends FormRequest +class FullStoreRequest extends FormRequest { /** * Determine if the user is authorized to make this request. @@ -24,20 +24,8 @@ class StoreExrtraRequest extends FormRequest public function rules(): array { return [ - 'edarate_ostani_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_ostani', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), - ], - 'edarate_shahri_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_shahri', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), - ], + 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id,!=,null', + 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id,!=,null', 'province_id' => 'required|exists:provinces,id', 'city_id' => 'exists:cities,id', 'username' => 'required|unique:users,username', diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/LimitStoreRequest.php similarity index 52% rename from app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php rename to app/Http/Requests/V3/Dashboard/UserManagement/LimitStoreRequest.php index 4c3583d0..2a1fde8f 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/LimitStoreRequest.php @@ -4,9 +4,8 @@ namespace App\Http\Requests\V3\Dashboard\UserManagement; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; -use Illuminate\Validation\Rule; -class StoreRequest extends FormRequest +class LimitStoreRequest extends FormRequest { /** * Determine if the user is authorized to make this request. @@ -24,20 +23,8 @@ class StoreRequest extends FormRequest public function rules(): array { return [ - 'edarate_ostani_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_ostani', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), - ], - 'edarate_shahri_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_shahri', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), - ], + 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id', + 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id', 'province_id' => 'required|exists:provinces,id', 'city_id' => 'exists:cities,id', 'username' => 'required|unique:users,username', diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php index 8dbbc53b..a19cf756 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php @@ -25,20 +25,8 @@ class UpdateRequest extends FormRequest { return [ 'province_id' => 'required|exists:provinces,id', - 'edarate_ostani_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_ostani', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_shahri_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_shahri_id'))), - ], - 'edarate_shahri_id' => [ - 'nullable', - 'integer', - Rule::exists('edarate_shahri', 'id'), - Rule::prohibitedIf(fn () => filled($this->input('edarate_ostani_id'))), - Rule::requiredIf(fn () => blank($this->input('edarate_ostani_id'))), - ], + 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id,!=,null', + 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id,!=,null', 'city_id' => 'exists:cities,id', 'username' => [Rule::unique('users', 'username')->ignore($this->user->id)], 'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)], From cbeb116845259b8a2bc49115d691b0a0a750eea8 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Wed, 5 Nov 2025 10:59:42 +0330 Subject: [PATCH 3/3] change item in fromrequest --- .../Requests/V3/Dashboard/UserManagement/FullStoreRequest.php | 4 ++-- .../Requests/V3/Dashboard/UserManagement/UpdateRequest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php index 03b6a2e1..dd605e04 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/FullStoreRequest.php @@ -24,8 +24,8 @@ class FullStoreRequest extends FormRequest public function rules(): array { return [ - 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id,!=,null', - 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id,!=,null', + 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id', + 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id', 'province_id' => 'required|exists:provinces,id', 'city_id' => 'exists:cities,id', 'username' => 'required|unique:users,username', diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php index a19cf756..188a55e7 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php @@ -25,8 +25,8 @@ class UpdateRequest extends FormRequest { return [ 'province_id' => 'required|exists:provinces,id', - 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id,!=,null', - 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id,!=,null', + 'edarate_ostani_id' => 'exists:edarate_ostani,id|integer|prohibited_if:edarate_shahri_id', + 'edarate_shahri_id' => 'exists:edarate_shahri,id|integer|prohibited_if:edarate_ostani_id', 'city_id' => 'exists:cities,id', 'username' => [Rule::unique('users', 'username')->ignore($this->user->id)], 'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)],