/** * Lists all available accounts. */ public function listAccountsCommand() { /** @var Account[] $accounts */ $accounts = $this->accountRepository->findAll()->toArray(); usort($accounts, function ($a, $b) { /** @var Account $a */ /** @var Account $b */ return $a->getAccountIdentifier() > $b->getAccountIdentifier(); }); $tableRows = []; $headerRow = ['Identifier', 'Authentication Provider', 'Role(s)']; foreach ($accounts as $account) { $tableRows[] = [$account->getAccountIdentifier(), $account->getAuthenticationProviderName(), implode(' ,', $account->getRoles())]; } $this->output->outputTable($tableRows, $headerRow); $this->outputLine(sprintf(' <b>%s accounts total.</b>', count($accounts))); }
/** * Check Bearbeiter and Account tables for content and acts as appropriate * @return int */ public function importBearbeiterAction() { /** @var \Doctrine\DBAL\Connection $sqlConnection */ $sqlConnection = $this->entityManager->getConnection(); $checkIfBearbeiterTableExists = $sqlConnection->getSchemaManager()->tablesExist('subugoe_germaniasacra_domain_model_bearbeiter'); if ($checkIfBearbeiterTableExists) { $numberOfBearbeiter = count($this->bearbeiterRepository->findAll()); } $checkIfAccountTableExists = $sqlConnection->getSchemaManager()->tablesExist('typo3_flow_security_account'); if ($checkIfAccountTableExists) { $numberOfAccounts = count($this->accountRepository->findAll()); } $nBearbeiter = 0; if ($numberOfBearbeiter == 0 && $numberOfAccounts == 0) { $nBearbeiter = $this->importAndJoinBearbeiterWithAccount(); } elseif ($numberOfBearbeiter == 0 && $numberOfAccounts != 0) { $sql = 'SET foreign_key_checks = 0'; $sqlConnection->executeUpdate($sql); $accountTbl = 'typo3_flow_security_account'; $sql = 'DELETE FROM ' . $accountTbl; $sqlConnection->executeUpdate($sql); $rolesJointTbl = 'typo3_flow_security_account_roles_join'; $sql = 'DELETE FROM ' . $rolesJointTbl; $sqlConnection->executeUpdate($sql); $sql = 'SET foreign_key_checks = 1'; $sqlConnection->executeUpdate($sql); $nBearbeiter = $this->importAndJoinBearbeiterWithAccount(); } elseif ($numberOfBearbeiter != 0 && $numberOfAccounts == 0) { $sql = 'SET foreign_key_checks = 0'; $sqlConnection->executeUpdate($sql); $bearbeiterTbl = 'subugoe_germaniasacra_domain_model_bearbeiter'; $sql = 'DELETE FROM ' . $bearbeiterTbl; $sqlConnection->executeUpdate($sql); $sql = 'SET foreign_key_checks = 1'; $sqlConnection->executeUpdate($sql); $nBearbeiter = $this->importAndJoinBearbeiterWithAccount(); } return $nBearbeiter; }