diff --git a/app/Http/Controllers/V3/Dashboard/RoleManagementController.php b/app/Http/Controllers/V3/Dashboard/RoleManagementController.php new file mode 100644 index 00000000..ccc3caac --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/RoleManagementController.php @@ -0,0 +1,91 @@ +json($data); + } + + /** + * @throws Throwable + */ + public function store(StoreRequest $request): JsonResponse + { + auth()->user()->addActivityComplete(1043); + + $role = DB::transaction(function () use ($request) + { + $role = Role::create([ + 'name' => $request->name, + 'name_fa' => $request->name_fa, + 'description' => $request->description, + 'guard_name' => 'web', + ]); + + $role->givePermissionTo($request->permissions); + }); + + return $this->successResponse($role); + } + + /** + * @throws Throwable + */ + public function update(UpdateRequest $request, Role $role): JsonResponse + { + auth()->user()->addActivityComplete(1044); + + DB::transaction(function () use ($request, $role) + { + $role->update([ + 'name' => $request->name, + 'name_fa' => $request->name_fa, + 'description' => $request->description, + 'guard_name' => 'web', + ]); + + $role->syncPermissions($request->permissions); + }); + + return $this->successResponse($role); + } + + public function show(Role $role): JsonResponse + { + return $this->successResponse($role); + } + + public function delete(Role $role): JsonResponse + { + auth()->user()->addActivityComplete(1045); + + $role->delete(); + + return $this->successResponse(); + } +} diff --git a/app/Http/Controllers/V3/Dashboard/UserManagementController.php b/app/Http/Controllers/V3/Dashboard/UserManagementController.php index d56b0753..c4f3474a 100644 --- a/app/Http/Controllers/V3/Dashboard/UserManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/UserManagementController.php @@ -35,9 +35,7 @@ class UserManagementController extends Controller // } public function indexUser(Request $request) { - if (auth()->user()) { - auth()->user()->addActivityComplete(1038); - } + auth()->user()->addActivityComplete(1038); $province = $request->province ?? null; $city = $request->city ?? null; @@ -85,16 +83,13 @@ class UserManagementController extends Controller 'message' => 'Forbidden' ], 403); } - - return response()->json([ - 'status' => '200', - 'message' => 'success', - 'data' => $users, - ], 200); + return $this->successResponse($users); } public function store(StoreRequest $request): jsonResponse { + auth()->user()->addActivityComplete(1039); + User::query()->create([ 'username' => $request->username, 'national_code' => $request->national_code, @@ -139,78 +134,8 @@ class UserManagementController extends Controller $user->national_code = $request->national_code; $user->save(); - if (auth()->user()) { - auth()->user()->addActivityComplete(1039, $user); - } - return response()->json([ - 'message' => 'success', - 'data' => $user - ], 200); - } - - public function editRole(Request $request, $id) - { - $request->validate([ - 'role_name' => 'required|string', - 'permissions' => 'required' - ], [ - 'permissions.required' => 'انتخاب دسترسی‌ها الزامی است.', - 'role_name.required' => 'نام نقش الزامی است.' - ]); - - if (auth()->user()) { - auth()->user()->addActivityComplete(1044); - } - $role = Role::find($id); - - - $updateRole = $role->update([ - 'name_fa' => $request->role_name, - 'description' => $request->description - ]); - - $permissions = $request->permissions; - // $permissions = explode(",", $request->permissions); - - $role->syncPermissions($permissions); - - return response()->json([ - 'message' => 'success', - 'data' => $role - ]); - } - - - public function createRole(Request $request) - { - $request->validate([ - 'role_name' => 'required|string', - 'permissions' => 'required' - ], [ - 'permissions.required' => 'انتخاب دسترسی‌ها الزامی است.', - 'role_name.required' => 'نام نقش الزامی است.' - ]); - - if (auth()->user()) { - auth()->user()->addActivityComplete(1043); - } - - $role = Role::create([ - 'name' => time(), - 'name_fa' => $request->role_name, - 'description' => $request->description - ]); - - $permissions = $request->permissions; - - // $permissions = explode(",", $request->permissions); - $role->givePermissionTo($permissions); - - return response()->json([ - 'message' => 'success', - 'data' => $role - ]); + return $this->successResponse($user); } public function show(User $user) diff --git a/app/Http/Requests/V3/Dashboard/RoleManageMent/StoreRequest.php b/app/Http/Requests/V3/Dashboard/RoleManageMent/StoreRequest.php new file mode 100644 index 00000000..4f628943 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/RoleManageMent/StoreRequest.php @@ -0,0 +1,33 @@ + + */ + public function rules(): array + { + return [ + 'name' => 'required|string|unique:roles,name', + 'name_fa' => 'required|string', + 'description' =>'string', + 'permissions' => 'array', + 'permissions.*' => 'integer|exists:permissions,id' + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/RoleManageMent/UpdateRequest.php b/app/Http/Requests/V3/Dashboard/RoleManageMent/UpdateRequest.php new file mode 100644 index 00000000..c2ced356 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/RoleManageMent/UpdateRequest.php @@ -0,0 +1,34 @@ + + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255',Rule::unique('roles','name')->ignore($this->role->id)], + 'name_fa' => 'required|string', + 'description' =>'string', + 'permissions' => 'array', + 'permissions.*' => 'integer|exists:permissions,id' + ]; + } +} diff --git a/routes/v3.php b/routes/v3.php index ae1d584f..e53bbf69 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -21,6 +21,7 @@ use App\Http\Controllers\V3\Dashboard\ObservedItemController; use App\Http\Controllers\V3\Dashboard\OtpManagementController; use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController; use App\Http\Controllers\V3\Dashboard\RoadPatrol\ReportController; +use App\Http\Controllers\V3\Dashboard\RoleManagementController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\AccessRoadActivityController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\ConstructionActivityController; @@ -607,6 +608,16 @@ Route::prefix('user_management') Route::post('/change_password/{user}', 'changePassword')->name('changePassword'); Route::post('delete-role/{id}', 'deleteRole')->name('deleteRole'); }); +Route::prefix('role') + ->name('role.') + ->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::get('/test', function () { $csvExporter = new \Laracsv\Export();