diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 5e460b7..bd549b4 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -305,18 +305,72 @@ class UserController extends Controller $users = User::query()->where('phone', 'LIKE',$request->search.'%')->get(); elseif ($request->isCheck === "telefon") $users = User::query()->where('phone', 'LIKE',$request->search.'%')->get(); - elseif ($request->isCheck) - $users = User::query()->where('Roles', 'LIKE',$request->search.'%')->with(Role::class)->get(); - else - $users = User::query() - ->where('name_first', 'LIKE',$request->search.'%') - ->orWhere('name_last','LIKE', $request->search.'%') - ->orWhere('phone','LIKE', $request->search.'%') - ->orWhere('email','LIKE',$request->search. '%') - ->orWhere('name','LIKE',$request->search. '%') - ->orWhere('roles','LIKE',$request->search. '%') - ->get(); + elseif ($request->isCheck) { + $roles = Role::query()->where('name', 'LIKE', $request->search . '%')->get(); + $usersTEMP = User::all(); + $users = []; + foreach ($usersTEMP as $user) { + foreach ($roles as $role) { + if($user->hasRole($role)) { + array_push($users, $user); + break 2; + } + } + } + + if($request->search == "") + $users = User::all(); + + } else { + $usersTEMP = User::query() + ->where('name_first', 'LIKE', $request->search . '%') + ->orWhere('name_last', 'LIKE', $request->search . '%') + ->orWhere('phone', 'LIKE', $request->search . '%') + ->orWhere('email', 'LIKE', $request->search . '%') + ->orWhere('name', 'LIKE', $request->search . '%') + ->get(); + $roles = Role::query()->where('name', 'LIKE', $request->search . '%')->get(); + + $users = []; + + $allUsers = User::all(); + + //For hver user i systemet, check om han har en af de roller der matcher søgeordet + foreach ($allUsers as $user) { + foreach ($roles as $role) { + if($user->hasRole($role)) { + array_push($users, $user); + break 2; + } + } + } + + //For hver user der har data, der matcher søgeordet, check om useren allerede er i resultatet, hvis ikke så tilføj ham + foreach ($usersTEMP as $userTEMP){ + $isInUsers = false; + foreach ($users as $user) { + if($userTEMP == $user) { + $isInUsers = true; + break 2; + } + } + + if($isInUsers == false) + array_push($users, $userTEMP); + } + + $i = 0; + foreach ($users as $user){ + $i++; + foreach ($users as $userr){ + if($user->id == $userr->id) { + unset($users[$i]); + break 2; + } + } + } + } @@ -351,7 +405,7 @@ class UserController extends Controller '