/** * Remove the specified resource from storage. * * @param int $id The id of the participation to be removed. * @return \Illuminate\Http\Response */ public function destroy($participation_id, Request $request) { $participation = ActivityParticipation::findOrFail($participation_id); $notify = false; if ($participation->user->id != Auth::id()) { if (!Auth::user()->can('board')) { abort(403); } $notify = true; } if ($participation->committees_activities_id === null) { if ($participation->activity->closed) { abort(500, "This activity is closed, you cannot change participation anymore."); } if (!$participation->activity->canUnsubscribe() && !$participation->backup && !Auth::user()->can('board')) { abort(500, "You cannot unsubscribe for this event at this time."); } $backupparticipation = $participation->backup ? null : ActivityParticipation::where('activity_id', $participation->activity->id)->whereNull('committees_activities_id')->where('backup', true)->first(); if ($backupparticipation !== null) { $backupparticipation->backup = false; $backupparticipation->save(); $name = $backupparticipation->user->name; $email = $backupparticipation->user->email; $activitytitle = $backupparticipation->activity->event->title; Mail::queue('emails.takenfrombackup', ['participation' => $backupparticipation], function ($m) use($name, $email, $activitytitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('Moved from back-up list to participants for ' . $activitytitle . '.'); }); } if ($notify) { $name = $participation->user->name; $email = $participation->user->email; $activitytitle = $participation->activity->event->title; Mail::queue('emails.unsubscribeactivity', ['activity' => ['id' => $participation->activity->event->id, 'title' => $activitytitle, 'name' => $participation->user->calling_name]], function ($m) use($name, $email, $activitytitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('You have been signed out for ' . $activitytitle . '.'); }); } $request->session()->flash('flash_message', $participation->user->name . ' is not attending ' . $participation->activity->event->title . ' anymore.'); $participation->delete(); } else { $request->session()->flash('flash_message', $participation->user->name . ' is not helping with ' . $participation->activity->event->title . ' anymore.'); if ($notify) { $name = $participation->user->name; $email = $participation->user->email; $activitytitle = $participation->activity->event->title; Mail::queue('emails.unsubscribehelpactivity', ['participation' => $participation], function ($m) use($name, $email, $activitytitle) { $m->queue('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('You don\'t help with ' . $activitytitle . ' anymore.'); }); } $participation->delete(); } return Redirect::back(); }