Exemplo n.º 1
0
 /**
  * @param IFormInterface $Form
  * @param null|string    $TicketSubject
  * @param null|string    $TicketMessage
  *
  * @return IMessageInterface|IFormInterface
  */
 public function executeCreateTicket(IFormInterface &$Form, $TicketSubject, $TicketMessage)
 {
     $Error = false;
     if (empty($TicketSubject) && null !== $TicketSubject) {
         $Form->setError('TicketSubject', 'Bitte geben Sie ein Thema ein');
         $Error = true;
     } elseif (null === $TicketSubject) {
         $Error = true;
     } else {
         $Form->setSuccess('TicketSubject', '');
     }
     if (empty($TicketMessage) && null !== $TicketMessage) {
         $Form->setError('TicketMessage', 'Bitte geben Sie ein Mitteilung ein');
         $Error = true;
     } elseif (null === $TicketMessage) {
         $Error = true;
     } else {
         $Form->setSuccess('TicketMessage', '');
     }
     if ($Error) {
         /**
          * Nothing to do
          */
         try {
             $Youtrack = (new Support(new YouTrack()))->getSupport();
             $Form->prependGridGroup($Youtrack->ticketCurrent());
             return $Form;
         } catch (\Exception $E) {
             return new Danger('Das Support-System konnte nicht geladen werden');
         }
     } else {
         /**
          * Submit Ticket
          */
         try {
             $Youtrack = (new Support(new YouTrack()))->getSupport();
             $Youtrack->createTicket(urldecode($TicketSubject), urldecode($TicketMessage));
             return new Success('Das Problem wurde erfolgreich dem Support mitgeteilt');
         } catch (\Exception $E) {
             return new Danger('Das Problem konnte nicht übertragen werden');
         }
     }
 }
Exemplo n.º 2
0
 /**
  * @param IFormInterface $Form
  * @param TblAccount     $tblAccount
  * @param string         $CredentialLock
  * @param string         $CredentialLockSafety
  *
  * @return IFormInterface|Redirect
  */
 public function updatePassword(IFormInterface &$Form, TblAccount $tblAccount, $CredentialLock, $CredentialLockSafety)
 {
     if (null === $CredentialLock && null === $CredentialLockSafety) {
         return $Form;
     }
     $Error = false;
     if (empty($CredentialLock)) {
         $Form->setError('CredentialLock', 'Bitte geben Sie ein Passwort an');
         $Error = true;
     } else {
         if (strlen($CredentialLock) >= 8) {
             $Form->setSuccess('CredentialLock', '');
         } else {
             $Form->setError('CredentialLock', 'Das Passwort muss mindestens 8 Zeichen lang sein');
             $Error = true;
         }
     }
     if (empty($CredentialLockSafety)) {
         $Form->setError('CredentialLockSafety', 'Bitte geben Sie ein Passwort an');
         $Error = true;
     }
     if ($CredentialLock != $CredentialLockSafety) {
         $Form->setError('CredentialLock', '');
         $Form->setError('CredentialLockSafety', 'Die beiden Passworte stimmen nicht überein');
         $Error = true;
     } else {
         if (!empty($CredentialLock) && !empty($CredentialLockSafety)) {
             $Form->setSuccess('CredentialLockSafety', '');
         } else {
             $Form->setError('CredentialLockSafety', '');
         }
     }
     if ($Error) {
         return $Form;
     } else {
         if (Account::useService()->changePassword($CredentialLock, $tblAccount)) {
             return new Success('Das Passwort wurde erfolgreich geändert') . new Redirect('/Setting/MyAccount', 1);
         } else {
             return new Danger('Das Passwort konnte nicht geändert werden') . new Redirect('/Setting/MyAccount', 10);
         }
     }
 }
Exemplo n.º 3
0
 /**
  * @param IFormInterface $Form
  * @param null|string    $Name
  *
  * @return IFormInterface|Redirect
  */
 public function createRole(IFormInterface $Form, $Name)
 {
     if (null !== $Name && empty($Name)) {
         $Form->setError('Name', 'Bitte geben Sie einen Namen ein');
     }
     if (!empty($Name)) {
         $Form->setSuccess('Name', 'Die Rolle wurde hinzugefügt');
         (new Data($this->Binding))->createRole($Name);
         return new Redirect('/Platform/Gatekeeper/Authorization/Access/Role', 0);
     }
     return $Form;
 }
Exemplo n.º 4
0
 /**
  * @param IFormInterface $Form
  * @param string         $CredentialName
  * @param string         $CredentialLock
  * @param string         $CredentialKey
  * @param TblIdentification $tblIdentification
  *
  * @return IFormInterface|Redirect
  */
 public function createSessionCredentialToken(IFormInterface &$Form, $CredentialName, $CredentialLock, $CredentialKey, TblIdentification $tblIdentification)
 {
     switch ($this->isCredentialValid($CredentialName, $CredentialLock, $CredentialKey, $tblIdentification)) {
         case false:
             if (null !== $CredentialName && empty($CredentialName)) {
                 $Form->setError('CredentialName', 'Bitte geben Sie einen gültigen Benutzernamen ein');
             }
             if (null !== $CredentialName && !empty($CredentialName)) {
                 $Form->setError('CredentialName', 'Bitte geben Sie einen gültigen Benutzernamen ein');
             }
             if (null !== $CredentialLock && empty($CredentialLock)) {
                 $Form->setError('CredentialLock', 'Bitte geben Sie ein gültiges Passwort ein');
             }
             if (null !== $CredentialLock && !empty($CredentialLock)) {
                 $Form->setError('CredentialLock', 'Bitte geben Sie ein gültiges Passwort ein');
             }
             break;
         case null:
             $Form->setSuccess('CredentialName', '');
             $Form->setSuccess('CredentialLock', '');
             $Form->setError('CredentialKey', 'Der von Ihnen angegebene YubiKey ist nicht gültig.' . '<br/>Bitte verwenden Sie Ihren YubiKey um dieses Feld zu befüllen');
             break;
         case true:
             return new Redirect('/', 0);
             break;
     }
     return $Form;
 }
Exemplo n.º 5
0
 /**
  * @param IFormInterface $Form
  * @param array          $Account
  *
  * @return IFormInterface
  */
 public function createAccount(IFormInterface $Form, $Account)
 {
     if (null === $Account) {
         return $Form;
     }
     $Error = false;
     $Username = trim($Account['Name']);
     $Password = trim($Account['Password']);
     $PasswordSafety = trim($Account['PasswordSafety']);
     $tblConsumer = GatekeeperConsumer::useService()->getConsumerBySession();
     if (!($tblToken = GatekeeperToken::useService()->getTokenById((int) $Account['Token']))) {
         $tblToken = null;
     }
     if (empty($Username)) {
         $Form->setError('Account[Name]', 'Bitte geben Sie einen Benutzernamen an');
         $Error = true;
     } else {
         if (preg_match('!^[a-z0-9]{5,}$!is', $Username)) {
             $Username = $tblConsumer->getAcronym() . '-' . $Username;
             if (!GatekeeperAccount::useService()->getAccountByUsername($Username)) {
                 $Form->setSuccess('Account[Name]', '');
             } else {
                 $Form->setError('Account[Name]', 'Der angegebene Benutzername ist bereits vergeben');
                 $Error = true;
             }
         } else {
             $Form->setError('Account[Name]', 'Der Benutzername darf nur Buchstaben und Zahlen enthalten und muss mindestens 5 Zeichen lang sein');
             $Error = true;
         }
     }
     if (empty($Password)) {
         $Form->setError('Account[Password]', 'Bitte geben Sie ein Passwort an');
         $Error = true;
     } else {
         if (strlen($Password) >= 8) {
             $Form->setSuccess('Account[Password]', '');
         } else {
             $Form->setError('Account[Password]', 'Das Passwort muss mindestens 8 Zeichen lang sein');
             $Error = true;
         }
     }
     if (empty($PasswordSafety)) {
         $Form->setError('Account[PasswordSafety]', 'Bitte geben Sie das Passwort erneut an');
         $Error = true;
     }
     if ($Password != $PasswordSafety) {
         $Form->setError('Account[Password]', '');
         $Form->setError('Account[PasswordSafety]', 'Die beiden Passworte stimmen nicht überein');
         $Error = true;
     } else {
         if (!empty($Password) && !empty($PasswordSafety)) {
             $Form->setSuccess('Account[PasswordSafety]', '');
         } else {
             $Form->setError('Account[PasswordSafety]', '');
         }
     }
     if (!$Error) {
         $tblAccount = GatekeeperAccount::useService()->insertAccount($Username, $Password, $tblToken, $tblConsumer);
         if ($tblAccount) {
             $tblIdentification = GatekeeperAccount::useService()->getIdentificationById($Account['Identification']);
             GatekeeperAccount::useService()->addAccountAuthentication($tblAccount, $tblIdentification);
             if (isset($Account['Role'])) {
                 foreach ((array) $Account['Role'] as $Role) {
                     $tblRole = GatekeeperAccess::useService()->getRoleById($Role);
                     GatekeeperAccount::useService()->addAccountAuthorization($tblAccount, $tblRole);
                 }
             }
             if (isset($Account['User'])) {
                 $tblPerson = Person::useService()->getPersonById($Account['User']);
                 GatekeeperAccount::useService()->addAccountPerson($tblAccount, $tblPerson);
             }
             return new Success('Das Benutzerkonnto wurde erstellt') . new Redirect('/Setting/Authorization/Account', 3);
         } else {
             return new Danger('Das Benutzerkonnto konnte nicht erstellt werden') . new Redirect('/Setting/Authorization/Account', 3);
         }
     }
     return $Form;
 }
Exemplo n.º 6
0
 /**
  * @param IFormInterface $Form
  * @param TblCompany     $tblCompany
  * @param array          $Street
  * @param array          $City
  * @param integer        $State
  * @param array          $Type
  *
  * @return IFormInterface|string
  */
 public function createAddressToCompany(IFormInterface $Form, TblCompany $tblCompany, $Street, $City, $State, $Type)
 {
     /**
      * Skip to Frontend
      */
     if (null === $Street && null === $City && null === $State) {
         return $Form;
     }
     $Error = false;
     if (isset($Street['Name']) && empty($Street['Name'])) {
         $Form->setError('Street[Name]', 'Bitte geben Sie eine Strasse an');
         $Error = true;
     } else {
         $Form->setSuccess('Street[Number]');
     }
     if (isset($Street['Number']) && empty($Street['Number'])) {
         $Form->setError('Street[Number]', 'Bitte geben Sie eine Hausnummer an');
         $Error = true;
     } else {
         $Form->setSuccess('Street[Number]');
     }
     if (isset($City['Code']) && !preg_match('!^[0-9]{5}$!is', $City['Code'])) {
         $Form->setError('City[Code]', 'Bitte geben Sie eine fünfstellige Postleitzahl ein');
         $Error = true;
     } else {
         $Form->setSuccess('City[Code]');
     }
     if (isset($City['Name']) && empty($City['Name'])) {
         $Form->setError('City[Name]', 'Bitte geben Sie einen Namen ein');
         $Error = true;
     } else {
         $Form->setSuccess('City[Name]');
     }
     if (!$Error) {
         $tblType = $this->getTypeById($Type['Type']);
         $tblState = $this->getStateById($State);
         $tblCity = (new Data($this->Binding))->createCity($City['Code'], $City['Name'], $City['District']);
         $tblAddress = (new Data($this->Binding))->createAddress($tblState, $tblCity, $Street['Name'], $Street['Number'], '');
         if ((new Data($this->Binding))->addAddressToCompany($tblCompany, $tblAddress, $tblType, $Type['Remark'])) {
             return new Success('Die Adresse wurde erfolgreich hinzugefügt') . new Redirect('/Corporation/Company', 1, array('Id' => $tblCompany->getId()));
         } else {
             return new Danger('Die Adresse konnte nicht hinzugefügt werden') . new Redirect('/Corporation/Company', 10, array('Id' => $tblCompany->getId()));
         }
     }
     return $Form;
 }
Exemplo n.º 7
0
 /**
  * @param IFormInterface $Form
  * @param string         $CredentialKey
  * @param TblConsumer    $tblConsumer
  *
  * @return bool|TblToken
  */
 public function createToken(IFormInterface $Form, $CredentialKey, TblConsumer $tblConsumer = null)
 {
     try {
         if (null !== $CredentialKey && !empty($CredentialKey)) {
             $this->isTokenValid($CredentialKey);
             if (false === $this->getTokenByIdentifier(substr($CredentialKey, 0, 12))) {
                 if ((new Data($this->Binding))->createToken(substr($CredentialKey, 0, 12), $tblConsumer)) {
                     $Form->setSuccess('CredentialKey', 'Der YubiKey wurde hinzugefügt' . new Redirect('/Sphere/Management/Token', 3));
                 }
             } else {
                 $Form->setError('CredentialKey', 'Der von Ihnen angegebene YubiKey wurde bereits registriert');
             }
         } elseif (null !== $CredentialKey && empty($CredentialKey)) {
             $Form->setError('CredentialKey', 'Bitte verwenden Sie Ihren YubiKey um dieses Feld zu befüllen');
         }
         return $Form;
     } catch (BadOTPException $E) {
         $Form->setError('CredentialKey', 'Der von Ihnen angegebene YubiKey ist nicht gültig<br/>Bitte verwenden Sie einen YubiKey um dieses Feld zu befüllen');
         return $Form;
     } catch (ReplayedOTPException $E) {
         $Form->setError('CredentialKey', 'Der von Ihnen angegebene YubiKey wurde bereits verwendet<br/>Bitte verwenden Sie einen YubiKey um dieses Feld neu zu befüllen');
         return $Form;
     } catch (ComponentException $E) {
         $Form->setError('CredentialKey', 'Der YubiKey konnte nicht überprüft werden<br/>Bitte versuchen Sie es später noch einmal');
         return $Form;
     }
 }