diff --git a/app/Http/Controllers/PermissionsController.php b/app/Http/Controllers/PermissionsController.php index ebc9ab5..ef2f1eb 100644 --- a/app/Http/Controllers/PermissionsController.php +++ b/app/Http/Controllers/PermissionsController.php @@ -276,9 +276,7 @@ // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); - $query->where(function ($q) use ($search) { - $q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']); - }); + $query->where('name', 'like', '%' . $search . '%'); } // Apply sorting if provided @@ -303,14 +301,11 @@ // Get the filtered count of records $filteredRecords = $query->count(); - // Get the data for the current page - $permissions = $query->get(); + $data = $query->get(); - - $permissions = $permissions->map(function ($permission) { + $data = $data->map(function ($permission) { $permission->roles = $permission->roles($permission); - return $permission; }); @@ -328,7 +323,7 @@ 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $permissions, + 'data' => $data, ]); } diff --git a/app/Http/Controllers/PositionsController.php b/app/Http/Controllers/PositionsController.php index dac8350..231a6b4 100644 --- a/app/Http/Controllers/PositionsController.php +++ b/app/Http/Controllers/PositionsController.php @@ -223,11 +223,7 @@ // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); - $query->where(function ($q) use ($search) { - $q->whereRaw('LOWER(code) LIKE ?', ['%' . strtolower($search) . '%']) - ->orWhereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']) - ->orWhereRaw('CAST(level AS TEXT) LIKE ?', ['%' . $search . '%']); - }); + $query->whereAny(['code', 'name', 'level'], 'like', '%' . $search . '%'); } // Apply sorting if provided @@ -253,7 +249,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $positions = $query->get(); + $data = $query->get(); // Calculate the page count $size = $request->get('size', 10); // Default to 10 if not set @@ -270,7 +266,7 @@ 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $positions, + 'data' => $data, ]); } diff --git a/app/Http/Controllers/RolesController.php b/app/Http/Controllers/RolesController.php index a7fe2f3..8a20802 100644 --- a/app/Http/Controllers/RolesController.php +++ b/app/Http/Controllers/RolesController.php @@ -273,14 +273,17 @@ // Retrieve data from the database $query = Role::query(); + if(!$this->user->hasRole('administrator')){ + $query->where('name', '!=', 'administrator'); + } + // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { - $q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']) + $q->where('name', 'like', '%' . $search . '%') ->orWhereHas('position', function ($query) use ($search) { - $query->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']) - ->orWhereRaw('CAST(level AS TEXT) LIKE ?', ['%' . $search . '%']); + $query->whereAny(['name', 'level'], 'like','%'.$search.'%'); }); }); } @@ -290,19 +293,17 @@ $order = $request->get('sortOrder'); $column = $request->get('sortField'); - // Handle sorting for position-related columns if ($column === 'position_name') { $query->leftJoin('positions', 'roles.position_id', '=', 'positions.id') - ->orderByRaw('LOWER(positions.name) ' . $order) + ->orderBy('positions.name', $order) ->select('roles.*'); // Select only from roles table to avoid column conflicts } else if ($column === 'level') { $query->leftJoin('positions', 'roles.position_id', '=', 'positions.id') ->orderBy('positions.level', $order) ->select('roles.*'); // Select only from roles table to avoid column conflicts } else { - // Make sorting case-insensitive for string columns if ($column === 'name') { - $query->orderByRaw('LOWER(roles.name) ' . $order); + $query->orderBy('roles.name', $order); } else { $query->orderBy($column, $order); } @@ -328,7 +329,7 @@ $filteredRecords = $countQuery->distinct()->count('roles.id'); // Get the data for the current page - $roles = $query->with('position')->get(); + $data = $query->with('position')->get(); // Calculate the page count - ensure we don't divide by zero $pageSize = $request->get('size', 10); // Default to 10 if not provided @@ -345,7 +346,7 @@ 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $roles, + 'data' => $data, ]); } diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 6aa8cc9..649f535 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -79,10 +79,16 @@ // Retrieve data from the database $query = User::query(); + if(!$this->user->hasRole('administrator')){ + $query->whereHas('roles', function($q){ + $q->where('name', '!=', 'administrator'); + }); + } + // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); - $query->whereAny(['name','email'],'like','%'.$search.'%'); + $query->whereAny(['name', 'email'], 'like', '%'.$search.'%'); } // Apply sorting if provided @@ -108,7 +114,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $users = $query->with(['branch', 'roles'])->get(); + $data = $query->with(['branch', 'roles'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -124,7 +130,7 @@ 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $users, + 'data' => $data, ]); } @@ -144,6 +150,9 @@ $user = User::find($id); $roles = Role::all(); + if(!$this->user->hasRole('administrator')){ + $roles = $roles->where('name', '!=', 'administrator'); + } $branches = Branch::all(); return view('usermanagement::users.create', compact('user', 'roles', 'branches')); } @@ -234,6 +243,9 @@ } $roles = Role::all(); + if(!$this->user->hasRole('administrator')){ + $roles = $roles->where('name', '!=', 'administrator'); + } $branches = Branch::all(); return view('usermanagement::users.create', compact('roles', 'branches')); } diff --git a/resources/views/permissions/index.blade.php b/resources/views/permissions/index.blade.php index 52dccad..8fa43b6 100644 --- a/resources/views/permissions/index.blade.php +++ b/resources/views/permissions/index.blade.php @@ -7,8 +7,10 @@ @section('content')
-
-
+
+

List of Permissions

@@ -21,38 +23,43 @@
- +
- - - - - - + + + + + +
- - - Permission - - - Roles - - Action
+ + + Permission + + + Roles + + Action
-