diff --git a/skolehjem/app/Http/Controllers/EventController.php b/skolehjem/app/Http/Controllers/EventController.php index 43af78c..1e80482 100644 --- a/skolehjem/app/Http/Controllers/EventController.php +++ b/skolehjem/app/Http/Controllers/EventController.php @@ -58,7 +58,7 @@ class EventController extends Controller public function store(Request $request) { $requestBody = $request->validate([ - "name" => "required|unique:events|max:255", + "name" => "required|max:255", "description" => "required|max:255", "date" => "required" ]); @@ -66,11 +66,12 @@ class EventController extends Controller //creates a new Event model with the given parameter $event = new Event($requestBody); - $saved = $event->save(); + $allEvents = Event::query()->where('name', '=', $request->name)->get(); - if(!$saved){ - return Response::detect("events.store"); - }else{ + if(count($allEvents) > 0) + return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>'); + else { + $event->save(); $event = Event::query()->paginate($request->input("limit", 20)); return redirect()->route("events.index", ['events' => $event]); } @@ -129,14 +130,17 @@ class EventController extends Controller $data = $request->all(); $event = Event::find($id); - $event->update($data); - $saved = $event->save(); - if(!$saved){ - return Response::detect("events.update", [ "event" => $event]); + $allEvents = Event::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get(); + + if(count($allEvents) > 0){ + return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>'); }else{ + $event->update($data); + $event->save(); + $event = Event::query()->paginate($request->input("limit", 20)); - return Response::detect("events.index", ['events' => $event]); + return redirect()->route("events.index", ['events' => $event]); } } diff --git a/skolehjem/app/Http/Controllers/RolesController.php b/skolehjem/app/Http/Controllers/RolesController.php index 67f4154..ae68be2 100644 --- a/skolehjem/app/Http/Controllers/RolesController.php +++ b/skolehjem/app/Http/Controllers/RolesController.php @@ -57,13 +57,16 @@ class rolesController extends Controller ]); $role = new Role($requestRole); - $saved = $role->save(); - if(!$saved){ - return Response::detect("roles.store"); - }else{ + $allRoles = Role::query()->where('name', '=', $request->name)->get(); + + // If there already is a role with that name, then don't create + if(count($allRoles) > 0) + return redirect()->route("roles.store")->with('RoleNameExists', '<p><b>Der findes allerede en rolle med det navn!</b></p>'); + else { // Else - Create it + $role->save(); $roles = Role::query()->paginate($request->input("limit", 20)); - return Response::detect("roles.index", ['roles' => $roles]); + return redirect()->route("roles.index", ['roles' => $roles]); } @@ -103,14 +106,16 @@ class rolesController extends Controller { $data = $request->all(); $role = Role::find($id); - $role->update($data); - $saved = $role->save(); - if(!$saved){ - return Response::detect("roles.update", [ "role" => $role ]); + $allRoles = Role::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get(); + + if(count($allRoles) > 0){ + return redirect()->route("roles.index", [ "role" => $role ])->with('RoleNameExists', '<p><b>Der findes allerede en rolle med det navn!</b></p>'); }else{ + $role->update($data); + $role->save(); $roles = Role::query()->paginate($request->input("limit", 20)); - return Response::detect("roles.index", ['roles' => $roles]); + return redirect()->route("roles.index", ['roles' => $roles]); } } diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 26f0ab1..1d4d495 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -67,14 +67,20 @@ class UserController extends Controller $data = $request->validate([ "name_first" => "required|max:255", "name_last" => "required|max:255", - "email" => "required|email|unique:users", + "email" => "required", "password" => "required|max:60", - "phone" => "required|unique:users", + "phone" => "required", ]); - if ($request->password != $request->password2) { + $allUsersEmail = User::query()->where('email', '=', $request->email)->get(); + $allUsersPhone = User::query()->where('phone', '=', $request->phone)->get(); + + if ($request->password != $request->password2) return redirect()->route('users.create')->with('error#notsamepass', '<p><b>Der stod ikke det samme i `Password` & `Confirm Password`!</b></p>'); - } + elseif (count($allUsersEmail) > 0) + return redirect()->route('users.create')->with('EmailExists', '<p><b>Der findes allerede en bruger med den Email!</b></p>'); + elseif (count($allUsersPhone) > 0) + return redirect()->route('users.create')->with('PhoneExists', '<p><b>Der findes allerede en bruger med det Telefon Nr.!</b></p>'); $roles = $request->input("roles", [ "User" ]); @@ -130,9 +136,16 @@ class UserController extends Controller { $user = User::find($id); + $allUsersEmail = User::query()->where('email', '=', $request->email)->where('id', '!=', $id)->get(); + $allUsersPhone = User::query()->where('phone', '=', $request->phone)->where('id', '!=', $id)->get(); + if($id === Auth::id() || auth()->user()->hasPermissionTo("user.edit")) { if ($request->roles != null && auth()->user()->hasPermissionTo("user.edit")) { //You can only edit roles on the admin site, so if there is an input roles, then update user info and edit roles - if ($request->password != "") { // If you have edited the password, then run this + if(count($allUsersEmail) > 0) + return redirect()->route('users.edit', ['user' => $id])->with('EmailExists', '<p><b>Der findes allerede en bruger med den Email!</b></p>'); + elseif(count($allUsersPhone) > 0) + return redirect()->route('users.edit', ['user' => $id])->with('PhoneExists', '<p><b>Der findes allerede en bruger med det Telefon Nr.!</b></p>'); + elseif ($request->password != "") { // If you have edited the password, then run this if ($request->password == $request->password2) { // If the password is the same as confirm password, then update everything from user $data = $request->all(); /** @var User $user */ diff --git a/skolehjem/resources/views/admin/events/index.blade.php b/skolehjem/resources/views/admin/events/index.blade.php index 414eec6..61d63e9 100644 --- a/skolehjem/resources/views/admin/events/index.blade.php +++ b/skolehjem/resources/views/admin/events/index.blade.php @@ -17,8 +17,9 @@ @csrf <input type="text" class="form-controller" id="search" name="search" placeholder="Søg på Evt Navn, Evt Dato"></input> </form> - </div> + {!! session()->get('EventNameExists') !!} + <table class="tbl mt-2"> <tr> <th>Event Navn</th> diff --git a/skolehjem/resources/views/admin/roles/index.blade.php b/skolehjem/resources/views/admin/roles/index.blade.php index a032d77..361bfe9 100644 --- a/skolehjem/resources/views/admin/roles/index.blade.php +++ b/skolehjem/resources/views/admin/roles/index.blade.php @@ -17,9 +17,9 @@ @csrf <input type="text" class="form-controller" id="search" name="search" placeholder="Søg efter navn"></input> </form> - - </div> + {!! session()->get('RoleNameExists') !!} + <table class="tbl mt-2"> <tr> <th>Navn</th> diff --git a/skolehjem/resources/views/admin/users/create.blade.php b/skolehjem/resources/views/admin/users/create.blade.php index e329ea1..1832b95 100644 --- a/skolehjem/resources/views/admin/users/create.blade.php +++ b/skolehjem/resources/views/admin/users/create.blade.php @@ -12,6 +12,8 @@ @section("content") <h1>Opret Bruger:</h1> {!! session()->get('error#notsamepass') !!} + {!! session()->get('EmailExists') !!} + {!! session()->get('PhoneExists') !!} <form method="post" action="{{ route("users.store") }}"> @csrf <label for="name_first">Fornavn:</label> diff --git a/skolehjem/resources/views/admin/users/edit.blade.php b/skolehjem/resources/views/admin/users/edit.blade.php index 4559136..17b2ed3 100644 --- a/skolehjem/resources/views/admin/users/edit.blade.php +++ b/skolehjem/resources/views/admin/users/edit.blade.php @@ -12,6 +12,8 @@ @section("content") <h1>Rediger Bruger:</h1> {!! session()->get('error#notsamepass') !!} + {!! session()->get('EmailExists') !!} + {!! session()->get('PhoneExists') !!} <form method="post" action="{{ route("users.update", ['user' => $user]) }}"> @csrf @method("put")