public function actionExport($AS, $zero = false) { $myAS = intval(escapeshellcmd($AS)); if ($myAS <= 0) { exit("Error you need to provide the AS number for the routes to be published\neg. php cron.php cron 65001\n\n"); } Yii::import('application.modules.abuser.models.*'); $criteria = new CDbCriteria(); $criteria->condition = 'abuserIncidents.counter>=occurrence'; $criteria->order = "abuserIncidents.counter DESC"; $AT = AbuserTrigger::model()->with('abuserIncidents')->findAll($criteria); foreach ($AT as $trigger) { foreach ($trigger->abuserIncidents as $incident) { $ret = shell_exec(sprintf("/usr/sbin/bgpctl network add %s/32 community %d:%d", $incident->ipstr, $myAS, $incident->trigger_id, $incident->counter)); $incident->zero($zero); // log operation } } }
public function actionAbuser($email, $interval = 1, $zero = false) { date_default_timezone_set('UTC'); $criteria = new CDbCriteria(); $criteria->condition = '(abuserIncidents.last_occurrence between NOW()-interval :interval minute and NOW() and abuserIncidents.counter>=occurrence) /*OR abuserIncidents.counter>occurrence*/'; $criteria->params = array(':interval' => intval($interval)); $criteria->order = "abuserIncidents.counter DESC"; $AT = AbuserTrigger::model()->with('abuserIncidents')->findAll($criteria); if (!$AT) { exit; } $message = $this->render('abuser_report', array('model' => $AT)); $this->email_report($email, $message); if ($zero !== false) { foreach ($AT as $a) { foreach ($a->abuserIncidents as $b) { $b->zero(true); } } } // mail latest abuser incidents }
public function actionUpload() { $model = new BackupUpload(); $form = new CForm('application.models.uploadForm', $model); if ($form->submitted('submit') && $form->validate()) { $form->model->backup = CUploadedFile::getInstance($form->model, 'backup'); $fc = file_get_contents($form->model->backup->tempName); $xml = new SimpleXMLElement($fc, LIBXML_NOCDATA); foreach ($xml->record as $record) { foreach ((array) $record->attributes() as $val) { if (AbuserTrigger::model()->findByAttributes($val) === null) { $tr = new AbuserTrigger(); $tr->attributes = $val; if ($tr->validate()) { $tr->save(); } } } } Yii::app()->user->setFlash('success', 'File Uploaded'); $this->redirect(array('upload')); } $this->render('upload', array('form' => $form)); }