Example #1
0
 public function post($f3)
 {
     switch ($f3->get('PARAMS.action')) {
         case 'registration':
             $registrationDB = $this->getDB('registrations');
             $registration = $registrationDB->findone(array('raidid=? AND characterid=?', $f3->get('POST.raidid'), $f3->get('POST.characterid')));
             if ($this->raidRegistrationForm->isValid($f3->get('POST')) && $registration) {
                 $registration->participation = $f3->get('POST.participation');
                 $registration->comment = $f3->get('POST.comment');
                 $registration->role = $f3->get('POST.role');
                 $registration->save();
                 // Remove remaining Characters from the Registration-List
                 //$characterDB = $this->getDB('characters');
                 //$remainingCharacters = $characterDB->find(array('userid=? AND id!=?',
                 //                                                 $f3->get('SESSION.user.id'),
                 //                                                 $f3->get('POST.characterid')));
                 //foreach ($remainingCharacters as $character) {
                 //    $registrationDB->erase(array('raidid=? AND characterid=?',
                 //                                 $f3->get('POST.raidid'),
                 //                                 $character->id));
                 //}
                 $f3->reroute('/raid/show/' . $f3->get('POST.raidid'));
             } elseif (!$registration) {
                 $f3->set('SESSION.errormsg', 'Raideinladung nicht gefunden!');
                 $f3->reroute('/raid/registration/' . $f3->get('PARAMS.raidid'));
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->raidRegistrationForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->raidRegistrationForm->getFailedFields()));
                 $f3->reroute('/raid/registration/' . $f3->get('PARAMS.raidid'));
             }
             break;
         case 'create':
             if ($this->raidCreateForm->isValid($f3->get('POST'))) {
                 $raid = $this->getDB('raids');
                 $datetime = date("Y-m-d H:i:s", strtotime($f3->get('POST.date') . ' ' . $f3->get('POST.time')));
                 $raid->copyFrom('POST');
                 $raid->datetime = $datetime;
                 $raid->creationdate = date("Y-m-d H:i:s");
                 $raid->save();
                 // Find Characters suitable for this Raid and add them
                 $raidinfo = $f3->get('game.raids.' . $raid->raidtypeid);
                 $charactersDB = $this->getDB('characters');
                 $characters = $charactersDB->find(array('armorclass>=?', $raidinfo['armorclass']));
                 $useridlist = array();
                 $registration = $this->getDB('registrations');
                 foreach ($characters as $character) {
                     $registration->raidid = $raid->id;
                     $registration->characterid = $character->id;
                     $registration->save();
                     $registration->reset();
                     $useridlist[] = $character->userid;
                 }
                 // Send Mail to user
                 $f3->set('raid', $raid);
                 $raidinfo = $f3->get('game.raids.' . $f3->get('raid')->raidtypeid);
                 $raidname = $raidinfo['name'] . " " . $raidinfo['players'] . " (" . $raidinfo['difficulty'] . ")";
                 $usersDB = $this->getDB('users');
                 $receiverlist = array();
                 foreach (array_unique($useridlist) as $userid) {
                     $user = $usersDB->findone(array('id=?', $userid));
                     $receiverlist[] = $user->email;
                 }
                 $this->mail->setSubject('Raideinladung ' . $raidname)->sendMessage('raidnotification', $receiverlist);
                 $f3->reroute('/raid/list');
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->raidCreateForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->raidCreateForm->getFailedFields()));
                 $f3->reroute('/raid/create');
             }
             break;
         case 'edit':
             if ($this->raidEditForm->isValid($f3->get('POST'))) {
                 $raidDB = $this->getDB('raids');
                 $raid = $raidDB->findone(array('id=?', $f3->get('POST.id')));
                 $datetime = date("Y-m-d H:i:s", strtotime($f3->get('POST.date') . ' ' . $f3->get('POST.time')));
                 $raid->datetime = $datetime;
                 $raid->save();
                 $f3->reroute('/raid/list');
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->raidEditForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->raidEditForm->getFailedFields()));
                 $f3->reroute('/raid/list');
             }
             break;
         case 'delete':
             $raidsDB = $this->getDB('raids');
             $raidsDB->erase(array('id=?', $f3->get('PARAMS.raidid')));
             $registrationsDB = $this->getDB('registrations');
             $registrationsDB->erase(array('id=?', $f3->get('PARAMS.raidid')));
             $f3->reroute('/raid/list');
             break;
         case 'invite':
             if ($this->raidInviteForm->isValid($f3->get('POST'))) {
                 $usersDB = $this->getDB('users');
                 $user = $usersDB->findone(array('id=?', $f3->get('POST.userid')));
                 $raidsDB = $this->getDB('raids');
                 $raid = $raidsDB->findone(array('id=?', $f3->get('PARAMS.raidid')));
                 $f3->set('raid', $raid);
                 $raidinfo = $f3->get('game.raids.' . $f3->get('raid')->raidtypeid);
                 $raidname = $raidinfo['name'] . " " . $raidinfo['players'] . " (" . $raidinfo['difficulty'] . ")";
                 // Send Mail
                 $this->mail->setSubject('Raideinladung ' . $raidname)->sendMessage('raidnotification', array($user->email));
                 $f3->reroute('/raid/list');
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->raidInviteForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->raidInviteForm->getFailedFields()));
                 $f3->reroute('/raid/invite/' . $f3->get('PARAMS.raidid'));
             }
             break;
     }
 }
Example #2
0
 public function post($f3)
 {
     if ($f3->get('PARAMS.userid') && !$this->editOrViewAllowed($f3->get('PARAMS.userid'))) {
         $f3->set('SESSION.errormsg', 'Nicht erlaubt!');
         $f3->reroute('/user/edit/' . $f3->get('SESSION.user.id'));
     }
     switch ($f3->get('PARAMS.action')) {
         case 'create':
             $newUser = $this->getDB('users');
             $crypt = \Bcrypt::instance();
             if ($this->userRegistrationForm->isValid($f3->get('POST'))) {
                 $userDB = $this->getDB('users');
                 if ($userDB->findone(array('email=?', $f3->get('POST.email')))) {
                     $f3->set('SESSION.errormsg', 'EMail ungültig oder bereits registriert!');
                     $f3->reroute('/user/create');
                 }
                 if ($f3->get('POST.password') !== $f3->get('POST.password2')) {
                     $f3->set('SESSION.failedFields', array('password', 'password2'));
                     $f3->set('SESSION.errormsg', 'Passwörter stimmen nicht überein');
                     $f3->reroute('/user/create');
                 }
                 $newUser->copyfrom('POST');
                 $newUser->password = $crypt->hash($f3->get('POST.password', $f3->get('crypt.SALT')));
                 $newUser->mailvalidation = $this->generateMailValidationKey();
                 $newUser->save();
                 // Send Mail
                 $f3->set('newuser', $newUser);
                 $this->mail->setSubject("RaidPlaner Registration")->sendMessage("registration", array($newUser->email));
                 $f3->set('SESSION.successmsg', 'Benutzer erstellt! Prüfe deine EMails um die EMail-Adresse zu bestätigen.');
                 //$f3->reroute('/auth');
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->userRegistrationForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->userRegistrationForm->getFailedFields()));
                 $f3->reroute('/user/create');
             }
             break;
         case 'edit':
             $userDB = $this->getDB('users');
             $user = $userDB->findone(array('id=', $f3->get('PARAMS.userid')));
             $crypt = \Bcrypt::instance();
             if ($this->userEditForm->isValid($f3->get('POST'))) {
                 if ($f3->get('POST.password') !== $f3->get('POST.password2')) {
                     $f3->set('SESSION.failedFields', array('password', 'password2'));
                     $f3->set('SESSION.errormsg', 'Passwörter stimmen nicht überein');
                     $f3->reroute('/user/edit/' . $f3->get('PARAMS.userid'));
                 }
                 $user->password = $crypt->hash($f3->get('POST.password', $f3->get('crypt.SALT')));
                 $user->save();
                 $f3->set('SESSION.successmsg', 'Daten geändert!');
                 $f3->reroute('/user/edit/' . $f3->get('PARAMS.userid'));
             } else {
                 $f3->set('SESSION.failedFields', array_keys($this->userEditForm->getFailedFields()));
                 $f3->set('SESSION.errormsg', implode("<br>", $this->userEditForm->getFailedFields()));
                 $f3->reroute('/user/edit/' . $f3->get('PARAMS.userid'));
             }
             break;
         case 'delete':
             $charactersDB = $this->getDB('characters');
             $charactersDB->erase(array('userid=?', $f3->get('PARAMS.userid')));
             $usersDB = $this->getDB('users');
             $usersDB->erase(array('id=?', $f3->get('PARAMS.userid')));
             $f3->reroute('/user/list');
             break;
     }
 }