/** * @param Aenderungsantrag $aenderungsantrag * @param int $kommentar_id */ private function performAnzeigeActions($aenderungsantrag, $kommentar_id) { if (AntiXSS::isTokenSet("komm_del")) { /** @var AenderungsantragKommentar $komm */ $komm = AenderungsantragKommentar::model()->findByPk(AntiXSS::getTokenVal("komm_del")); if ($komm->aenderungsantrag_id == $aenderungsantrag->id && $komm->kannLoeschen(Yii::app()->user) && $komm->status == IKommentar::$STATUS_FREI) { $komm->status = IKommentar::$STATUS_GELOESCHT; $komm->save(); Yii::app()->user->setFlash("success", "Der Kommentar wurde gelöscht."); $benachrichtigt = array(); foreach ($aenderungsantrag->antrag->veranstaltung->veranstaltungsreihe->veranstaltungsreihenAbos as $abo) { if ($abo->kommentare && !in_array($abo->person_id, $benachrichtigt)) { $abo->person->benachrichtigenKommentar($komm); $benachrichtigt[] = $abo->person_id; } } } else { Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung."); } } if (AntiXSS::isTokenSet("komm_freischalten") && $kommentar_id > 0) { /** @var AenderungsantragKommentar $komm */ $komm = AenderungsantragKommentar::model()->findByPk($kommentar_id); if ($komm->aenderungsantrag_id == $aenderungsantrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $aenderungsantrag->antrag->veranstaltung->isAdminCurUser()) { $komm->status = IKommentar::$STATUS_FREI; $komm->save(); Yii::app()->user->setFlash("success", "Der Kommentar wurde freigeschaltet."); } else { Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung."); } } if (AntiXSS::isTokenSet("komm_nicht_freischalten") && $kommentar_id > 0) { /** @var AenderungsantragKommentar $komm */ $komm = AenderungsantragKommentar::model()->findByPk($kommentar_id); if ($komm->aenderungsantrag_id == $aenderungsantrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $aenderungsantrag->antrag->veranstaltung->isAdminCurUser()) { $komm->status = IKommentar::$STATUS_GELOESCHT; $komm->save(); Yii::app()->user->setFlash("success", "Der Kommentar wurde gelöscht."); } else { Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung."); } } if (AntiXSS::isTokenSet("mag") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAenderungsantragSubmit()) { $userid = Yii::app()->user->getState("person_id"); foreach ($aenderungsantrag->aenderungsantragUnterstuetzerInnen as $unt) { if ($unt->unterstuetzerIn_id == $userid) { $unt->delete(); } } $unt = new AenderungsantragUnterstuetzerInnen(); $unt->aenderungsantrag_id = $aenderungsantrag->id; $unt->unterstuetzerIn_id = $userid; $unt->rolle = "mag"; $unt->kommentar = ""; if ($unt->save()) { Yii::app()->user->setFlash("success", "Du unterstützt diesen Änderungsantrag nun."); } else { Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten."); } $this->redirect($this->createUrl("aenderungsantrag/anzeige", array("antrag_id" => $aenderungsantrag->antrag_id, "aenderungsantrag_id" => $aenderungsantrag->id))); } if (AntiXSS::isTokenSet("magnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAenderungsantragSubmit()) { $userid = Yii::app()->user->getState("person_id"); foreach ($aenderungsantrag->aenderungsantragUnterstuetzerInnen as $unt) { if ($unt->unterstuetzerIn_id == $userid) { $unt->delete(); } } $unt = new AenderungsantragUnterstuetzerInnen(); $unt->aenderungsantrag_id = $aenderungsantrag->id; $unt->unterstuetzerIn_id = $userid; $unt->rolle = "magnicht"; $unt->kommentar = ""; $unt->save(); if ($unt->save()) { Yii::app()->user->setFlash("success", "Du lehnst diesen Änderungsantrag nun ab."); } else { Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten."); } $this->redirect($this->createUrl("aenderungsantrag/anzeige", array("antrag_id" => $aenderungsantrag->antrag_id, "aenderungsantrag_id" => $aenderungsantrag->id))); } if (AntiXSS::isTokenSet("dochnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAenderungsantragSubmit()) { $userid = Yii::app()->user->getState("person_id"); foreach ($aenderungsantrag->aenderungsantragUnterstuetzerInnen as $unt) { if ($unt->unterstuetzerIn_id == $userid) { $unt->delete(); } } Yii::app()->user->setFlash("success", "Du stehst diesem Änderungsantrag wieder neutral gegenüber."); $this->redirect($this->createUrl("aenderungsantrag/anzeige", array("antrag_id" => $aenderungsantrag->antrag_id, "aenderungsantrag_id" => $aenderungsantrag->id))); } }
/** * @param Antrag $antrag * @param int $anz_absaetze_neu * @param array $absatz_mapping * @return Aenderungsantrag */ public function aufrechterhaltenBeiNeuemAntrag($antrag, $anz_absaetze_neu, $absatz_mapping) { $neuer_ae = new Aenderungsantrag(); $neuer_ae->antrag_id = $antrag->id; $neuer_ae->revision_name = $this->revision_name; $neuer_ae->name_neu = $this->name_neu; $neuer_ae->begruendung_neu = $this->begruendung_neu; $neuer_ae->aenderung_begruendung = $this->aenderung_begruendung; $neuer_ae->datum_einreichung = $this->datum_einreichung; $neuer_ae->aenderung_first_line_cache = -1; $neuer_ae->status_string = ""; $neuer_ae->status = IAntrag::$STATUS_EINGEREICHT_GEPRUEFT; $text_neu = array(); for ($i = 0; $i < $anz_absaetze_neu; $i++) { $text_neu[$i] = ""; } $old_abs = json_decode($this->text_neu); foreach ($old_abs as $abs => $str) { $text_neu[$absatz_mapping[$abs]] = $str; } $neuer_ae->setDiffParagraphs($text_neu); $neuer_ae->calcDiffText(); if (!$neuer_ae->save()) { var_dump($neuer_ae->attributes); } foreach ($this->aenderungsantragUnterstuetzerInnen as $init) { if ($init->rolle == IUnterstuetzerInnen::$ROLLE_INITIATORIN) { $in = new AenderungsantragUnterstuetzerInnen(); $in->rolle = IUnterstuetzerInnen::$ROLLE_INITIATORIN; $in->position = $init->position; $in->aenderungsantrag_id = $neuer_ae->id; $in->unterstuetzerIn_id = $init->unterstuetzerIn_id; $in->kommentar = ""; $in->save(); } } }
/** * @param Aenderungsantrag $aenderungsantrag * @throws Exception */ public function submitAntragsstellerInView_Aenderungsantrag(&$aenderungsantrag) { $antragstellerIn = $this->getSubmitPerson($aenderungsantrag->antrag->veranstaltung->isAdminCurUser()); if ($antragstellerIn === null) { throw new Exception("Keine AntragstellerIn gefunden"); } $init = new AenderungsantragUnterstuetzerInnen(); $init->aenderungsantrag_id = $aenderungsantrag->id; $init->rolle = AenderungsantragUnterstuetzerInnen::$ROLLE_INITIATORIN; $init->unterstuetzerIn_id = $antragstellerIn->id; $init->position = 0; if (isset($_REQUEST["Organisation_Beschlussdatum"]) && $_REQUEST["Organisation_Beschlussdatum"] != "") { if (preg_match("/^(?<tag>[0-9]{2})\\. *(?<monat>[0-9]{2})\\. *(?<jahr>[0-9]{4})\$/", $_REQUEST["Organisation_Beschlussdatum"], $matches)) { $init->beschlussdatum = $matches["jahr"] . "-" . $matches["monat"] . "-" . $matches["tag"]; } } $init->save(); if (isset($_REQUEST["UnterstuetzerInnen_fulltext"]) && trim($_REQUEST["UnterstuetzerInnen_fulltext"]) != "") { $person = new Person(); $person->name = trim($_REQUEST["UnterstuetzerInnen_fulltext"]); $person->typ = Person::$TYP_PERSON; $person->status = Person::$STATUS_UNCONFIRMED; $person->angelegt_datum = new CDbExpression('NOW()'); $person->organisation = ""; if ($person->save()) { $unt = new AenderungsantragUnterstuetzerInnen(); $unt->aenderungsantrag_id = $aenderungsantrag->id; $unt->unterstuetzerIn_id = $person->id; $unt->rolle = AenderungsantragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN; $unt->position = 0; $unt->save(); } } elseif (isset($_REQUEST["UnterstuetzerInnen_name"]) && is_array($_REQUEST["UnterstuetzerInnen_name"])) { foreach ($_REQUEST["UnterstuetzerInnen_name"] as $i => $name) { $name = trim($name); if (!$this->isValidName($name)) { continue; } $person = new Person(); $person->name = $name; $person->typ = Person::$TYP_PERSON; $person->status = Person::$STATUS_UNCONFIRMED; $person->angelegt_datum = new CDbExpression('NOW()'); if (isset($_REQUEST["UnterstuetzerInnen_orga"]) && isset($_REQUEST["UnterstuetzerInnen_orga"][$i])) { $person->organisation = $_REQUEST["UnterstuetzerInnen_orga"][$i]; } if ($person->save()) { $unt = new AenderungsantragUnterstuetzerInnen(); $unt->aenderungsantrag_id = $aenderungsantrag->id; $unt->unterstuetzerIn_id = $person->id; $unt->rolle = AenderungsantragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN; $unt->position = $i; $unt->save(); } } } }