/**
  * @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 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 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]);
 }
 public function actionIndex($code = "")
 {
     $this->top_menu = "benachrichtigungen";
     $this->requireLogin($this->createUrl("index/benachrichtigungen"), $code);
     /** @var BenutzerIn $ich */
     $ich = $this->aktuelleBenutzerIn();
     $this->load_leaflet_css = true;
     $this->load_leaflet_draw_css = true;
     if (AntiXSS::isTokenSet("einstellungen_speichern")) {
         $einstellungen = $ich->getEinstellungen();
         if (isset($_REQUEST["intervall"]) && $_REQUEST["intervall"] == "tag") {
             $einstellungen->benachrichtigungstag = null;
         }
         if (isset($_REQUEST["intervall"]) && $_REQUEST["intervall"] == "woche") {
             if (isset($_REQUEST["wochentag"])) {
                 $einstellungen->benachrichtigungstag = IntVal($_REQUEST["wochentag"]);
             }
         }
         $ich->setEinstellungen($einstellungen);
         $ich->save();
         $this->msg_ok = "Die Einstellung wurde gespeichert.";
     }
     if (AntiXSS::isTokenSet("del_ben")) {
         foreach ($_REQUEST[AntiXSS::createToken("del_ben")] as $ben => $_val) {
             $bena = json_decode(rawurldecode($ben), true);
             $krit = new RISSucheKrits($bena);
             $ich->delBenachrichtigung($krit);
             $this->msg_ok = "Die Benachrichtigung wurde entfernt.";
         }
     }
     if (AntiXSS::isTokenSet("ben_add_text")) {
         $suchbegriff = trim($_REQUEST["suchbegriff"]);
         if ($suchbegriff == "") {
             $this->msg_err = "Bitte gib einen Suchausdruck an.";
         } else {
             $ben = new RISSucheKrits();
             $ben->addVolltextsucheKrit($suchbegriff);
             $ich->addBenachrichtigung($ben);
             $this->msg_ok = "Die Benachrichtigung wurde hinzugefügt.";
         }
     }
     if (AntiXSS::isTokenSet("ben_add_ba")) {
         $ben = new RISSucheKrits();
         $ben->addBAKrit($_REQUEST["ba"]);
         $ich->addBenachrichtigung($ben);
         $this->msg_ok = "Die Benachrichtigung wurde hinzugefügt.";
     }
     if (AntiXSS::isTokenSet("ben_add_geo")) {
         if ($_REQUEST["geo_lng"] == 0 || $_REQUEST["geo_lat"] == 0 || $_REQUEST["geo_radius"] <= 0) {
             $this->msg_err = "Ungültige Eingabe.";
         } else {
             $ben = new RISSucheKrits();
             $ben->addGeoKrit($_REQUEST["geo_lng"], $_REQUEST["geo_lat"], $_REQUEST["geo_radius"]);
             $ich->addBenachrichtigung($ben);
             $this->msg_ok = "Die Benachrichtigung wurde hinzugefügt.";
         }
     }
     if (AntiXSS::isTokenSet("del_vorgang_abo")) {
         foreach (AntiXSS::getTokenVal("del_vorgang_abo") as $vorgang_id => $_tmp) {
             /** @var Vorgang $vorgang */
             $vorgang = Vorgang::model()->findByPk($vorgang_id);
             $vorgang->deabonnieren($ich);
             $this->msg_ok = "Der Vorgang wurde entfernt.";
         }
     }
     if (AntiXSS::isTokenSet("account_loeschen")) {
         $this->top_menu = "Accountlöschung";
         $this->requireLogin($this->createUrl("index/benachrichtigungen"));
         $ich = $this->aktuelleBenutzerIn();
         $id = $ich->id;
         if ($ich != NULL) {
             $ich->email = NULL;
             $ich->email_bestaetigt = 0;
             $ich->pwd_enc = NULL;
             $ich->datum_angelegt = NULL;
             $ich->datum_letzte_benachrichtigung = NULL;
             $ich->berechtigungen_flags = 0;
             $ich->einstellungen_object = NULL;
             $ich->einstellungen = NULL;
             $ich->save(false);
             Yii::app()->db->createCommand("DELETE FROM `benutzerInnen_vorgaenge_abos` WHERE `benutzerInnen_id` = :BenutzerInId")->bindValues([':BenutzerInId' => $ich->id])->execute();
             $this->msg_ok = "Account gelöscht";
             /** @var CWebUser $user */
             $user = Yii::app()->getUser();
             if ($user) {
                 $user->logout();
             }
         } else {
             $this->msg_err = "Sie sind nicht angemeldet";
         }
         $this->redirect(Yii::app()->createUrl("index/startseite"));
         Yii::app()->end();
     }
     if (AntiXSS::isTokenSet("passwort_aendern")) {
         /** @var null|BenutzerIn $ich  */
         $ich = $this->aktuelleBenutzerIn();
         if ($ich) {
             if ($_REQUEST["password"] == $_REQUEST["password2"]) {
                 $ich->pwd_enc = BenutzerIn::create_hash($_REQUEST["password"]);
                 $ich->save();
                 $this->msg_ok = "Passwort geändert";
             } else {
                 $this->msg_err = "Die beiden Passwörter stimmen nicht überein";
             }
         } else {
             $this->render('/index/error', ["code" => 403, "message" => "Sie sind nicht angemeldet."]);
         }
     }
     $this->render("index", ["ich" => $ich]);
 }
Example #6
0
 /**
  * @param Antrag $antrag
  * @param int $kommentar_id
  */
 private function performAnzeigeActions($antrag, $kommentar_id)
 {
     if (AntiXSS::isTokenSet("komm_del")) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk(AntiXSS::getTokenVal("komm_del"));
         if ($komm->antrag_id == $antrag->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.");
         } else {
             Yii::app()->user->setFlash("error", "Kommentar nicht gefunden oder keine Berechtigung.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("komm_freischalten") && $kommentar_id > 0) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk($kommentar_id);
         if ($komm->antrag_id == $antrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $antrag->veranstaltung->isAdminCurUser()) {
             $komm->status = IKommentar::$STATUS_FREI;
             $komm->save();
             Yii::app()->user->setFlash("success", "Der Kommentar wurde freigeschaltet.");
             $benachrichtigt = array();
             foreach ($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_nicht_freischalten") && $kommentar_id > 0) {
         /** @var AntragKommentar $komm */
         $komm = AntragKommentar::model()->findByPk($kommentar_id);
         if ($komm->antrag_id == $antrag->id && $komm->status == IKommentar::$STATUS_NICHT_FREI && $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.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("komm_dafuer") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung === null) {
             $unterstuetzung = new AntragKommentarUnterstuetzerInnen();
             $unterstuetzung->setIdentityParams();
             $unterstuetzung->dafuer = 1;
             $unterstuetzung->antrag_kommentar_id = $kommentar_id;
             if ($unterstuetzung->save()) {
                 Yii::app()->user->setFlash("success", "Du hast den Kommentar positiv bewertet.");
             } else {
                 Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
             }
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("komm_dagegen") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung === null) {
             $unterstuetzung = new AntragKommentarUnterstuetzerInnen();
             $unterstuetzung->setIdentityParams();
             $unterstuetzung->dafuer = 0;
             $unterstuetzung->antrag_kommentar_id = $kommentar_id;
             if ($unterstuetzung->save()) {
                 Yii::app()->user->setFlash("success", "Du hast den Kommentar negativ bewertet.");
             } else {
                 Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
             }
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("komm_dochnicht") && $this->veranstaltung->getEinstellungen()->kommentare_unterstuetzbar) {
         $meine_unterstuetzung = AntragKommentarUnterstuetzerInnen::meineUnterstuetzung($kommentar_id);
         if ($meine_unterstuetzung !== null) {
             $meine_unterstuetzung->delete();
             Yii::app()->user->setFlash("success", "Du hast die Bewertung des Kommentars zurückgenommen.");
             $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id, "kommentar_id" => $kommentar_id, "#" => "komm" . $kommentar_id)));
         }
     }
     if (AntiXSS::isTokenSet("mag") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         $unt = new AntragUnterstuetzerInnen();
         $unt->antrag_id = $antrag->id;
         $unt->unterstuetzerIn_id = $userid;
         $unt->rolle = "mag";
         $unt->kommentar = "";
         if ($unt->save()) {
             Yii::app()->user->setFlash("success", "Du unterstützt diesen Antrag nun.");
         } else {
             Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("magnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         $unt = new AntragUnterstuetzerInnen();
         $unt->antrag_id = $antrag->id;
         $unt->unterstuetzerIn_id = $userid;
         $unt->rolle = "magnicht";
         $unt->kommentar = "";
         $unt->save();
         if ($unt->save()) {
             Yii::app()->user->setFlash("success", "Du lehnst diesen Antrag nun ab.");
         } else {
             Yii::app()->user->setFlash("error", "Ein (seltsamer) Fehler ist aufgetreten.");
         }
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("dochnicht") && $this->veranstaltung->getPolicyUnterstuetzen()->checkAntragSubmit()) {
         $userid = Yii::app()->user->getState("person_id");
         foreach ($antrag->antragUnterstuetzerInnen as $unt) {
             if ($unt->unterstuetzerIn_id == $userid) {
                 $unt->delete();
             }
         }
         Yii::app()->user->setFlash("success", "Du stehst diesem Antrag wieder neutral gegenüber.");
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
     if (AntiXSS::isTokenSet("add_tag") && $this->veranstaltung->isAdminCurUser()) {
         foreach ($this->veranstaltung->tags as $tag) {
             if ($tag->id == $_REQUEST["tag_id"]) {
                 Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $antrag->id, "tag_id" => $_REQUEST["tag_id"]));
                 $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
             }
         }
     }
     if (AntiXSS::isTokenSet("del_tag") && $this->veranstaltung->isAdminCurUser()) {
         Yii::app()->db->createCommand()->delete("antrag_tags", 'antrag_id=:antrag_id AND tag_id=:tag_id', array("antrag_id" => $antrag->id, "tag_id" => AntiXSS::getTokenVal("del_tag")));
         $this->redirect($this->createUrl("antrag/anzeige", array("antrag_id" => $antrag->id)));
     }
 }
 /**
  * @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)));
     }
 }
Example #8
0
 /**
  */
 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.");
     }
 }