/** * Remove the event given the eventID. * @param int $id * @return Response */ public function destroy($id) { if (!Entrust::hasRole(RoleNames::EventManager($id))) { return response("Permission not found", 403); } return DB::transaction(function () use($id) { $event = Event::find($id); if (is_null($event)) { return response("No event for id {$id}.", 404); } $event->delete(); Permission::whereIn('name', PermissionNames::AllEventPermissions($id))->delete(); RoleCreate::deleteEventRoles($id); return response()->json(['id' => $event->id]); }); }
/** * Deletes a conference. */ public function delete($id) { if (!Entrust::can(PermissionNames::ConferenceInfoEdit($id))) { return response("", 403); } DB::transaction(function () use($id) { $events = Event::where('conferenceID', $id)->get(); $pnames = array_merge(PermissionNames::AllConferencePermissions($id), PermissionNames::ExclusiveConferencePermissions($id)); $evtIds = []; foreach ($events as $e) { $pnames = array_merge($pnames, PermissionNames::AllEventPermissions($e->id)); echo $e; $evtIds[] = $e->id; } Permission::whereIn('name', $pnames)->delete(); RoleCreate::deleteConferenceRoles($id); RoleCreate::deleteEventRoles($evtIds); Conference::destroy($id); }); Log::info("Conference with ID {$id} deleted"); return ''; }