diff --git a/app/Http/Controllers/V3/Dashboard/UserManagementController.php b/app/Http/Controllers/V3/Dashboard/UserManagementController.php index 32631968..72ebb554 100644 --- a/app/Http/Controllers/V3/Dashboard/UserManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/UserManagementController.php @@ -2,9 +2,11 @@ namespace App\Http\Controllers\V3\Dashboard; -use App\Facades\DataTable\DataTableFacade; use App\Facades\File\FileFacade; 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\GivePermissionRequest; use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest; use App\Http\Requests\V3\Dashboard\UserManagement\StoreRequest; @@ -16,10 +18,10 @@ use App\Models\EdarateShahri; use App\Models\Province; use App\Models\Role; use App\Models\User; +use App\Services\Cartables\UserManagement\UserManagementService; use Carbon\Carbon; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; @@ -27,37 +29,61 @@ class UserManagementController extends Controller { use ApiResponse; - public function index(Request $request): JsonResponse + public function index(Request $request, UserManagementService $userManagementService): JsonResponse { - Auth::user()->addActivityComplete(1038); + auth()->user()->addActivityComplete(1038); - $data = DataTableFacade::run( - User::query(), - $request, - allowedFilters: ['*'], - allowedSortings: ['*'], - ); + $data = $userManagementService->datatable($request); - return $this->successResponse($data); + return response()->json($data); } public function store(StoreRequest $request): jsonResponse { auth()->user()->addActivityComplete(1039); + User::query()->create([ + 'username' => $request->username, + 'national_code' => $request->national_code, + 'password' => Hash::make($request->password), + 'province_id' => $request->province_id, + 'province_fa' => ($request->province_id == 0) ? 'ستاد' : Province::query()->find($request->province_id)->name_fa, + 'city_id' => $request->city_id, + 'city_fa' => ($request->city_id == 0) ? null : City::query()->find($request->city_id)->name_fa, + 'edarate_ostani_id' => $request->edarate_ostani_id, + 'edarate_ostani_name' => $request->edarate_ostani_id == null ? + null : + EdarateOstani::query()->find($request->edarate_ostani_id), + 'edarate_shahri_id' => $request->edarate_shahri_id, + 'edarate_shahri_name' => $request->edarate_shahri_id == null ? + null : + EdarateShahri::query()->find($request->edarate_shahri_id), + ]); + + return $this->successResponse(); + } + + public function storeExtra(StoreRequest $request): jsonResponse + { DB::transaction(function () use ($request) { + auth()->user()->addActivityComplete(1039); + $user = User::query()->create([ 'username' => $request->username, 'national_code' => $request->national_code, 'password' => Hash::make($request->password), - 'province_id' => $request->province_id ?: null, - 'province_fa' => ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa, - 'city_id' => $request->city_id ?: null, - 'city_fa' => ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa, + 'province_id' => $request->province_id, + 'province_fa' => ($request->province_id == 0) ? 'ستاد' : Province::query()->find($request->province_id)->name_fa, + 'city_id' => $request->city_id, + 'city_fa' => ($request->city_id == 0) ? null : City::query()->find($request->city_id)->name_fa, 'edarate_ostani_id' => $request->edarate_ostani_id, - 'edarate_ostani_name' => EdarateOstani::query()->find($request->edarate_ostani_name), + 'edarate_ostani_name' => $request->edarate_ostani_id == null ? + null : + EdarateOstani::query()->find($request->edarate_ostani_id), 'edarate_shahri_id' => $request->edarate_shahri_id, - 'edarate_shahri_name' => EdarateShahri::query()->find($request->edarate_shahri_name), + 'edarate_shahri_name' => $request->edarate_shahri_id == null ? + null : + EdarateShahri::query()->find($request->edarate_shahri_id), 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'position' => $request->position, @@ -65,147 +91,157 @@ class UserManagementController extends Controller 'degree' => $request->degree, 'major' => $request->major, ]); - $user->avatar = FileFacade::save($request->file('avatar'), "avatar/{$user->id}"); + $user->avatar = $request->has('avatar') ? + FileFacade::save($request->avatar, "user/{$user->id}") : + null; }); return $this->successResponse(); } - public function show(User $user) + public function show(User $user): JsonResponse { - $user = User::where('id', $user->id)->with(['roles', 'permissions'])->get(); - - return $this->successResponse($user); + return $this->successResponse($user->with(['roles', 'permissions'])->get()); } + /** + * @throws \Throwable + */ public function update(UpdateRequest $request, User $user): JsonResponse { - auth()->user()->addActivityComplete(1040); DB::transaction(function () use ($request, $user) { + auth()->user()->addActivityComplete(1040); - $user->update([ + $data = [ 'username' => $request->username, 'national_code' => $request->national_code, - 'province_id' => $request->province_id ?: null, - 'province_fa' => ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa, - 'city_id' => $request->city_id ?: null, - 'city_fa' => ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa, + 'province_id' => $request->province_id, + 'province_fa' => ($request->province_id == 0) ? 'ستاد' : Province::query()->find($request->province_id)->name_fa, + 'city_id' => $request->city_id, + 'city_fa' => ($request->city_id == 0) ? null : City::query()->find($request->city_id)->name_fa, 'edarate_ostani_id' => $request->edarate_ostani_id, - 'edarate_ostani_name' => EdarateOstani::query()->find($request->edarate_ostani_name), + 'edarate_ostani_name' => $request->edarate_ostani_id == null ? + null : + EdarateOstani::query()->find($request->edarate_ostani_id), 'edarate_shahri_id' => $request->edarate_shahri_id, - 'edarate_shahri_name' => EdarateShahri::query()->find($request->edarate_shahri_name), + 'edarate_shahri_name' => $request->edarate_shahri_id == null ? + null : + EdarateShahri::query()->find($request->edarate_shahri_id), 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'position' => $request->position, 'mobile' => $request->mobile, 'degree' => $request->degree, 'major' => $request->major, - ]); + ]; if ($request->has('avatar')) { - FileFacade::delete($user->avatar, true); - $user['avatar'] = FileFacade::save($request->file('avatar'), "avatar/{$user->id}/"); + if ($user->avatar) { + FileFacade::delete($user->avatar, true); + } + $data['avatar'] = FileFacade::save($request->file('avatar'), "avatar/{$user->id}/"); } - if (! is_null($request->password)) { - $user->password = Hash::make($request->password); - } - - if (! is_null($request->permissions)) { - $user->syncPermissions(explode(',', $request->permissions)); - } - - if ($request->filled('roles')) { - $user->syncRoles($request->roles); - } - - $user->save(); + $user->update($data); }); return $this->successResponse(); } - public function destroy(User $user) + public function destroy(User $user): JsonResponse { - $user->delete(); + 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(); + $user->delete(); + }); + + return $this->successResponse(); + } + + public function changePassword(User $user, ChangePasswordRequest $request): JsonResponse + { + $user->update([ + 'password' => Hash::make($request->new_password), + ]); return $this->successResponse(); } public function givePermissionsTo(GivePermissionRequest $request, User $user): JsonResponse { + $user->syncPermissions($request->permissions); - $user->givePermissionTo($request->permissions); - - return $this->successResponse($user->load('permissions')); + return $this->successResponse(); } - public function givePermissionsToRole(GivePermissionRequest $request, Role $role): JsonResponse + public function giveRoleToUser(GiveRoleRequest $request, User $user): JsonResponse { - $permissionId = $request->permissions; - $role->syncPermissions($permissionId); + $user->syncRoles($request->role); - return $this->successResponse($role->load('permissions')); + return $this->successResponse(); } - public function giveRolesToUser(GiveRoleRequest $request, User $user): JsonResponse + public function changeConfirmedStatus(ChangeConfirmStatusRequest $request, User $user): JsonResponse { - $roles = $request->roles; - - $user->assignRole($roles); - - return $this->successResponse($user->load('roles')); - } - - public function getUserPermissions(): JsonResponse - { - $userPermissions = Auth::user()->getUserPermissions(); - - return $this->successResponse($userPermissions); - } - - public function activityReport() - { - return view('version2.dashboard_pages.user_management.activity_report'); - } - - public function userActivityLogs() - { - return response()->json([ - 'status' => 'succeed', - 'message' => '', - 'data' => auth()->user()->activityLogs, - ], 200); - } - - public function changeConfirmedStatus(Request $request) - { - $request->validate([ - 'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/', - 'confirm' => 'required|in:0,1', - ]); - - $user_ids = explode(',', $request->user_ids); - - User::whereIn('id', $user_ids)->update([ + $user->update([ 'confirmed' => $request->confirm, ]); return $this->successResponse(); - } - public function changePassword(User $user, Request $request) + public function changeUserEnabeld(ChangeConfirmEnabelRequest $request, User $user): JsonResponse { - $validData = $request->validate([ - 'password' => 'required|string|min:8|confirmed', + $user->update([ + 'enabled' => $request->enabled, ]); - $user->password = Hash::make($request->password); - $user->save(); return $this->successResponse(); } + // public function userActivityLogs() + // { + // return response()->json([ + // 'status' => 'succeed', + // 'message' => '', + // 'data' => auth()->user()->activityLogs, + // ], 200); + // } + + // public function userPermission($id) + // { + // $user = User::find($id); + // + // return response()->json([ + // 'message' => 'success', + // 'data' => $user->permissions, + // ]); + // } + + // public function assignPermission(Request $request, User $user) + // { + // if (auth()->user()) { + // auth()->user()->addActivityComplete(1042); + // } + // $permissions = explode(',', $request->permissions); + // if (! $permissions == null) { + // $user->syncPermissions($permissions); + // } + // + // return response()->json([ + // 'message' => 'status', + // 'data' => User::where('id', $user->id)->with(['permissions'])->get(), + // ]); + // } + public function getUserSummaryReport(Request $request, User $user) { $request->fromDate = $request->fromDate ? $request->fromDate.' 00:00:00' : Carbon::now()->subDays(30)->format('Y-m-d 00:00:00'); @@ -498,46 +534,137 @@ class UserManagementController extends Controller return View('word.user-activity-individual', compact('data')); } - public function userPermission($id) + public function indexShow(Request $request) { - $user = User::find($id); + $request->fromDate = $request->fromDate ? $request->fromDate.' 00:00:00' : Carbon::now()->format('Y-m-d 00:00:00'); + $request->toDate = $request->toDate ? $request->toDate.' 23:59:59' : Carbon::now()->format('Y-m-d 23:59:59'); + + $roles_must_show_report = Role::where('for_report', 1)->get(); + + $data = []; + + $users_activity = []; + + foreach ($roles_must_show_report as $key => $value) { + $ids_list = ''; + $users = $value->users()->select('id')->get()->toArray(); + foreach ($users as $index => $item) { + if (! $index) { + $ids_list = $item['id']; + } else { + $ids_list .= ','.$item['id']; + } + } + $temp_sql = " + SELECT sum(majmoe) AS activity FROM (SELECT *, + COUNT(quantity) AS majmoe + FROM ( + SELECT *, + COUNT(*) AS quantity + FROM user_activity_logs + WHERE (created_at between '{$request->fromDate}' and '{$request->toDate}') and user_id IN(".$ids_list.') + GROUP BY yy, + mm, + dd, + hh, + user_id + ) user_activity_by_hour_and_ + GROUP BY user_id) AS calculated_table;'; + + $activity = DB::select($temp_sql)[0]->activity; + $users_activity[] = [ + 'activity_time' => $ids_list ? $activity : null, + 'average' => round(($ids_list ? $activity : 0) / count($users), 2), + 'group_name' => $value->name_fa, + 'user_count' => count($users), + 'is_static' => 0, + 'group_id' => $value->id, + ]; + } + + $country_group_ids_list = ''; + $country_group_user_quantity = 0; + foreach (Role::whereIn('id', $this->country_group_ids_list_array)->get() as $key => $value) { + $users = $value->users()->select('id')->get(); + $country_group_user_quantity += count($users); + foreach ($users as $index => $item) { + if (! $key) { + $country_group_ids_list = $item->id; + } else { + $country_group_ids_list .= ','.$item->id; + } + } + } + + $country_temp_sql = " + SELECT sum(majmoe) AS activity FROM (SELECT *, + COUNT(quantity) AS majmoe + FROM ( + SELECT *, + COUNT(*) AS quantity + FROM user_activity_logs + WHERE (created_at between '{$request->fromDate}' and '{$request->toDate}') and user_id IN(".$country_group_ids_list.') + GROUP BY yy, + mm, + dd, + hh, + user_id + ) user_activity_by_hour_and_ + GROUP BY user_id) AS calculated_table;'; + + $users_activity[] = [ + 'activity_time' => $country_group_ids_list ? DB::select($country_temp_sql)[0]->activity : null, + 'average' => round(($country_group_ids_list ? DB::select($country_temp_sql)[0]->activity : 0) / $country_group_user_quantity, 2), + 'group_name' => 'کشوری', + 'user_count' => $country_group_user_quantity, + 'is_static' => 1, + 'group_id' => 3, + ]; + + $organization_group_ids_list = ''; + $organization_group_user_quantity = 0; + foreach (Role::whereIn('id', $this->organization_group_ids_list_array)->get() as $key => $value) { + $users = $value->users()->select('id')->get(); + $organization_group_user_quantity += count($users); + foreach ($users as $index => $item) { + if (! $key) { + $organization_group_ids_list = $item->id; + } else { + $organization_group_ids_list .= ','.$item->id; + } + } + } + + $organization_temp_sql = " + SELECT sum(majmoe) AS activity FROM (SELECT *, + COUNT(quantity) AS majmoe + FROM ( + SELECT *, + COUNT(*) AS quantity + FROM user_activity_logs + WHERE (created_at between '{$request->fromDate}' and '{$request->toDate}') and user_id IN(".$organization_group_ids_list.') + + GROUP BY yy, + mm, + dd, + hh, + user_id + ) user_activity_by_hour_and_ + GROUP BY user_id) AS calculated_table;'; + + $users_activity[] = [ + 'activity_time' => $organization_group_ids_list ? DB::select($organization_temp_sql)[0]->activity : null, + 'average' => round(($organization_group_ids_list ? DB::select($organization_temp_sql)[0]->activity : 0) / $organization_group_user_quantity, 2), + 'group_name' => 'سازمانی', + 'user_count' => $organization_group_user_quantity, + 'is_static' => 2, + 'group_id' => 3, + ]; return response()->json([ - 'message' => 'success', - 'data' => $user->permissions, - ]); - } - - public function assignPermission(Request $request, User $user) - { - if (auth()->user()) { - auth()->user()->addActivityComplete(1042); - } - $permissions = explode(',', $request->permissions); - if (! $permissions == null) { - $user->syncPermissions($permissions); - } - - return response()->json([ - 'message' => 'status', - 'data' => User::where('id', $user->id)->with(['permissions'])->get(), - ]); - } - - public function changeUserEnabeld(User $user) - { - if (Auth::user()->checkUserHasPermission('full-user-management')) { - $user->enabled = ! $user->enabled; - - return $this->successResponse($user); - } elseif (Auth::user()->checkUserHasPermission('limited-user-management') && Auth::user()->province_id == $user->province_id) { - $user->enabled = ! $user->enabled; - - return $this->successResponse(); - } else { - return response()->json([ - 'message' => 'Forbidden', - ], 403); - } + 'status' => 'succeed', + 'message' => '', + 'data' => $users_activity, + ], 200); } } diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmEnabelRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmEnabelRequest.php new file mode 100644 index 00000000..52ec36bd --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmEnabelRequest.php @@ -0,0 +1,32 @@ +user(); + + return $user->hasPermissionTo('full-user-management') || + ($user->hasPermissionTo('limited-user-management') && $this->province_id == $user->province_id); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + 'enabled' => 'required|in:0,1', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmStatusRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmStatusRequest.php new file mode 100644 index 00000000..accbbb4d --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/UserManagement/ChangeConfirmStatusRequest.php @@ -0,0 +1,29 @@ + + */ + public function rules(): array + { + return [ + 'confirm' => 'required|in:0,1', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/ChangePasswordRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/ChangePasswordRequest.php new file mode 100644 index 00000000..36f91819 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/UserManagement/ChangePasswordRequest.php @@ -0,0 +1,29 @@ + + */ + public function rules(): array + { + return [ + 'password' => 'required|string|confirmed|min:8', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/GiveRoleRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/GiveRoleRequest.php index 6826799a..de1735cc 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/GiveRoleRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/GiveRoleRequest.php @@ -23,8 +23,7 @@ class GiveRoleRequest extends FormRequest public function rules(): array { return [ - 'roles' => 'array', - 'roles.*' => 'integer|exists:permissions,id', + 'role' => 'required|exists:roles,id', ]; } } diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php new file mode 100644 index 00000000..2663aeb0 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/UserManagement/StoreExrtraRequest.php @@ -0,0 +1,42 @@ + + */ + 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', + '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', + 'first_name' => 'required|string', + 'last_name' => 'required|string', + 'position' => 'string', + 'mobile' => 'required|string', + '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 be9e5a1a..e6b6c29d 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/StoreRequest.php @@ -23,20 +23,13 @@ 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', 'province_id' => 'required|exists:provinces,id', - 'edarate_ostani_id' => 'exists:edarate_ostanis,id', 'city_id' => 'exists:cities,id', - 'edarate_shahri_id' => 'exists:edarate_shahris,id', 'username' => 'required|unique:users,username', 'national_code' => 'unique:users,national_code', - 'password' => 'required|min:8', - 'first_name' => 'string', - 'last_name' => 'string', - 'position' => 'string', - 'mobile' => 'string', - 'degree' => 'string', - 'major' => 'string', - 'avatar' => 'required|file|mimes:pdf,jpg,jpeg,png', + 'password' => 'required|string|confirmed|min:8', ]; } } diff --git a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php index 82a041fd..d41eea2e 100644 --- a/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php +++ b/app/Http/Requests/V3/Dashboard/UserManagement/UpdateRequest.php @@ -25,12 +25,10 @@ class UpdateRequest extends FormRequest { return [ 'province_id' => 'required|exists:provinces,id', - 'edarate_ostani_id' => 'exists:edarate_ostanis,id', - 'city_id' => 'exists:cities,id', - 'edarate_shahri_id' => 'exists:edarate_shahris,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', 'username' => [Rule::unique('users', 'username')->ignore($this->user->id)], 'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)], - 'password' => 'min:8', 'first_name' => 'required|string', 'last_name' => 'required|string', 'position' => 'string', diff --git a/app/Services/Cartables/UserManagement/UserManagementService.php b/app/Services/Cartables/UserManagement/UserManagementService.php new file mode 100644 index 00000000..36f02645 --- /dev/null +++ b/app/Services/Cartables/UserManagement/UserManagementService.php @@ -0,0 +1,28 @@ +hasPermissionTo('full-user-management') ? + User::query() : + User::query()->where('province_id', '=', $user->province_id); + + return DataTableFacade::run( + $query, + $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', + 'edarate_ostani_id', 'edarate_ostani_name', 'degree', 'confirmed', 'checked', 'updated_at', 'photo', 'created_at'], + ); + } +} diff --git a/routes/v3.php b/routes/v3.php index 3d98b316..d93ff295 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -590,23 +590,24 @@ Route::prefix('user_management') 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::get('/{user}', 'show')->name('show'); 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_permissions_to_role', 'givePermissionsToRole')->name('givePermissionsToRole'); - Route::post('/give_roles_to_user','giveRolesToUser')->name('giveRolesToUser'); + 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( + 'permission:full-user-management|limited-user-management'); Route::get('/activity_report', 'activityReport')->name('activityReport'); Route::get('/userActivityLogs', 'userActivityLogs')->name('userActivityLogs'); - Route::post('/change_confirmed_status', 'changeConfirmedStatus')->name('changeConfirmedStatus'); Route::get('/give_permissions_to', 'givePermissionsTo')->name('givePermissionsTo'); Route::get('/get_user_permissions', 'getUserPermissions')->name('getUserPermissions'); Route::get('/get_user_summary_report', 'getUserSummaryReport')->name('getUserSummaryReport'); Route::get('/print_group', 'printGroup')->name('printGroup'); Route::get('/user_permission', 'userPermission')->name('userPermission'); Route::get('/assign_permission', 'assignPermission')->name('assignPermission'); - Route::post('/change_user_enabeld','changeUserEnabeld')->name('changeUserEnabeld'); - Route::post('/change_password/{user}', 'changePassword')->name('changePassword'); }); Route::prefix('role') ->name('role.')