function processRequestAction() { $_GP = $this->request->getArguments(); $action = $_GP['action']; $uid = (int) $_GP['uid']; $key = $_GP['key']; // Validierung der Aktion if ($action) { if (!$this->anyHelper->validateKeyForUid($uid, $key)) { die("Validierung fehlgeschlagen."); } } if ($action == 'approve') { // Klick auf "Bestätigen" in Admin-Email $this->mainController->approveAction($uid); } else { if ($action == 'remove') { // Klick auf "Löschen" in E-Mail $this->mainController->removeAction($uid); } else { if ($action == 'edit') { // Klick auf "Bearbeiten" aus der E-Mail return $this->mainController->editAction($uid); } else { if ($action == 'feedit') { // Klick auf "Bearbeiten" eines bestehenden Datensatzes im Frontend $message = $this->mainController->feeditAction($_GP); } else { if ($action == 'fedelete') { // Klick auf "Löschen" eines bestehenden Datensatzes im Frontend $message = $this->mainController->feDeleteAction($_GP); } } } } } if ($message = $this->anyHelper->renderFlashMessages()) { return $message; } //$this->anyHelper->httpRedirect( 0 ); }
/** * action showForm * * @return void */ public function finalizeAction() { $gpVars = $this->_GP; unset($gpVars['finalize']); $gpVars['_feUserUid'] = $GLOBALS['TSFE']->fe_user ? $GLOBALS['TSFE']->fe_user->user['uid'] : ''; $this->view->assign('entries', $entries); $type = $this->settings['tablename']; $settings = $this->settings[$type]; $extName = $settings['extension']; $tmplPath = $settings['templatePath']; if (!($email = $settings['admin']['toEmail'])) { $email = $this->settings['adminEmail']; } $sendToAdmin = $email && $settings['admin']['enabled'] !== '0'; $entry = false; if ($gpVars['_key'] && $gpVars['_entry']) { if ($entry = $this->entryRepository->findByUid($gpVars['_entry'])) { // Admin war am Werk (erkennbar an gültiger _adminKey) -> Änderungen direkt freischalten if (!$sendToAdmin && $this->anyHelper->validateKeyForUid($gpVars['_entry'], $gpVars['_key']) || $sendToAdmin && $this->anyHelper->validateKeyForUid($gpVars['_entry'], $gpVars['_adminKey'], 'admin')) { $entry->setData(json_encode($gpVars)); $this->persistenceManager->persistAll(); $this->approveAction($gpVars['_entry']); return $this->anyHelper->renderFlashMessages(); } } } // Ein neuer Eintrag... if (!$entry) { $entry = new \Nng\Nnfesubmit\Domain\Model\Entry(); } $entry->setExt($type); $entry->setData(json_encode($gpVars)); $this->entryRepository->add($entry); $this->persistenceManager->persistAll(); $srcUid = $entry->getSrcuid(); $validationUid = $entry->getUid(); $validationKey = $this->anyHelper->createKeyForUid($validationUid); $adminKey = $this->anyHelper->createKeyForUid($validationUid, 'admin'); $mapperVars = (array) $this->insertViewVariablesFromMapper($extName); // E-Mail an Admin zur Freigabe senden? if ($sendToAdmin) { // Link zum Löschen des Eintrags $adminKey = $this->anyHelper->createKeyForUid($validationUid, 'admin'); $data = array_merge_recursive($gpVars, $mapperVars, array('feUser' => $this->feUser, 'validationKey' => $validationKey, 'validationUid' => $validationUid, 'baseUrl' => $GLOBALS['TSFE']->baseUrl, 'pageUid' => $settings['editPid'] ? $settings['editPid'] : $GLOBALS['TSFE']->id, 'settings' => $settings)); if ($adminKey) { $data['adminKey'] = $adminKey; } $emailTemplate = $srcUid ? 'EmailAdminFeedit.html' : 'EmailAdmin.html'; $html = $this->anyHelper->renderTemplate($tmplPath . $emailTemplate, $data, true, null, false); die($html); $this->anyHelper->send_email(array_merge($settings['admin'], array('html' => $html))); if ($settings['thanksPid']) { $this->anyHelper->httpRedirect($settings['thanksPid']); } else { $this->anyHelper->redirect('thanks', null, null, $this->GP_baseVars(array('type' => $type))); } } else { // Kein Admin im Spiel, direkt freischalten $this->approveAction($validationUid); } }