/**
  * @param int $id
  */
 public function actionPersonBearbeiten($id)
 {
     $this->top_menu = "personen";
     $ich = $this->aktuelleBenutzerIn();
     if (!$ich) {
         $this->errorMessageAndDie(403, "Du musst eingeloggt sein, um deinen Eintrag zu bearbeiten.");
     }
     /** @var StadtraetIn $person */
     $person = StadtraetIn::model()->findByPk($id);
     if ($person->benutzerIn_id != $ich->id) {
         $this->errorMessageAndDie(403, "Du kannst nur deinen eigenen Eintrag bearbeiten.");
     }
     if (AntiXSS::isTokenSet("save")) {
         $person->web = $_REQUEST["web"];
         $person->twitter = trim($_REQUEST["twitter"], "\t\n\r@");
         $person->facebook = preg_replace("/^https?:\\/\\/(www\\.)?facebook\\.com\\//siu", "", $_REQUEST["facebook"]);
         $person->email = $_REQUEST["email"];
         $person->beschreibung = trim($_REQUEST["beschreibung"]);
         $person->quellen = "Selbstauskunft";
         $x = explode(".", $_REQUEST["geburtstag"]);
         if (count($x) == 3) {
             $person->geburtstag = $x[2] . "-" . $x[1] . "-" . $x[0];
         } else {
             if ($x[0] > 1900) {
                 $person->geburtstag = $x[0] . "-00:00";
             } else {
                 $person->geburtstag = null;
             }
         }
         $person->save();
         $this->msg_ok = "Gespeichert";
     }
     $this->render("person-bearbeiten", ["person" => $person]);
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $veranstaltung_id
  * @param int $id
  * @throws CException
  * @throws Exception
  */
 public function actionUpdate($veranstaltungsreihe_id = "", $veranstaltung_id, $id)
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id);
     if (!$this->veranstaltung->isAdminCurUser()) {
         $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     /** @var $model Antrag */
     $model = Antrag::model()->with("antragUnterstuetzerInnen", "antragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name"));
     if (is_null($model)) {
         Yii::app()->user->setFlash("error", "Der angegebene Antrag wurde nicht gefunden.");
         $this->redirect($this->createUrl("admin/antraege"));
     }
     if ($model->veranstaltung_id != $this->veranstaltung->id) {
         return;
     }
     $this->performAjaxValidation($model, 'antrag-form');
     $messages = array();
     if (AntiXSS::isTokenSet("antrag_freischalten")) {
         $newvar = AntiXSS::getTokenVal("antrag_freischalten");
         $model->adminFreischalten($newvar);
         Yii::app()->user->setFlash("success", "Der Antrag wurde freigeschaltet.");
     }
     if (isset($_POST['Antrag'])) {
         $fixed_fields = $fixed_fields_pre = array();
         if (!$model->kannTextUeberarbeitenAdmin()) {
             $fixed_fields = array("text_unveraenderlich", "text", "begruendung");
         }
         foreach ($fixed_fields as $field) {
             $fixed_fields_pre[$field] = $model->{$field};
         }
         if (!in_array($_POST['Antrag']['status'], $model->getMoeglicheStati())) {
             throw new Exception("Status-Übergang ungültig");
         }
         $revision_name = $model->revision_name;
         $model->setAttributes($_POST['Antrag'], false);
         if ($model->revision_name != $revision_name && $revision_name != "") {
             foreach ($this->veranstaltung->antraege as $ant) {
                 if ($ant->id != $model->id && $ant->revision_name == $model->revision_name && $ant->status != Antrag::$STATUS_GELOESCHT) {
                     // Zurücksetzen + Warnung
                     $messages[] = "Das vergebene Antragskürzel \"" . $model->revision_name . "\" wird bereits von einem anderen Antrag verwendet.";
                     $model->revision_name = $revision_name;
                 }
             }
         }
         foreach ($fixed_fields_pre as $field => $val) {
             $model->{$field} = $val;
         }
         Yii::import('ext.datetimepicker.EDateTimePicker');
         $model->datum_einreichung = EDateTimePicker::parseInput($_POST["Antrag"], "datum_einreichung");
         $model->datum_beschluss = EDateTimePicker::parseInput($_POST["Antrag"], "datum_beschluss");
         $relatedData = array();
         if ($model->saveWithRelated($relatedData)) {
             $model->veranstaltung->resetLineCache();
             UnterstuetzerInnenAdminWidget::saveUnterstuetzerInnenWidget($model, $messages, "AntragUnterstuetzerInnen", "antrag_id", $id);
             $model = Antrag::model()->with("antragUnterstuetzerInnen", "antragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name"));
         }
     }
     $this->render('update', array('model' => $model, 'messages' => $messages));
 }
 /**
  * @param int $id
  */
 public function actionAnzeigen($id)
 {
     $this->performLoginActions();
     /** @var Antrag $antrag */
     $antrag = Antrag::model()->findByPk($id);
     if (!$antrag) {
         $this->render('/index/error', ["code" => 404, "message" => "Der Antrag wurde nicht gefunden"]);
         return;
     }
     if (AntiXSS::isTokenSet("abonnieren")) {
         $this->requireLogin($this->createUrl("antraege/anzeigen", ["id" => $id]));
         $antrag->getVorgang()->abonnieren($this->aktuelleBenutzerIn());
     }
     if (AntiXSS::isTokenSet("deabonnieren")) {
         $this->requireLogin($this->createUrl("antraege/anzeigen", ["id" => $id]));
         $antrag->getVorgang()->deabonnieren($this->aktuelleBenutzerIn());
     }
     if (AntiXSS::isTokenSet("tag_add") && $this->aktuelleBenutzerIn()) {
         $tags = explode(",", $_REQUEST["tags_neu"]);
         foreach ($tags as $tag_name) {
             if (mb_strlen(trim($tag_name)) > 0) {
                 try {
                     $tag_name = trim($tag_name);
                     $tag = Tag::model()->findByAttributes(["name" => $tag_name]);
                     if (!$tag) {
                         $tag = new Tag();
                         $tag->name = $tag_name;
                         $tag->angelegt_benutzerIn_id = $this->aktuelleBenutzerIn()->id;
                         $tag->angelegt_datum = new CDbExpression('NOW()');
                         $tag->reviewed = $this->binContentAdmin() ? 1 : 0;
                         $tag->save();
                         if (count($tag->getErrors()) > 0) {
                             $this->render('/index/error', ["code" => 500, "message" => "Ein Fehler beim Anlegen des Schlagworts trat auf"]);
                         }
                     }
                     Yii::app()->db->createCommand()->insert("antraege_tags", ["antrag_id" => $antrag->id, "tag_id" => $tag->id, "zugeordnet_datum" => date("Y-m-d H:i:s"), "zugeordnet_benutzerIn_id" => $this->aktuelleBenutzerIn()->id]);
                 } catch (Exception $e) {
                     // Sind hauptsächlich doppelte Einträge -> ignorieren
                 }
             }
         }
     }
     $this->render("anzeige", ["antrag" => $antrag, "tag_mode" => isset($_REQUEST["tag_mode"]) && $_REQUEST["tag_mode"] == "1"]);
 }
 public function actionReferat($referat_url)
 {
     /** @var Referat $ref */
     $ref = Referat::model()->findByAttributes(["urlpart" => $referat_url]);
     if (!$ref) {
         die("Nicht gefunden");
     }
     $this->top_menu = "themen";
     $von = date("Y-m-d H:i:s", time() - 3600 * 24 * 30);
     $bis = date("Y-m-d H:i:s", time());
     $antraege_referat = Antrag::model()->neueste_stadtratsantragsdokumente_referat($ref->id, $von, $bis)->findAll();
     $text = Text::model()->findByAttributes(["typ" => 2, "titel" => $ref->name]);
     $my_url = Yii::app()->createUrl("/themen/referat/" . $referat_url);
     if ($this->binContentAdmin() && AntiXSS::isTokenSet("save")) {
         if (strlen($_REQUEST["text"]) == 0) {
             die("Kein Text angegeben");
         }
         $text->text = $_REQUEST["text"];
         $text->save();
         $this->msg_ok = "Gespeichert.";
     }
     $this->render("referat", ["referat" => $ref, "antraege_referat" => $antraege_referat, "text" => $text, "my_url" => $my_url]);
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $veranstaltung_id
  * @param int $id
  * @throws CException
  * @throws Exception
  */
 public function actionUpdate($veranstaltungsreihe_id = "", $veranstaltung_id, $id)
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id);
     if (!$this->veranstaltung->isAdminCurUser()) {
         $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     /** @var $model Aenderungsantrag */
     $model = Aenderungsantrag::model()->with("aenderungsantragUnterstuetzerInnen", "aenderungsantragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name"));
     if (is_null($model) || $model->status == IAntrag::$STATUS_GELOESCHT) {
         Yii::app()->user->setFlash("error", "Der angegebene Änderungsantrag wurde nicht gefunden.");
         $this->redirect($this->createUrl("/admin/aenderungsantraege"));
     }
     if ($model->antrag->veranstaltung_id != $this->veranstaltung->id) {
         Yii::app()->user->setFlash("error", "Der angegebene Änderungsantrag gehört nicht zu dieser Veranstaltung.");
         $this->redirect($this->createUrl("/admin/aenderungsantraege"));
     }
     $this->performAjaxValidation($model, 'aenderungsantrag-form');
     $messages = array();
     if (AntiXSS::isTokenSet("antrag_freischalten")) {
         $newvar = AntiXSS::getTokenVal("antrag_freischalten");
         $model->revision_name = $newvar;
         if ($model->status == IAntrag::$STATUS_EINGEREICHT_UNGEPRUEFT) {
             $model->status = IAntrag::$STATUS_EINGEREICHT_GEPRUEFT;
         }
         $model->save();
         Yii::app()->user->setFlash("success", "Der Änderungsantrag wurde freigeschaltet.");
         if ($model->status == Antrag::$STATUS_EINGEREICHT_GEPRUEFT) {
             $benachrichtigt = array();
             foreach ($model->antrag->veranstaltung->veranstaltungsreihe->veranstaltungsreihenAbos as $abo) {
                 if ($abo->aenderungsantraege && !in_array($abo->person_id, $benachrichtigt)) {
                     $abo->person->benachrichtigenAenderungsantrag($model);
                     $benachrichtigt[] = $abo->person_id;
                 }
             }
         }
     }
     if (isset($_POST['Aenderungsantrag'])) {
         if (!in_array($_POST['Aenderungsantrag']['status'], $model->getMoeglicheStati())) {
             throw new Exception("Status-Übergang ungültig");
         }
         $revision_name = $model->revision_name;
         $model->setAttributes($_POST['Aenderungsantrag'], false);
         Yii::import('ext.datetimepicker.EDateTimePicker');
         $model->datum_einreichung = EDateTimePicker::parseInput($_POST["Aenderungsantrag"], "datum_einreichung");
         $model->datum_beschluss = EDateTimePicker::parseInput($_POST["Aenderungsantrag"], "datum_beschluss");
         if ($model->revision_name != $revision_name && $revision_name != "") {
             foreach ($this->veranstaltung->antraege as $ant) {
                 foreach ($ant->aenderungsantraege as $aend) {
                     if ($aend->id != $model->id && $aend->revision_name == $model->revision_name && $aend->status != Aenderungsantrag::$STATUS_GELOESCHT) {
                         // Zurücksetzen + Warnung
                         $messages[] = "Das vergebene Kürzel \"" . $model->revision_name . "\" wird bereits von einem anderen Änderungsantrag verwendet.";
                         $model->revision_name = $revision_name;
                     }
                 }
             }
         }
         if ($model->save()) {
             UnterstuetzerInnenAdminWidget::saveUnterstuetzerInnenWidget($model, $messages, "AenderungsantragUnterstuetzerInnen", "aenderungsantrag_id", $id);
             $model = Aenderungsantrag::model()->with("aenderungsantragUnterstuetzerInnen", "aenderungsantragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name"));
         }
     }
     $this->render('update', array('model' => $model, 'messages' => $messages));
 }
 public function actionUpdate_extended($veranstaltungsreihe_id = "", $veranstaltung_id)
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id);
     $model = $this->veranstaltung;
     if (!$model->isAdminCurUser()) {
         $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     if (is_null($model)) {
         Yii::app()->user->setFlash("error", "Die angegebene Veranstaltungen wurde nicht gefunden.");
         $this->redirect($this->createUrl("admin/veranstaltungen"));
     }
     if (AntiXSS::isTokenSet("del_tag")) {
         foreach ($model->tags as $tag) {
             if ($tag->id == AntiXSS::getTokenVal("del_tag")) {
                 $tag->delete();
                 $model->refresh();
             }
         }
     }
     if (isset($_POST['Veranstaltung'])) {
         $model->setAttributes($_POST['Veranstaltung']);
         $einstellungen = $model->getEinstellungen();
         $einstellungen->saveForm($_REQUEST["VeranstaltungsEinstellungen"]);
         $model->setEinstellungen($einstellungen);
         $relatedData = array();
         if ($model->saveWithRelated($relatedData)) {
             $reihen_einstellungen = $model->veranstaltungsreihe->getEinstellungen();
             $reihen_einstellungen->antrag_neu_nur_namespaced_accounts = isset($_REQUEST["antrag_neu_nur_namespaced_accounts"]);
             $reihen_einstellungen->antrag_neu_nur_wurzelwerk = isset($_REQUEST["antrag_neu_nur_wurzelwerk"]);
             $model->veranstaltungsreihe->setEinstellungen($reihen_einstellungen);
             $model->veranstaltungsreihe->save();
             if (!$model->getEinstellungen()->admins_duerfen_aendern) {
                 foreach ($model->antraege as $ant) {
                     $ant->text_unveraenderlich = 1;
                     $ant->save(false);
                     foreach ($ant->aenderungsantraege as $ae) {
                         $ae->text_unveraenderlich = 1;
                         $ae->save(false);
                     }
                 }
             }
             if (isset($_REQUEST["tag_neu"]) && trim($_REQUEST["tag_neu"]) != "") {
                 $max_id = 0;
                 $duplicate = false;
                 foreach ($model->tags as $tag) {
                     if ($tag->position > $max_id) {
                         $max_id = $tag->position;
                     }
                     if (mb_strtolower($tag->name) == mb_strtolower($_REQUEST["tag_neu"])) {
                         $duplicate = true;
                     }
                 }
                 if (!$duplicate) {
                     Yii::app()->db->createCommand()->insert("tags", array("veranstaltung_id" => $model->id, "name" => $_REQUEST["tag_neu"], "position" => $max_id + 1));
                 }
             }
             if (isset($_REQUEST["TagSort"]) && is_array($_REQUEST["TagSort"])) {
                 foreach ($_REQUEST["TagSort"] as $i => $tagId) {
                     $tag = Tag::model()->findByPk($tagId);
                     if ($tag->veranstaltung_id == $this->veranstaltung->id) {
                         $tag->position = $i;
                         $tag->save();
                     }
                 }
             }
             $model->resetLineCache();
             $this->redirect(array('update_extended'));
         }
     }
     $this->render('update_extended', array('model' => $model));
 }
 public function actionSuche($code = "")
 {
     if (AntiXSS::isTokenSet("search_form")) {
         $krits = new RISSucheKrits();
         if (trim($_REQUEST["volltext"]) != "") {
             $krits->addVolltextsucheKrit($_REQUEST["volltext"]);
         }
         if (trim($_REQUEST["antrag_nr"]) != "") {
             $krits->addAntragNrKrit($_REQUEST["antrag_nr"]);
         }
         if ($_REQUEST["typ"] != "") {
             $krits->addAntragTypKrit($_REQUEST["typ"]);
         }
         if ($_REQUEST["referat"] > 0) {
             $krits->addReferatKrit($_REQUEST["referat"]);
         }
         /*
          * @TODO: Setzt voraus: offizielles Datum eines Dokuments ermitteln
         $datum_von = $datum_bis = null;
         if ($_REQUEST["datum_von"] != "") {
             $x = explode(".", $_REQUEST["datum_von"]);
             if (count($x) == 3) $datum_von = $x[2] . "-" . $x[1] . "-" . $x[0] . " 00:00:00";
         }
         if ($_REQUEST["datum_bis"] != "") {
             $x = explode(".", $_REQUEST["datum_bis"]);
             if (count($x) == 3) $datum_bis = $x[2] . "-" . $x[1] . "-" . $x[0] . " 23:59:59";
         }
         if ($datum_von || $datum_bis) $krits->addDatumKrit($datum_von, $datum_bis);
         */
     } elseif (isset($_REQUEST["suchbegriff"]) && $_REQUEST["suchbegriff"] != "") {
         $suchbegriff = $_REQUEST["suchbegriff"];
         if ($_SERVER["REQUEST_METHOD"] == 'POST') {
             $this->redirect($this->createUrl("index/suche", ["suchbegriff" => $suchbegriff]));
         }
         $this->suche_pre = $suchbegriff;
         $krits = new RISSucheKrits();
         $krits->addVolltextsucheKrit($suchbegriff);
     } else {
         $krits = RISSucheKrits::createFromUrl($_REQUEST);
     }
     $this->load_leaflet_css = true;
     if ($krits->getKritsCount() > 0) {
         $benachrichtigungen_optionen = $this->sucheBenachrichtigungenAnmelden($krits, $code);
         $solr = RISSolrHelper::getSolrClient("ris");
         $select = $solr->createSelect();
         $krits->addKritsToSolr($select);
         $select->setRows(50);
         $select->addSort('sort_datum', $select::SORT_DESC);
         /** @var Solarium\QueryType\Select\Query\Component\Highlighting\Highlighting $hl */
         $hl = $select->getHighlighting();
         $hl->setFields('text, text_ocr, antrag_betreff');
         $hl->setSimplePrefix('<b>');
         $hl->setSimplePostfix('</b>');
         $facetSet = $select->getFacetSet();
         $facetSet->createFacetField('antrag_typ')->setField('antrag_typ');
         $facetSet->createFacetField('antrag_wahlperiode')->setField('antrag_wahlperiode');
         try {
             $ergebnisse = $solr->select($select);
             if ($krits->isGeoKrit()) {
                 $geodata = $this->getJSGeodata($krits, $ergebnisse);
             } else {
                 $geodata = null;
             }
             $this->render("suchergebnisse", array_merge(["krits" => $krits, "ergebnisse" => $ergebnisse, "geodata" => $geodata], $benachrichtigungen_optionen));
         } catch (Exception $e) {
             $this->render('error', ["code" => 500, "message" => "Ein Fehler bei der Suche ist aufgetreten"]);
             Yii::app()->end(500);
         }
     } else {
         $this->render("suche");
     }
 }
 public function actionPasswort()
 {
     $this->layout = '//layouts/column2';
     $this->performLogin($this->createUrl("veranstaltung/passwort"));
     $user = Yii::app()->getUser();
     if ($user->isGuest) {
         $this->redirect($this->createUrl("infos/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     /** @var PErson $ich */
     $ich = Person::model()->findByAttributes(array("auth" => $user->id));
     $msg_ok = $msg_err = "";
     $correct_person = null;
     $aktuelle_einstellungen = null;
     if (AntiXSS::isTokenSet("speichern")) {
         if ($_REQUEST["pw_neu"] != $_REQUEST["pw_neu2"]) {
             $msg_err = "Die beiden Passwörter stimmen nicht überein.";
         } elseif (strlen(trim($_REQUEST["pw_neu"])) < 5) {
             $msg_err = "Das Passwort muss mindestens 5 Zeichen lang sein.";
         } elseif (!$ich->validate_password($_REQUEST["pw_alt"])) {
             $msg_err = "Das bisherige Passwort stimmt nicht.";
         } else {
             $ich->pwd_enc = Person::create_hash($_REQUEST["pw_neu"]);
             $ich->save();
             $msg_ok = "Das neue Passwort wurde gespeichert.";
         }
     }
     $this->render('passwort', array("ich" => $ich, "msg_err" => $msg_err, "msg_ok" => $msg_ok));
 }
 public function actionBuergerInnenversammlungen()
 {
     if (!$this->binContentAdmin()) {
         $this->errorMessageAndDie(403, "");
     }
     $this->top_menu = "admin";
     if (AntiXSS::isTokenSet("delete")) {
         /** @var Termin $termin */
         $termin = Termin::model()->findByPk(AntiXSS::getTokenVal("delete"));
         $termin->delete();
         $this->msg_ok = "Gelöscht.";
     }
     if (AntiXSS::isTokenSet("save")) {
         if (isset($_REQUEST["neu"]) && $_REQUEST["neu"]["datum"] != "" && $_REQUEST["neu"]["ba_nr"] > 0) {
             $result = Yii::app()->db->createCommand("SELECT MIN(id) minid FROM termine")->queryAll();
             $id = $result[0]["minid"];
             if ($id >= 0) {
                 $id = 0;
             }
             $id--;
             $termin = new Termin();
             $termin->id = $id;
             $termin->ba_nr = IntVal($_REQUEST["neu"]["ba_nr"]);
             $termin->typ = Termin::$TYP_BUERGERVERSAMMLUNG;
             $termin->sitzungsort = $_REQUEST["neu"]["ort"];
             $termin->termin = $_REQUEST["neu"]["datum"];
             $termin->datum_letzte_aenderung = new CDbExpression('NOW()');
             if (!$termin->save()) {
                 $this->msg_err = print_r($termin->getErrors(), true);
             }
         }
         if (isset($_REQUEST["termin"])) {
             foreach ($_REQUEST["termin"] as $id => $save) {
                 /** @var Termin $termin */
                 $termin = Termin::model()->findByPk($id);
                 $termin->sitzungsort = $save["ort"];
                 $termin->termin = $save["datum"];
                 $termin->save();
             }
         }
         $this->msg_ok = "Gespeichert";
     }
     $termine = Termin::model()->findAllByAttributes(["typ" => Termin::$TYP_BUERGERVERSAMMLUNG], ["order" => "termin DESC"]);
     $this->render("buergerInnenversammlungen", ["termine" => $termine]);
 }
 /**
  * @param string $id
  * @param string $code
  */
 public function actionNeuesPasswortSetzen($id = "", $code = "")
 {
     $my_url = $this->createUrl("benachrichtigungen/NeuesPasswortSetzen", ["id" => $id, "code" => $code]);
     if (AntiXSS::isTokenSet("reset_password")) {
         /** @var null|BenutzerIn $benutzerIn */
         $benutzerIn = BenutzerIn::model()->findByPk($id);
         if (!$benutzerIn) {
             $this->msg_err = "BenutzerIn nicht gefunden";
             $this->render('reset_password_form', ["current_url" => $this->createUrl("benachrichtigungen/PasswortZuruecksetzen")]);
             return;
         }
         if ($_REQUEST["password"] != $_REQUEST["password2"]) {
             $this->msg_err = "Die beiden Passwörter stimmen nicht überein";
             $this->render('reset_password_set_form', ["current_url" => $my_url]);
             return;
         }
         $ret = $benutzerIn->resetPasswordDo($code, $_REQUEST["password"]);
         if ($ret === true) {
             $this->render('reset_password_done');
         } else {
             $this->msg_err = $ret;
             $this->render('reset_password_set_form', ["current_url" => $my_url]);
         }
     } else {
         $this->render('reset_password_set_form', ["current_url" => $my_url]);
     }
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $veranstaltung_id
  * @param int $adoptInitiators
  */
 public function actionNeu($veranstaltungsreihe_id = "", $veranstaltung_id, $adoptInitiators = 0)
 {
     $this->layout = '//layouts/column2';
     /** @var Veranstaltung $veranstaltung */
     $this->veranstaltung = $veranstaltung = $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id);
     $this->testeWartungsmodus();
     $model = new Antrag();
     $model->status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT;
     $model->typ = isset($_REQUEST["typ"]) ? IntVal($_REQUEST["typ"]) : Antrag::$TYP_ANTRAG;
     $model->veranstaltung_id = $veranstaltung->id;
     $model->veranstaltung = $veranstaltung;
     $model->text_unveraenderlich = $this->veranstaltung->getEinstellungen()->admins_duerfen_aendern ? 0 : 1;
     if (!$veranstaltung->getPolicyAntraege()->checkCurUserHeuristically()) {
         Yii::app()->user->setFlash("error", "Es kann kein Antrag angelegt werden.");
         $this->redirect($this->createUrl("veranstaltung/index"));
     }
     $unterstuetzerInnen = array();
     $tags_pre = array();
     if (AntiXSS::isTokenSet("antragneu")) {
         $model->attributes = $_REQUEST["Antrag"];
         if ($veranstaltung->getEinstellungen()->antrag_begruendungen) {
             if ($this->veranstaltung->getEinstellungen()->begruendung_in_html && isset($_REQUEST["Antrag"]["begruendung_html"])) {
                 $model->begruendung_html = 1;
                 $model->begruendung = HtmlBBcodeUtils::html_normalize($_REQUEST["Antrag"]["begruendung"]);
             } else {
                 $model->begruendung_html = 0;
                 $model->begruendung = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["Antrag"]["begruendung"]);
             }
         }
         $model->text = HtmlBBcodeUtils::bbcode_normalize($model->text);
         $model->datum_einreichung = new CDbExpression('NOW()');
         $model->status = Antrag::$STATUS_UNBESTAETIGT;
         $model->revision_name = "";
         if ($model->text2) {
             $model->text2 = HtmlBBcodeUtils::bbcode_normalize($model->text2);
         }
         $goon = true;
         if (!$this->veranstaltung->getPolicyAntraege()->checkAntragSubmit()) {
             Yii::app()->user->setFlash("error", "Keine Berechtigung zum Anlegen von Anträgen.");
             $goon = false;
         }
         if ($goon) {
             if ($model->save()) {
                 $this->veranstaltung->getPolicyAntraege()->submitAntragsstellerInView_Antrag($model);
                 /* $next_status = $_REQUEST["Antrag"]["status"] */
                 if ($this->veranstaltung->getEinstellungen()->antrag_hat_mehrere_tags) {
                     if (isset($_REQUEST["tags"])) {
                         foreach ($_REQUEST["tags"] as $tag_id) {
                             foreach ($this->veranstaltung->tags as $tag) {
                                 if ($tag->id == $tag_id) {
                                     Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => $tag_id));
                                 }
                             }
                         }
                     }
                 } else {
                     if (isset($_REQUEST["tag"])) {
                         foreach ($this->veranstaltung->tags as $tag) {
                             if ($tag->id == $_REQUEST["tag"]) {
                                 Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => IntVal($_REQUEST["tag"])));
                             }
                         }
                     }
                 }
                 $next_status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT;
                 $this->redirect($this->createUrl("antrag/neuConfirm", array("antrag_id" => $model->id, "next_status" => $next_status, "from_mode" => "neu")));
             } else {
                 foreach ($model->getErrors() as $key => $val) {
                     foreach ($val as $val2) {
                         Yii::app()->user->setFlash("error", "Antrag konnte nicht angelegt werden: {$key}: " . $val2);
                     }
                 }
             }
         }
     }
     $hiddens = array();
     $js_protection = Yii::app()->user->isGuest;
     if ($js_protection) {
         $hiddens["form_token"] = AntiXSS::createToken("antragneu");
     } else {
         $hiddens[AntiXSS::createToken("antragneu")] = "1";
     }
     if (Yii::app()->user->isGuest || $this->veranstaltung->isAdminCurUser()) {
         $antragstellerIn = new Person();
         $antragstellerIn->typ = Person::$TYP_PERSON;
     } else {
         $antragstellerIn = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id));
     }
     if ($adoptInitiators > 0 && $this->veranstaltung->isAdminCurUser()) {
         $templateMotion = $this->veranstaltung->getMotion($adoptInitiators);
         if ($templateMotion) {
             $model->typ = $templateMotion->typ;
             foreach ($templateMotion->antragUnterstuetzerInnen as $unt) {
                 if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_INITIATORIN) {
                     $antragstellerIn = $unt->person;
                 }
                 if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN) {
                     $unterstuetzerInnen[] = $unt->person;
                 }
             }
         }
     }
     $force_type = null;
     if (isset($_REQUEST["typ"])) {
         if (isset(Antrag::$TYPEN[$_REQUEST["typ"]]) && !in_array($_REQUEST["typ"], $this->veranstaltung->getEinstellungen()->antrags_typen_deaktiviert)) {
             $force_type = IntVal($_REQUEST["typ"]);
         }
     }
     $this->render('bearbeiten_form', array("mode" => "neu", "model" => $model, "force_type" => $force_type, "antragstellerIn" => $antragstellerIn, "unterstuetzerInnen" => $unterstuetzerInnen, "veranstaltung" => $veranstaltung, "hiddens" => $hiddens, "tags_pre" => $tags_pre, "js_protection" => $js_protection, "login_warnung" => false, "sprache" => $model->veranstaltung->getSprache()));
 }
 /**
  * @param int $id
  * @throws Exception
  */
 public function actionGlossarBearbeiten($id)
 {
     if (!$this->binContentAdmin()) {
         throw new Exception("Kein Zugriff");
     }
     $this->top_menu = "so_funktioniert";
     /** @var Text $eintrag */
     $eintrag = Text::model()->findByAttributes(["id" => $id, "typ" => Text::$TYP_GLOSSAR]);
     if (!$eintrag) {
         throw new Exception("Nicht gefunden");
     }
     if (AntiXSS::isTokenSet("speichern")) {
         $eintrag->titel = $_REQUEST["titel"];
         $eintrag->text = $_REQUEST["text"];
         $eintrag->edit_datum = new CDbExpression("NOW()");
         $eintrag->edit_benutzerIn_id = $this->aktuelleBenutzerIn()->id;
         $eintrag->save();
         $this->redirect($this->createUrl("infos/glossar"));
     }
     if (AntiXSS::isTokenSet("del")) {
         $eintrag->delete();
         $this->redirect($this->createUrl("infos/glossar"));
     }
     $this->render('glossar_bearbeiten', ["eintrag" => $eintrag]);
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $code
  */
 public function actionBenachrichtigungen($veranstaltungsreihe_id = "", $code = "")
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id);
     $this->testeWartungsmodus();
     $user = Yii::app()->getUser();
     $msg_ok = $msg_err = "";
     $aktuelle_einstellungen = null;
     /** @var Person|null $correct_person */
     $correct_person = null;
     if (AntiXSS::isTokenSet("speichern") && !yii::app()->user->isGuest) {
         /** @var Person $ich */
         $ich = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id));
         $vabo = null;
         foreach ($ich->veranstaltungsreihenAbos as $abo) {
             if ($abo->veranstaltungsreihe_id == $this->veranstaltungsreihe->id) {
                 $vabo = $abo;
             }
         }
         if (!$vabo) {
             $vabo = new VeranstaltungsreihenAbo();
             $vabo->veranstaltungsreihe_id = $this->veranstaltungsreihe->id;
             $vabo->person_id = $ich->id;
         }
         $vabo->antraege = isset($_REQUEST["Reihe"][$this->veranstaltung->veranstaltungsreihe_id]["antraege"]);
         $vabo->aenderungsantraege = isset($_REQUEST["Reihe"][$this->veranstaltung->veranstaltungsreihe_id]["aenderungsantraege"]);
         $vabo->kommentare = isset($_REQUEST["Reihe"][$this->veranstaltung->veranstaltungsreihe_id]["kommentare"]);
         $vabo->save();
         $msg_ok = "Die Einstellungen wurden gespeichert.";
     }
     if ($code != "") {
         $x = explode("-", $code);
         /** @var Person $person */
         $person = Person::model()->findByPk($x[0]);
         if (!$person) {
             $msg_err = "Diese Seite existiert nicht. Vielleicht wurde der Bestätigungslink falsch kopiert?";
         } elseif ($person->email_bestaetigt) {
             $msg_err = "Dieser Account wurde bereits bestätigt.";
         } elseif (!$person->checkEmailBestaetigungsCode($code)) {
             $msg_err = "Diese Seite existiert nicht. Vielleicht wurde der Bestätigungslink falsch kopiert? (Beachte, dass der Link in der E-Mail nur 2-3 Tage lang gültig ist.";
         } else {
             $person->email_bestaetigt = 1;
             $person->save();
             $msg_ok = "Der Zugang wurde bestätigt. Ab jetzt erhältst du Benachrichtigungen per E-Mail, wenn du das so eingestellt hast.";
             $identity = new AntragUserIdentityPasswd($person->email, $person->auth);
             Yii::app()->user->login($identity);
         }
     } elseif (AntiXSS::isTokenSet("anmelden")) {
         list($correct_person, $msg_ok, $msg_err) = $this->loginOderRegistrieren_backend($_REQUEST["email"], isset($_REQUEST["password"]) ? $_REQUEST["password"] : null, isset($_REQUEST["bestaetigungscode"]) ? $_REQUEST["bestaetigungscode"] : null);
     }
     if ($correct_person) {
         $bisherig = VeranstaltungsreihenAbo::model()->findByAttributes(array("veranstaltungsreihe_id" => $this->veranstaltungsreihe->id, "person_id" => $correct_person->id));
         if (!$bisherig) {
             $bisherig = new VeranstaltungsreihenAbo();
             $bisherig->person_id = $correct_person->id;
             $bisherig->veranstaltungsreihe_id = $this->veranstaltungsreihe->id;
         }
         $bisherig->antraege = isset($_REQUEST["Reihe"][$this->veranstaltung->id]["antraege"]);
         $bisherig->aenderungsantraege = isset($_REQUEST["Reihe"][$this->veranstaltung->id]["aenderungsantraege"]);
         $bisherig->kommentare = isset($_REQUEST["Reihe"][$this->veranstaltung->id]["kommentare"]);
         $bisherig->save();
         $msg_ok = "Die Einstellungen wurden gespeichert.";
     }
     if ($user->isGuest) {
         $ich = null;
         $eingeloggt = false;
         $email_angegeben = false;
         $email_bestaetigt = false;
     } else {
         $eingeloggt = true;
         /** @var Person $ich */
         $ich = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id));
         if ($ich->email == "") {
             $email_angegeben = false;
             $email_bestaetigt = false;
         } elseif ($ich->email_bestaetigt) {
             $email_angegeben = true;
             $email_bestaetigt = true;
         } else {
             $email_angegeben = true;
             $email_bestaetigt = false;
         }
         foreach ($ich->veranstaltungsreihenAbos as $abo) {
             if ($abo->veranstaltungsreihe_id = $this->veranstaltungsreihe->id) {
                 $aktuelle_einstellungen = $abo;
             }
         }
     }
     $this->render('benachrichtigungen', array("eingeloggt" => $eingeloggt, "email_angegeben" => $email_angegeben, "email_bestaetigt" => $email_bestaetigt, "aktuelle_einstellungen" => $aktuelle_einstellungen, "ich" => $ich, "msg_err" => $msg_err, "msg_ok" => $msg_ok));
 }
 /**
  * @param string $veranstaltungsreihe_id
  * @param string $veranstaltung_id
  * @param int $antrag_id
  * @param int $adoptInitiators
  */
 public function actionNeu($veranstaltungsreihe_id = "", $veranstaltung_id, $antrag_id, $adoptInitiators = 0)
 {
     $this->layout = '//layouts/column2';
     $this->testeWartungsmodus();
     $antrag_id = IntVal($antrag_id);
     /** @var Antrag $antrag */
     $antrag = Antrag::model()->findByPk($antrag_id);
     $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id, $antrag);
     if (!$antrag->veranstaltung->getPolicyAenderungsantraege()->checkCurUserHeuristically()) {
         $msg = $antrag->veranstaltung->getPolicyAenderungsantraege()->getPermissionDeniedMsg();
         Yii::app()->user->setFlash("error", "Es kann kein Änderungsantrag werden: " . $msg);
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     $aenderungsantrag = new Aenderungsantrag();
     $aenderungsantrag->aenderung_first_line_cache = -1;
     $aenderungsantrag->antrag = $antrag;
     $aenderungsantrag->antrag_id = $antrag->id;
     $aenderungsantrag->status = Aenderungsantrag::$STATUS_UNBESTAETIGT;
     $aenderungsantrag->status_string = "";
     $unterstuetzerInnen = array();
     $changed = false;
     if (AntiXSS::isTokenSet("antragneu")) {
         $aenderungsantrag->name_neu = $_REQUEST["Aenderungsantrag"]["name_neu"];
         $aenderungsantrag->begruendung_neu = "";
         $aenderungsantrag->aenderung_metatext = HtmlBBcodeUtils::html_normalize($_REQUEST["ae_metatext"]);
         if ($aenderungsantrag->antrag->veranstaltung->getEinstellungen()->begruendung_in_html && isset($_REQUEST["ae_begruendung_html"])) {
             $aenderungsantrag->aenderung_begruendung_html = 1;
             $aenderungsantrag->aenderung_begruendung = HtmlBBcodeUtils::html_normalize($_REQUEST["ae_begruendung"]);
         } else {
             $aenderungsantrag->aenderung_begruendung_html = 0;
             $aenderungsantrag->aenderung_begruendung = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["ae_begruendung"]);
         }
         if ($aenderungsantrag->name_neu != $antrag->name) {
             $changed = true;
         }
         if (trim($aenderungsantrag->aenderung_metatext) != "") {
             $changed = true;
         }
         $orig_absaetze = $antrag->getParagraphs();
         $neue_absaetze = array();
         $neuer_text = "";
         for ($i = 0; $i < count($orig_absaetze); $i++) {
             /** @var AntragAbsatz $abs */
             $abs = $orig_absaetze[$i];
             if (isset($_REQUEST["change_text"][$i])) {
                 $abs_text = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["neu_text"][$i]);
                 $neue_absaetze[$i] = $abs_text;
                 $neuer_text .= $abs_text . "\n\n";
                 $changed = true;
             } else {
                 $neue_absaetze[$i] = "";
                 $neuer_text .= $abs->str_bbcode . "\n\n";
             }
         }
         if ($changed) {
             $aenderungsantrag->setDiffParagraphs($neue_absaetze);
             $diff = DiffUtils::getTextDiffMitZeilennummern($antrag->text, $neuer_text, $antrag->veranstaltung->getEinstellungen()->zeilenlaenge);
             $diff_text = "";
             if ($aenderungsantrag->name_neu != $antrag->name) {
                 $diff_text .= "Neuer Titel des Antrags:\n[QUOTE]" . $aenderungsantrag->name_neu . "[/QUOTE]\n\n";
             }
             if (trim($aenderungsantrag->aenderung_metatext) != "") {
                 $diff_text = $aenderungsantrag->aenderung_metatext . "\n\n";
             }
             $diff_text .= DiffUtils::diff2text($diff, $antrag->getFirstLineNo());
             $aenderungsantrag->aenderung_text = $diff_text;
             $aenderungsantrag->datum_einreichung = new CDbExpression('NOW()');
         } else {
             Yii::app()->user->setFlash("error", "Es wurde nichts am Text geändert.");
         }
         if (!$this->veranstaltung->getPolicyAenderungsantraege()->checkAenderungsantragSubmit()) {
             Yii::app()->user->setFlash("error", "Keine Berechtigung zum Anlegen von Änderungsanträgen.");
             $changed = false;
         }
     }
     $hiddens = array("antrag_id" => $antrag->id);
     $js_protection = Yii::app()->user->isGuest;
     if ($js_protection) {
         $hiddens["form_token"] = AntiXSS::createToken("antragneu");
     } else {
         $hiddens[AntiXSS::createToken("antragneu")] = "1";
     }
     if ($changed) {
         if (!$aenderungsantrag->save()) {
             foreach ($aenderungsantrag->getErrors() as $val) {
                 foreach ($val as $val2) {
                     Yii::app()->user->setFlash("error", "Änderungsantrag konnte nicht angelegt werden: " . $val2);
                 }
             }
             $antragstellerIn = Yii::app()->user->isGuest ? null : Person::model()->findByAttributes(array("auth" => Yii::app()->user->id));
             if ($antragstellerIn === null) {
                 $antragstellerIn = new Person();
             }
             $this->render('bearbeiten_form', array("mode" => "neu", "antrag" => $antrag, "aenderungsantrag" => $aenderungsantrag, "antragstellerIn" => $antragstellerIn, "unterstuetzerInnen" => $unterstuetzerInnen, "hiddens" => $hiddens, "js_protection" => $js_protection, "sprache" => $aenderungsantrag->antrag->veranstaltung->getSprache()));
             return;
         }
         $this->veranstaltung->getPolicyAenderungsantraege()->submitAntragsstellerInView_Aenderungsantrag($aenderungsantrag);
         $this->redirect($this->createUrl("aenderungsantrag/neuConfirm", array("antrag_id" => $antrag_id, "aenderungsantrag_id" => $aenderungsantrag->id)));
     } else {
         if (Yii::app()->user->isGuest || $this->veranstaltung->isAdminCurUser()) {
             $antragstellerIn = new Person();
             $antragstellerIn->typ = Person::$TYP_PERSON;
         } else {
             $antragstellerIn = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id));
         }
         if ($adoptInitiators > 0 && $this->veranstaltung->isAdminCurUser()) {
             $templateAmendment = $this->veranstaltung->getAmendment($adoptInitiators);
             if ($templateAmendment) {
                 foreach ($templateAmendment->aenderungsantragUnterstuetzerInnen as $unt) {
                     if ($unt->rolle == AenderungsantragUnterstuetzerInnen::$ROLLE_INITIATORIN) {
                         $antragstellerIn = $unt->person;
                     }
                     if ($unt->rolle == AenderungsantragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN) {
                         $unterstuetzerInnen[] = $unt->person;
                     }
                 }
             }
         }
         $aenderungsantrag->name_neu = $antrag->name;
         $this->render('bearbeiten_form', array("mode" => "neu", "antrag" => $antrag, "aenderungsantrag" => $aenderungsantrag, "antragstellerIn" => $antragstellerIn, "unterstuetzerInnen" => $unterstuetzerInnen, "hiddens" => $hiddens, "js_protection" => $js_protection, "sprache" => $aenderungsantrag->antrag->veranstaltung->getSprache()));
     }
 }
 protected function performLoginActions($code = "")
 {
     /** @var CWebUser $user */
     $user = Yii::app()->getUser();
     $this->msg_err = "";
     $this->msg_ok = "";
     if ($code != "") {
         $x = explode("-", $code);
         /** @var BenutzerIn $benutzerIn */
         $benutzerIn = BenutzerIn::model()->findByPk($x[0]);
         if (!$benutzerIn) {
             $this->msg_err = "Diese Seite existiert nicht. Vielleicht wurde der Bestätigungslink falsch kopiert?";
         } elseif ($benutzerIn->email_bestaetigt) {
             $this->msg_err = "Dieser Zugang wurde bereits bestätigt.";
         } elseif (!$benutzerIn->emailBestaetigen($code)) {
             $this->msg_err = "Diese Seite existiert nicht. Vielleicht wurde der Bestätigungslink falsch kopiert? (Beachte, dass der Link in der E-Mail nur 2-3 Tage lang gültig ist.";
         } else {
             $this->msg_ok = "Der Zugang wurde bestätigt. Ab jetzt erhältst du Benachrichtigungen per E-Mail, wenn du das so eingestellt hast.";
             $identity = new RISUserIdentity($benutzerIn);
             Yii::app()->user->login($identity);
         }
     }
     if (AntiXSS::isTokenSet("abmelden") && !$user->isGuest) {
         $user->logout();
     }
     if (AntiXSS::isTokenSet("login_anlegen") && $user->isGuest && !isset($_REQUEST["register"])) {
         /** @var BenutzerIn $benutzerIn */
         $benutzerIn = BenutzerIn::model()->findByAttributes(["email" => $_REQUEST["email"]]);
         if ($benutzerIn) {
             if ($benutzerIn->validate_password($_REQUEST["password"])) {
                 $identity = new RISUserIdentity($benutzerIn);
                 Yii::app()->user->login($identity);
             } else {
                 $this->msg_err = "Das angegebene Passwort ist falsch.";
             }
         } else {
             $this->msg_err = "Für die angegebene E-Mail-Adresse existiert noch kein Zugang.";
         }
     }
     if (AntiXSS::isTokenSet("login_anlegen") && $user->isGuest && isset($_REQUEST["register"])) {
         /** @var BenutzerIn[] $gefundene_benutzerInnen */
         $gefundene_benutzerInnen = BenutzerIn::model()->findAll(["condition" => "email='" . addslashes($_REQUEST["email"]) . "'"]);
         if (count($gefundene_benutzerInnen) > 0) {
             $this->msg_err = "Es existiert bereits ein Zugang für diese E-Mail-Adresse";
         } elseif (trim($_REQUEST["password"]) == "") {
             $this->msg_err = "Bitte gib ein Passwort an";
         } elseif ($_REQUEST["password"] != $_REQUEST["password2"]) {
             $this->msg_err = "Die beiden angegebenen Passwörter stimmen nicht überein.";
         } else {
             $benutzerIn = BenutzerIn::createBenutzerIn(trim($_REQUEST["email"]), $_REQUEST["password"]);
             if ($benutzerIn->save()) {
                 $benutzerIn->sendEmailBestaetigungsMail();
                 $identity = new RISUserIdentity($benutzerIn);
                 Yii::app()->user->login($identity);
                 $this->msg_ok = "Der Zugang wurde angelegt. Es wurde eine Bestätigungs-Mail an die angegebene Adresse geschickt. Bitte klicke auf den Link in dieser Mail an, um E-Mail-Benachrichtigungen zu erhalten.";
             } else {
                 $this->msg_err = "Leider ist ein (ungewöhnlicher) Fehler aufgetreten.";
                 $errs = $benutzerIn->getErrors();
                 foreach ($errs as $err) {
                     foreach ($err as $e) {
                         $this->msg_err .= $e;
                     }
                 }
             }
         }
     }
 }
 /**
  */
 private function actionAntragslisteAmendments()
 {
     if (AntiXSS::isTokenSet('amendment_screen')) {
         $amendment = $this->veranstaltung->getAmendment(AntiXSS::getTokenVal('amendment_screen'));
         if (!$amendment) {
             return;
         }
         $amendment->adminFreischalten();
         Yii::app()->user->setFlash("success", "Der ausgewählte Änderungsantrag wurden freigeschaltet.");
     }
     if (AntiXSS::isTokenSet('amendment_withdraw')) {
         $amendment = $this->veranstaltung->getAmendment(AntiXSS::getTokenVal('amendment_withdraw'));
         if (!$amendment) {
             return;
         }
         $amendment->status = Aenderungsantrag::$STATUS_EINGEREICHT_UNGEPRUEFT;
         $amendment->save();
         Yii::app()->user->setFlash("success", "Der ausgewählte Änderungsantrag wurden zurückgezogen.");
     }
     if (AntiXSS::isTokenSet('amendment_delete')) {
         $amendment = $this->veranstaltung->getAmendment(AntiXSS::getTokenVal('amendment_delete'));
         if (!$amendment) {
             return;
         }
         $amendment->status = Aenderungsantrag::$STATUS_GELOESCHT;
         $amendment->save();
         Yii::app()->user->setFlash("success", "Der ausgewählte Änderungsantrag wurden gelöscht.");
     }
     if (!isset($_POST['amendments']) || !AntiXSS::isTokenSet('save')) {
         return;
     }
     if (isset($_POST['screen'])) {
         foreach ($_POST['amendments'] as $amendmentId) {
             $amendment = $this->veranstaltung->getAmendment($amendmentId);
             if (!$amendment) {
                 continue;
             }
             $amendment->adminFreischalten();
         }
         Yii::app()->user->setFlash("success", "Die ausgewählten Anträge wurden freigeschaltet.");
     }
     if (isset($_POST['withdraw'])) {
         foreach ($_POST['amendments'] as $amendmentId) {
             $amendment = $this->veranstaltung->getAmendment($amendmentId);
             if (!$amendment) {
                 continue;
             }
             $amendment->status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT;
             $amendment->save();
         }
         Yii::app()->user->setFlash("success", "Die ausgewählten Anträge wurden zurückgezogen.");
     }
     if (isset($_POST['delete'])) {
         foreach ($_POST['amendments'] as $amendmentId) {
             $amendment = $this->veranstaltung->getAmendment($amendmentId);
             if (!$amendment) {
                 continue;
             }
             $amendment->status = Antrag::$STATUS_GELOESCHT;
             $amendment->save();
         }
         Yii::app()->user->setFlash("success", "Die ausgewählten Anträge wurden gelöscht.");
     }
 }