src/OEW/RegistrationBundle/Controller/WillkommenController.php line 44
<?php
namespace OEW\RegistrationBundle\Controller;
use Doctrine\ORM\EntityManagerInterface;
use OEW\RegistrationBundle\Entity\Logging;
use OEW\RegistrationBundle\Entity\Person;
use Doctrine\Persistence\ManagerRegistry;
use Twig\Environment;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use App\Security\User;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class WillkommenController extends AbstractController {
public function indexAction(
Request $request,
TranslatorInterface $translator,
EntityManagerInterface $em,
TokenStorageInterface $tokenStorage,
EventDispatcherInterface $eventDispatcher,
ManagerRegistry $doctrine,
Environment $twig
):Response {
$formerrors = array();
$session = $request->getSession();
//$registration = @$session->get('registration', array());
$sysuser = $session->get('sysuser');
$veranstaltungid = $session->get('veranstaltungid');
$myuser = new User();
$username = trim((string) $request->get('_username'));
$password = trim((string) $request->get('_password'));
$myuser->setUsername( $username );
$myuser->setPassword( $password );
$meineTeilnahmen = "";
$andereVeranstaltungen = "";
$session->set('registration', "");
// username and password submitted
// login action
if ( $request->isMethod('POST') && $username && $password ) {
$em = $doctrine->getManager();
$query = $em->createQuery("SELECT t FROM OEW\RegistrationBundle\Entity\Teilnehmer t WHERE t.benutzername = :username");
$query->setParameter('username', $username);
$user = $query->getOneOrNullResult();
$error_text = "";
$error = false;
// if there is a user with given credentials
// find the teilnahme data
if ( $user ) {
if ( md5($password) === $user->getPasswort() ) {
if ( !$user->getAktiviert() ) {
$error = true;
$error_text = $translator->trans("Login.Fehler");
$this->wlogg($user->getId(), $veranstaltungid, "LOGIN_FEHLER", $doctrine, "Nicht aktiviert.");
}
elseif ( $user->getDeaktiviert() || $user->getGeloescht() ) {
$error = true;
$error_text = $translator->trans("Login.Fehler.deaktiviert");
$this->wlogg($user->getId(), $veranstaltungid,"LOGIN_FEHLER", $doctrine, "Deaktiviert oder gelöscht.");
}
else {
// check if already assigned for some event
//$teilnahme = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Teilnahme')->findByTeilnehmerId($user->getId());
$em = $doctrine->getManager();
// check if user blacklisted
$em = $doctrine->getManager();
$sql = '
SELECT tn
FROM OEW\RegistrationBundle\Entity\Teilnahme tn
WHERE
tn.teilnehmerId = '.$user->getId().' AND
tn.keineTeilnahme=1 AND
tn.veranstaltungId = '.$_ENV["veranstaltungid"];
$query = $em->createQuery($sql);
$blacklisted = $query->getResult();
if ($blacklisted) {
$error = true;
$error_text = $translator->trans("Login.Fehler.deaktiviert");
$this->wlogg($user->getId(), $veranstaltungid,"LOGIN_FEHLER", $doctrine, "Deaktiviert oder gelöscht.");
} else {
$query = $em->createQuery($sql);
$teilnahme = $query->getResult();
$sql = '
SELECT tn
FROM OEW\RegistrationBundle\Entity\Teilnahme tn
WHERE
tn.teilnehmerId = '.$user->getId().' AND
tn.deaktiviert IS NULL AND
tn.geloescht IS NULL AND
tn.veranstaltungId = '.$_ENV["veranstaltungid"];
// rolle Id = 7 - is over for guests and oews for 2015
$query = $em->createQuery($sql);
$teilnahme = $query->getResult();
$sysuser = array();
// if user is aussteller or unteraussteller
// check if user part of bezahlt koje or not
// main menu depends on this
$sysuser['kojebezahlt'] = 0;
$sysuser['paketbezahlt'] = 0;
if ($teilnahme) {
if ($teilnahme[0]->getRolleId() == 17) {
$paketTeilnehmer = $em->getRepository('OEW\RegistrationBundle\Entity\PaketTeilnehmer')->findOneByTeilnahmeId($teilnahme[0]->getId());
if ($paketTeilnehmer) {
$paket = $em->getRepository('OEW\RegistrationBundle\Entity\Paket')->findOneBy( array( 'id' => $paketTeilnehmer->getPaketId(), 'veranstaltungId' => $_ENV["veranstaltungid"] ) );
if ( $paket && $paket->getBezahlt() ) {
$sysuser['kojebezahlt'] = 1;
$sysuser['paketbezahlt'] = 1;
}
}
} elseif ($teilnahme[0]->getRolleId() == 13) {
$paket = $em->getRepository('OEW\RegistrationBundle\Entity\Paket')->findOneBy( array( 'teilnehmerId' => $user->getId(), 'veranstaltungId' => $_ENV["veranstaltungid"] ) );
if ( $paket && $paket->getBezahlt() ) {
$sysuser['kojebezahlt'] = 1;
$sysuser['paketbezahlt'] = 1;
}
}
}
if ( 1 == $user->getSystemadmin() ) {
$sysuser['systemadmin'] = true;
$roles = array( 'ROLE_ADMIN' );
$sysuser['rolle'] = 4;
} else {
$sysuser['systemadmin'] = false;
$roles = array( 'ROLE_USER' );
if ( isset($teilnahme[0])) {
$sysuser['rolle'] = $teilnahme[0]->getRolleId();
$sysuser['anwesenheit'] = $teilnahme[0]->getAnwesenheit();
}
}
// check if testaccount
if ( 1 == $user->getUnsichtbar() ) {
$sysuser['testuser'] = 1;
}
// if MA rolle
if ( isset($teilnahme[0]) && $teilnahme[0]->getRolleId() == 15 ) {
$query = $em->createQuery("SELECT r FROM OEW\RegistrationBundle\Entity\Zustaendigkeit r WHERE r.veranstaltungId=".$_ENV["veranstaltungid"]." AND r.teilnehmerId=".$user->getId());
$regionen = $query->getResult();
$sysuser['laender'] = array();
foreach ( $regionen as $region ) {
$sysuser['laender'][] = $region->getLandId();
}
}
$myuser->setRoles( $roles );
$token = new UsernamePasswordToken($myuser, 'admin', $roles);
$tokenStorage->setToken($token);
$event = new InteractiveLoginEvent($request, $token);
$eventDispatcher->dispatch($event, "security.interactive_login");
$session->set('_security_login_firewall', serialize($token));
//$sysuser['rolle'] = $teilnahme->getRolleId();
$sysuser['teilnehmerId'] = $user->getId();
$registration['teilnehmerId'] = $user->getId();
$sysuser['personId'] = $user->getPersonId();
$sysuser['benutzername'] = $user->getBenutzername();
$sysuser['loginlang'] = $request->getLocale();
if ( $user->getLetztesLogin() ) $sysuser['letztesLogin'] = $user->getLetztesLogin()->format('Y-m-d H:m');
$person = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Person')->findOneById($user->getPersonId());
if ( $person ) {
// set person data
// later needed on person controller
$registration['person']['anrede'] = $person->getAnrede();
$registration['person']['akademgrad'] = $person->getAkademGrad();
$registration['person']['vorname'] = $person->getVorname();
$registration['person']['nachname'] = $person->getNachname();
$registration['person']['funktion'] = $person->getFunktion();
$registration['person']['medien'] = $person->getMedien();
$registration['person']['email'] = $person->getEmail();
$registration['person']['email2'] = $person->getEmail();
$myPhone = explode(" ", $person->getTelefonBuero());
$registration['person']['telefonlc'] = $myPhone[0];
$registration['person']['telefonvorwahl'] = $myPhone[1];
$registration['person']['telefonnr'] = $myPhone[2];
if (isset($myPhone[3]) )
$registration['person']['telefondurchwahl'] = $myPhone[3];
$myFax = explode(" ", $person->getFax());
$registration['person']['faxlc'] = $myFax[0];
$registration['person']['faxvorwahl'] = $myFax[1];
$registration['person']['faxnr'] = $myFax[2];
if (isset($myFax[3]))
$registration['person']['faxdurchwahl'] = $myFax[3];
$myMobile = explode(" ", $person->getTelefonMobil());
$registration['person']['mobillc'] = $myMobile[0];
$registration['person']['mobilvorwahl'] = $myMobile[1];
$registration['person']['mobilnr'] = $myMobile[2];
// if there is a existing profile picture save it to profile bild "e" - stands for existing
$registration['person']['profilbilde'] = $this->getProfilbild( $person->getId() );
// not sure if good
$registration['firmaid'] = $person->getFirmaId();
// if login is read only
// user cant change the login data.
$registration['login']['readonly'] = 1;
$sysuser['vorname'] = $person->getVorname();
$sysuser['nachname'] = $person->getNachname();
$sysuser['firmaid'] = $person->getFirmaId();
// check if firma is either
// market office or head office
$firma = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Firma')->findOneById($person->getFirmaId());
if ($firma) {
if ($firma->getMarketoffice() > 0 || $firma->getHeadoffice() > 0) {
// the person is mitarbeiter
$sysuser["istmitarbeiter"] = 1;
$registration['firma']['name'] = $firma->getFirmenname();
$registration['firma']['name2'] = $firma->getFirmenname2();
$registration['firma']['str'] = $firma->getStrasse();
$registration['firma']['plz'] = $firma->getPlz();
$registration['firma']['ort'] = $firma->getOrt();
$registration['firma']['id'] = $firma->getId();
$registration['firma']['ho'] = $firma->getHeadoffice();
$registration['firma']['mo'] = $firma->getMarketoffice();
$registration['firma']['land'] = $firma->getLandId();
$registration['firma']['kategorie'] = $firma->getKategorie();
}
}
}
$session->set('sysuser',$sysuser);
$this->wlogg($user->getId(), $veranstaltungid, "LOGIN", $doctrine, "userlogin");
//TODO: Find better way to disable this fn in tests
if(getenv('APP_ENV') !== 'test'){
setcookie("systid", $user->getId(), time()+3600, "/", ".tourismustage.at", true);
}
$user->setLetztesLogin( new \DateTime(date("Y-m-d H:i:s")) );
$em->flush();
$meineTeilnahmen = array();
// ids of currently open events - currently running admission
$aktiveIDs = "0";
// check if the user is allowed for experience
$add_where = "";
if ($user->getExperience() != 1) {
$add_where = " AND v.typ <> 'xp' ";
}
if (count($teilnahme) > 0) {
$i = 0;
foreach ($teilnahme as $oneteilnahme) {
$aktiveIDs .= ",".$oneteilnahme->getVeranstaltungId();
if ($oneteilnahme->getAktiviert()) {
//$myVeranstaltung = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Veranstaltung')->findOneById($oneteilnahme->getVeranstaltungId());
$query_v = $em->createQuery("SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE v.id=".$oneteilnahme->getVeranstaltungId()." ".$add_where." AND (v.bis >= CURRENT_DATE() OR (v.anmeldungVon <= CURRENT_DATE() AND v.anmeldungBis >= CURRENT_DATE()) ) and v.deaktiviert=0");
$myVeranstaltungen = $query_v->getResult();
if (count($myVeranstaltungen) > 0) {
foreach($myVeranstaltungen as $myVeranstaltung) {
$meineTeilnahmen[$i]["veranstaltung_id"] = $oneteilnahme->getVeranstaltungId();
// setting up logo
if ($myVeranstaltung->getTyp() == "tt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_tourismustag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Tourismustag";
} else if ($myVeranstaltung->getTyp() == "mt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_maerktetag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Märktetag";
} else if ($myVeranstaltung->getTyp() == "oews") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_oews";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖWork_Shop";
} else if ($myVeranstaltung->getTyp() == "sales") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_sales";
} else if ($myVeranstaltung->getTyp() == "xp") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_exp";
} else if ($myVeranstaltung->getTyp() == "atbvirtuell") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_atbvirtuell";
}
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelDe();
if ($request->getLocale() == "en") {
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelEn();
}
$meineTeilnahmen[$i]["rolleid"] = $oneteilnahme->getRolleId();
$myRolle = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Rolle')->findOneById($oneteilnahme->getRolleId());
if ($request->getLocale() == "en") {
$meineTeilnahmen[$i]["rolle"] = $myRolle->getNameEn();
} else {
$meineTeilnahmen[$i]["rolle"] = $myRolle->getNameDe();
}
$meineTeilnahmen[$i]["url"] = $myVeranstaltung->getUrl();
$i++;
}
}
}
}
}
}
}
}
else {
$error = true;
$error_text = $translator->trans("Login.Fehler");
$this->wlogg($user->getId(), $veranstaltungid, "LOGIN_FEHLER", $doctrine, "Passwort falsch.");
}
}
else {
$error = true;
$error_text = $translator->trans("Login.Fehler");
}
if ( $error ) {
$formerrors[] = array( 'type'=>'', 'text'=>$error_text );
}
} elseif (isset($sysuser) && isset($sysuser['teilnehmerId']) && $sysuser['teilnehmerId'] > 0) {
// if the user is already set
// and logged in
//$teilnahme = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Teilnahme')->findByTeilnehmerId( $sysuser['teilnehmerId'] );
$em = $doctrine->getManager();
$sql = '
SELECT tn
FROM OEW\RegistrationBundle\Entity\Teilnahme tn
WHERE
tn.teilnehmerId = '.$sysuser['teilnehmerId'].' AND
tn.deaktiviert IS NULL AND
tn.geloescht IS NULL AND
tn.rolleId <> 7
';
$query = $em->createQuery($sql);
$teilnahme = $query->getResult();
$meineTeilnahmen = array();
// ids of currently open events - currently running admission
$aktiveIDs = "0";
// check if the user is allowed for experience
/*
$myTeilnehmer = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Teilnehmer')->findOneById($sysuser['teilnehmerId']);
$add_where = " AND v.typ <> 'xp' ";
if ($myTeilnehmer) {
if ($myTeilnehmer->getExperience() == 1) {
$add_where = " AND v.typ = 'xp' ";
}
}
*/
if (count($teilnahme) > 0) {
$i = 0;
foreach ($teilnahme as $oneteilnahme) {
$aktiveIDs .= ",".$oneteilnahme->getVeranstaltungId();
//$myVeranstaltung = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Veranstaltung')->findOneById($oneteilnahme->getVeranstaltungId());
$em = $doctrine->getManager();
$query_v = $em->createQuery("SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE v.id=".$oneteilnahme->getVeranstaltungId()." AND (v.von <= CURRENT_DATE() AND v.bis >= CURRENT_DATE() OR v.anmeldungVon <= CURRENT_DATE() AND v.anmeldungBis >= CURRENT_DATE()) and v.deaktiviert=0");
$myVeranstaltungen = $query_v->getResult();
if (count($myVeranstaltungen) > 0) {
foreach($myVeranstaltungen as $myVeranstaltung) {
if ($oneteilnahme->getAktiviert()) {
$meineTeilnahmen[$i]["veranstaltung_id"] = $oneteilnahme->getVeranstaltungId();
// setting up logo
if ($myVeranstaltung->getTyp() == "tt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_tourismustag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Tourismustag";
} else if ($myVeranstaltung->getTyp() == "mt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_maerktetag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Märktetag";
} else if ($myVeranstaltung->getTyp() == "oews") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_oews";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖWork_Shop";
} else if ($myVeranstaltung->getTyp() == "sales") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_sales";
} else if ($myVeranstaltung->getTyp() == "xp") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_exp";
} else if ($myVeranstaltung->getTyp() == "atbvirtuell") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_atbvirtuell";
}
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelDe();
if ($request->getLocale() == "en") {
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelEn();
}
$meineTeilnahmen[$i]["rolleid"] = $oneteilnahme->getRolleId();
$myRolle = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Rolle')->findOneById($oneteilnahme->getRolleId());
if ($request->getLocale() == "en") {
$meineTeilnahmen[$i]["rolle"] = $myRolle->getNameEn();
} else {
$meineTeilnahmen[$i]["rolle"] = $myRolle->getNameDe();
}
$meineTeilnahmen[$i]["url"] = $myVeranstaltung->getUrl();
$i++;
}
}
}
}
}
} else {
// kill zombie session - after browser crash for example..
$session->set('sysuser', array());
}
/********************************************************************************************/
// check if the user is allowed for experience
$add_where = " AND v.typ <> 'xp' ";
if (isset($sysuser['teilnehmerId'])) {
$myTeilnehmer = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Teilnehmer')->findOneById($sysuser['teilnehmerId']);
if ($myTeilnehmer) {
if ($myTeilnehmer->getExperience() == 1 || isset($sysuser["istmitarbeiter"])) {
$add_where = " ";
}
}
}
// get other events that the user is not admitted for
if (isset($aktiveIDs) && $aktiveIDs != "") {
$em = $doctrine->getManager();
$query2 = $em->createQuery('SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE v.anmeldungVon < CURRENT_DATE() AND v.anmeldungBis > CURRENT_DATE() AND v.id NOT IN ('.$aktiveIDs.') '.$add_where.' and v.deaktiviert=0 ORDER BY v.id');
$andereVeranstaltungen = $query2->getResult();
}
// if user is admin
// override andereVeranstaltungen and read everything
if (isset($sysuser) && isset($sysuser["systemadmin"]) && $sysuser["systemadmin"] == 1) {
$em = $doctrine->getManager();
$query_v = $em->createQuery("SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE v.url != '' and v.deaktiviert=0");
$myVeranstaltungen = $query_v->getResult();
$meineTeilnahmen = array();
$i = 0;
foreach($myVeranstaltungen as $myVeranstaltung) {
$meineTeilnahmen[$i]["veranstaltung_id"] = $myVeranstaltung->getId();
// setting up logo
if ($myVeranstaltung->getTyp() == "tt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_tourismustag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Tourismustag";
} else if ($myVeranstaltung->getTyp() == "mt") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_maerktetag";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖW Märktetag";
} else if ($myVeranstaltung->getTyp() == "oews") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_oews";
$meineTeilnahmen[$i]["veranstaltung_title"] = "ÖWork_Shop";
} else if ($myVeranstaltung->getTyp() == "sales") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_sales";
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelDe();
} else if ($myVeranstaltung->getTyp() == "xp") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_exp";
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelDe();
} else if ($myVeranstaltung->getTyp() == "atbvirtuell") {
$meineTeilnahmen[$i]["veranstaltung_logo"] = "_atbvirtuell";
$meineTeilnahmen[$i]["veranstaltung_title"] = $myVeranstaltung->getTitelDe();
}
$meineTeilnahmen[$i]["url"] = $myVeranstaltung->getUrl();
$i++;
}
}
// default values for veranstaltung
$logo = ""; // logo is empty, so default logo will be atb_logo.gif
$veranstaltung_title = "ATB Österreich";
$veranstaltung_typ = $request->get('v');
$veranstaltung = $request->get('v');
// checking if get parameter is given for particular veranstaltung
if ($veranstaltung == "tt") {
$veranstaltung_title = "ÖW Tourismustag";
$logo = "_tourismustag";
$veranstaltung_id = 7;
$veranstaltung_typ = "tt";
} else if ($veranstaltung == "mt") {
$veranstaltung_title = "ÖW Märktetag";
$logo = "_maerktetag";
$veranstaltung_id = 5;
$veranstaltung_typ = "mt";
} else if ($veranstaltung == "oews") {
$veranstaltung_title = "ÖWorkShop";
$logo = "_oews";
$veranstaltung_id = 3;
$veranstaltung_typ = "oews";
} else if ($veranstaltung == "sales") {
$veranstaltung_title = "ATB";
$logo = "_sales";
$veranstaltung_id = 17;
$veranstaltung_typ = "sales";
} else if ($veranstaltung == "exp") {
$veranstaltung_title = "atb_xperience";
$logo = "_exp";
$veranstaltung_id = 8;
$veranstaltung_typ = "xp";
} else if ($veranstaltung == "atbvirtuell") {
$veranstaltung_title = "ATB Virtuell";
$logo = "_virtuell";
$veranstaltung_id = 13;
$veranstaltung_typ = "atbvirtuell";
}
if (isset($veranstaltung_id)){
// veranstaltung is set
$registration['veranstaltung'] = $veranstaltung_id;
$myVeranstaltung = $this->getVeranstaltung($chosenVeranstaltung);
$veranstaltung_typ = $myVeranstaltung[0]->getTyp();
$mitarbeiterlink = $this->generateUrl('oew_reg_oewma_'.$request->getLocale());
if ( $myVeranstaltung[0]->getTyp() == "sales" || $myVeranstaltung[0]->getTyp() == "xp" || $myVeranstaltung[0]->getTyp() == "atbvirtuell" ) {
$registration['veranstaltung_id'] = $veranstaltung_id;
$userlink = $this->generateUrl('oew_reg_home_'.$request->getLocale());
} elseif ( $myVeranstaltung[0]->getTyp() == "oews" || $myVeranstaltung[0]->getTyp() == "tt" || $myVeranstaltung[0]->getTyp() == "mt" ) {
// if oews or tourismustag proceed with company search
if ( $myVeranstaltung[0]->getTyp() == "oews" ) {
$registration['rolleid'] = 7;
$registration['rolle'] = "Gast";
} elseif ($myVeranstaltung[0]->getTyp() == "tt") {
$registration['rolleid'] = 18;
$registration['rolle'] = "Gast";
} elseif ($myVeranstaltung[0]->getTyp() == "mt") {
$registration['rolleid'] = 10;
$registration['rolle'] = "Gast";
}
$registration['module'] = array("firmensuche","firma","person","programm","zimmer","transfer","login");
$userlink = $this->generateUrl('oew_reg_firmensuche_'.$request->getLocale()) ;
}
} else {
// check if the user is allowed for experience
$add_where = " AND v.typ <> 'xp' ";
if (isset($sysuser['teilnehmerId'])) {
$myTeilnehmer = $doctrine->getRepository('OEW\RegistrationBundle\Entity\Teilnehmer')->findOneById($sysuser['teilnehmerId']);
if ($myTeilnehmer) {
if ($myTeilnehmer->getExperience() == 1 || isset($sysuser["istmitarbeiter"])) {
$add_where = " ";
}
}
}
// veranstaltung not set
// check if there is only one, if so, skip the choose and redirect to registration
// $em = $doctrine->getManager();
$query_v = $em->createQuery("SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE (v.anmeldungVon <= CURRENT_DATE() AND v.anmeldungBis >= CURRENT_DATE()) and v.deaktiviert=0 ".$add_where);
$allVeranstaltungen = $query_v->getResult();
$mitarbeiterlink = "";
$userlink = "";
if (count($allVeranstaltungen) > 1 ) {
$userlink = $this->generateUrl('oew_reg_choose_'.$request->getLocale());
$mitarbeiterlink = $this->generateUrl('oew_reg_choose_'.$request->getLocale());
} else if (count($allVeranstaltungen) == 1) {
$registration['veranstaltung'] = $allVeranstaltungen[0]->getId();
if ($allVeranstaltungen[0]->getTyp() == "tt") {
$veranstaltung_title = "ÖW Tourismustag";
$logo = "_tourismustag";
$userlink = $this->generateUrl('oew_reg_firmensuche_'.$request->getLocale()) ;
} else if ($allVeranstaltungen[0]->getTyp() == "mt") {
$veranstaltung_title = "ÖW Märktetag";
$logo = "_maerktetag";
} else if ($allVeranstaltungen[0]->getTyp() == "oews") {
$veranstaltung_title = "ÖWork_Shop";
$logo = "_oews";
$userlink = $this->generateUrl('oew_reg_firmensuche_'.$request->getLocale()) ;
} else if ($allVeranstaltungen[0]->getTyp() == "sales") {
$veranstaltung_title = $allVeranstaltungen[0]->getTitelDe();
$logo = "_sales";
$userlink = $this->generateUrl('oew_reg_rolle_'.$request->getLocale()) ;
} else if ($allVeranstaltungen[0]->getTyp() == "exp") {
$veranstaltung_title = "atb_experience";
$logo = "_exp";
$userlink = $this->generateUrl('oew_reg_firmensuche_'.$request->getLocale()) ;
} else if ($allVeranstaltungen[0]->getTyp() == "atbvirtuell") {
$veranstaltung_title = "ATB Virtuell";
$logo = "_virtuell";
$userlink = $this->generateUrl('oew_reg_home_'.$request->getLocale()) ;
}
$veranstaltung_typ = $allVeranstaltungen[0]->getTyp();
$mitarbeiterlink = $this->generateUrl('oew_reg_oewma_'.$request->getLocale());
} else {
// check experience for MAs
// veranstaltung not set
// check if there is MA registration open for exclusive event
$em = $doctrine->getManager();
$query_v = $em->createQuery("SELECT v FROM OEW\RegistrationBundle\Entity\Veranstaltung v WHERE (v.anmeldungVon <= CURRENT_DATE() AND v.anmeldungBis >= CURRENT_DATE()) and v.deaktiviert=0 ");
$MAVeranstaltungen = $query_v->getResult();
if ($MAVeranstaltungen)
if (count($MAVeranstaltungen == 1)) {
$registration['veranstaltung'] = $MAVeranstaltungen[0]->getId();
if ($MAVeranstaltungen[0]->getTyp() == "exp") {
$veranstaltung_title = "atb_experience";
$logo = "_exp";
}
$veranstaltung_typ = $MAVeranstaltungen[0]->getTyp();
$mitarbeiterlink = $this->generateUrl('oew_reg_oewma_'.$request->getLocale());
}
}
}
// setting the header logo and title into session
$registration['logo'] = $logo;
// if first step, the logo will not be shown on portal until next step
$registration['firststep'] = 1;
$registration['veranstaltung_title'] = $veranstaltung_title;
$registration['veranstaltung_typ'] = $veranstaltung_typ;
$myMitarbeiter = 0;
if (isset($sysuser["istmitarbeiter"]))
$myMitarbeiter = $sysuser["istmitarbeiter"];
// user has used invitation link for unterkojenmieter
if ( ( $request->get('rl') == "ua") && ($request->get('k') != "") && ($request->get('s') != "") ) {
$registration['koje_einladung']['rl'] = "ua";
$registration['koje_einladung']['k'] = $request->get('k');
$registration['koje_einladung']['s'] = $request->get('s');
$registration['koje_einladung']['ref'] = $request->get('ref');
$kt = $em->getRepository('OEW\RegistrationBundle\Entity\PaketTeilnehmer')->findOneById($request->get('k'));
if ( $kt ) {
if ($kt->getEinladungGleichefirma() == 1) {
$registration['koje_einladung']['gleichefirma'] = 1;
}
}
/*
$session->set('registration',$registration);
// redirect invited ukm to registration
// has to be checked, if the redirection is ok
if ($request->getLocale() == "en") {
// generate link to registration with get parameters for rl k and s
$url = $this->generateUrl('oew_reg_home_en', array('rl' => 'ua', 'k' => $request->get('k'), 's' => $request->get('s')), true);
} else {
$url = $this->generateUrl('oew_reg_home_de', array('rl' => 'ua', 'k' => $request->get('k'), 's' => $request->get('s')), true);
}
return $this->redirect($url);
*/
}
$session->set('registration',$registration);
// if deep link activ
if ( ((isset($sysuser["teilnehmerId"]) && $sysuser["teilnehmerId"] > 0) || isset($sysuser["istmitarbeiter"]) ) && (isset($_COOKIE["url"]) && $_COOKIE["url"] != "")) {
$url = $_COOKIE["url"];
setcookie("url", "", time()+3600, "/", ".tourismustage.at", true);
return $this->redirect($url);
}
$html = $twig->render('@OEWRegistrationBundle/willkommen.html.twig',
[
'registration' => $registration,
'formerrors' => $formerrors,
'userlink' => $userlink,
'mitarbeiterlink' => $mitarbeiterlink,
'teilnahme' => $meineTeilnahmen,
'andere' => $andereVeranstaltungen,
'mitarbeiter' => $myMitarbeiter
]
);
return new Response( $html );
}
public function wlogg( $teilnehmerId, $veranstaltungid, $aktion, ManagerRegistry $doctrine, $beschreibung="" ) {
$em = $doctrine->getManager();
if(!$veranstaltungid) return;
$logg = new Logging();
$logg->setTeilnehmerId($teilnehmerId);
$logg->setAnTeilnehmerId($teilnehmerId);
$logg->setVeranstaltungId($veranstaltungid);
$logg->setZeitpunkt( new \DateTime(date("Y-m-d H:i:s")) );
$logg->setAktion($aktion);
$logg->setBeschreibung($beschreibung);
try { $em->persist($logg);$em->flush(); }
catch (IOException $e) {}
}
public function getProfilbild( $personId ) {
$fs = new Filesystem();
$dir = getenv('files_dir');
$path = getenv('files_path');
if ( $fs->exists($dir . "pbild_".$personId.".jpg") ) return $path . "pbild_" . $personId . ".jpg?nocache=".time();
elseif ( $fs->exists($dir . "pbild_".$personId.".jpeg") ) return $path . "pbild_" . $personId . ".jpeg?nocache=".time();
elseif ( $fs->exists($dir . "pbild_".$personId.".png") ) return $path . "pbild_" . $personId . ".png?nocache=".time();
return false;
}
public function setaktiveuserAction(Request $request, ManagerRegistry $doctrine) {
$formerrors = array();
$session = $request->getSession();
$registration = $session->get('registration', array());
if ($request->get('tid') != "") {
$tid = (int)base64_decode($request->get('tid'));
if ($tid > 0) {
$veranstaltungid = 3;
$em = $doctrine->getManager();
$query = $em->createQuery("SELECT tn FROM OEW\RegistrationBundle\Entity\Teilnahme tn WHERE tn.deaktiviert IS NULL AND tn.geloescht IS NULL AND tn.teilnehmerId = :tid AND tn.veranstaltungId= :vid");
$query->setParameter('tid', $tid);
$query->setParameter('vid', $veranstaltungid);
$teilnahme = $query->getOneOrNullResult();
$teilnahme->setAktiviert(new \DateTime(date("Y-m-d H:i:s")));
$query = $em->createQuery("SELECT tn FROM OEW\RegistrationBundle\Entity\Teilnehmer tn WHERE tn.deaktiviert IS NULL AND tn.geloescht IS NULL AND tn.id = :tid");
$query->setParameter('tid', $tid);
$teilnehmer = $query->getOneOrNullResult();
$teilnehmer->setAktiviert(new \DateTime(date("Y-m-d H:i:s")));
$homelink = $this->get('router')->generate('oew_reg_welcome_de', array(), true);
$em->flush();
$html = $twig->render('@OEWRegistrationBundle/aktivierung.html.twig',
[
'registration' => $registration,
'formerrors' => $formerrors,
'homelink' => $homelink
]
);
return new Response( $html );
}
} else {
$html = $twig->render('@OEWRegistrationBundle/willkommen.html.twig',
[
'registration' => $registration,
'formerrors' => $formerrors,
// 'userlink' => $userlink,
// 'mitarbeiterlink' => $mitarbeiterlink,
// 'teilnahme' => $meineTeilnahmen,
// 'andere' => $andereVeranstaltungen,
// 'mitarbeiter' => $sysuser["istmitarbeiter"]
]
);
return new Response( $html );
}
}
}