/**
  * Committee membership tools below
  */
 public function addMembership(Request $request)
 {
     $user = User::find($request->user_id);
     $committee = Committee::find($request->committee_id);
     if ($user == null) {
         abort(404);
     }
     if ($committee == null) {
         abort(404);
     }
     if (($committee->slug == config('proto.rootcommittee') || $committee->slug == config('proto.boardcommittee')) && !Auth::user()->can('admin')) {
         Session::flash("flash_message", "This committee is protected. Only the Have You Tried Turning It Off And On Again committee can change this committee.");
         return Redirect::back();
     }
     $membership = new CommitteeMembership();
     $membership->role = $request->role;
     $membership->edition = $request->edition;
     $membership->user_id = $request->user_id;
     $membership->committee_id = $request->committee_id;
     if (($membership->created_at = date('Y-m-d H:i:s', strtotime($request->start))) === false) {
         Session::flash("flash_message", "Ill-formatted start date.");
         return Redirect::back();
     }
     if ($request->end != "" && ($membership->deleted_at = date('Y-m-d H:i:s', strtotime($request->end))) === false) {
         Session::flash("flash_message", "Ill-formatted end date.");
         return Redirect::back();
     }
     $membership->save();
     Session::flash("flash_message", "You have added " . $membership->user->name . " to " . $membership->committee->name . ".");
     return Redirect::back();
 }