public static function AllConferenceRoles($confId) { return DB::transaction(function () use($confId) { $permissionList = PermissionNames::AllConferencePermissions($confId); $permissions = self::createAllPermissions($permissionList); self::createPermissionRoles($permissions); // Create permissions/roles for things which are more limited permissions // (and therefore not in the permissions we want for management) self::createPermissionRoles(self::createAllPermissions(PermissionNames::ExclusiveConferencePermissions($confId))); $managerRoleId = self::ConferenceManager($confId, $permissions); return $managerRoleId; }); }
/** * 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 ''; }