/** * @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]); }
/** * @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))); } }
/** */ 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."); } }