public function update(Request $request, Group $group)
 {
     $this->validate($request, ["action" => "required|in:updateName,updateDescription,addMember,delMember,modMember,promoteAdmin,demoteAdmin", "name" => "string|max:255|requiredIf:action,updateName", "description" => "max:1000|requiredIf:action,updateDescription", "user_id" => 'numeric']);
     if ($request->has('creator')) {
         $creator = true;
     } else {
         $creator = false;
     }
     if ($request->has('moderator')) {
         $moderator = true;
     } else {
         $moderator = false;
     }
     if ($request->has('adjudicator')) {
         $adjudicator = true;
     } else {
         $adjudicator = false;
     }
     if ($request->has('administrator')) {
         $administrator = true;
         $adjudicator = true;
         $moderator = true;
         $creator = true;
     } else {
         $administrator = false;
     }
     if ($request->input("action") == "updateName") {
         $group->name = $request->input("name");
         $group->save();
         return redirect()->back();
     } elseif ($request->input("action") == "updateDescription") {
         $group->description = $request->input("description");
         $group->save();
         return redirect()->back();
     } elseif ($request->input("action") == "addMember") {
         try {
             $user = User::findOrFail($request->input("user_id"));
         } catch (\Exception $e) {
             flash()->overlay("The user couldn't be found, the account may have been deleted recently", "User Not Found");
             return redirect()->back();
         }
         if ($group->users()->get()->contains($user)) {
             flash()->overlay("The user already exists in this group", "User Exists");
             return redirect()->back();
         } else {
             if ($administrator) {
                 $group->makeAdmin($user);
             } else {
                 $group->addUser($user, $creator, $moderator, $adjudicator);
                 $group->modifyPermissions($user, $creator, $moderator, $adjudicator);
             }
             flash()->overlay($user->name . " (" . $user->email . ") is now a member of this team.", "Team Member Added");
             return redirect()->back();
         }
     } elseif ($request->input("action") == "delMember") {
         $user = User::find($request->input("user_id"));
         if ($group->users()->get()->contains($user)) {
             //$group->delUser($user);
             $group->users()->detach([$user->id]);
             flash()->overlay("The user was removed from the team", "User Removed");
             return redirect()->back();
         } else {
             flash()->overlay("The user you requested to delete, does not exist in the team, the user may already have been deleted", "User Deleted");
             return redirect()->back();
         }
     } elseif ($request->input("action") == "modMember") {
         try {
             $user = User::findOrFail($request->input("user_id"));
         } catch (\Exception $e) {
             flash()->overlay("The user couldn't be found or no longer exists<br>User ID was " . $request->input('user_id'), "User Not Found");
             return redirect()->back();
         }
         //dd($request->input());
         if ($administrator) {
             $group->makeAdmin($user);
         } else {
             if ($group->isAdmin($user->id)) {
                 $group->removeAdmin($user);
             }
             $group->modifyPermissions($user, $creator, $moderator, $adjudicator);
         }
         flash()->overlay($user->name . " (" . $user->email . ") now has the permissions<br><br>Administrator: " . ($administrator ? "True" : "False") . "<br>Moderator: " . ($moderator ? "True" : "False") . "<br> Judge: " . ($adjudicator ? "True" : "False"), "Permissions Updated");
         return redirect()->back();
     } elseif ($request->input("action") == "promoteAdmin") {
         flash()->overlay("Do not use this", "Do not use!");
         return redirect()->back();
     }
 }