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 }