/ app / Http / Services / PermissionService.php
PermissionService.php
 1  <?php
 2  
 3  namespace App\Http\Services;
 4  
 5  use Exception;
 6  use Illuminate\Support\Facades\DB;
 7  use Spatie\Permission\Models\Permission;
 8  
 9  
10  class PermissionService
11  {
12      public static function search(string $searchString, string $sortField, string $sortDirection)
13      {
14          $query = Permission::query();
15  
16          $query->when($searchString, function ($query, $searchString) {
17              $query->where('name', 'like', '%' . $searchString . '%');
18          });
19          $query->orderBy($sortField, $sortDirection);
20  
21          return $query;
22      }
23  
24      public static function getPermissionsToAssign(int $roleId)
25      {
26          return Permission::query()
27              ->select('id', 'name')
28              ->whereDoesntHave('roles', function ($query) use ($roleId) {
29                  $query->where('id', $roleId);
30              })
31              ->get()->map(function ($permission) {
32                  return [
33                      'id' => $permission->id,
34                      'name' => __('permissions.created-permissions.' .  $permission->name),
35                  ];
36              });
37      }
38  }