cliUserExists()) { return false; } $userFields = [ 'username' => self::CLI_USERNAME, 'password' => $this->generateHashedPassword(), 'admin' => 1, 'tstamp' => $GLOBALS['EXEC_TIME'] ?? time(), 'crdate' => $GLOBALS['EXEC_TIME'] ?? time(), ]; $databaseConnection = $this->connectionPool->getConnectionForTable('be_users'); $databaseConnection->insert('be_users', $userFields); return true; } /** * Check if a user with username "_cli_" exists. Deleted users are left out * but hidden and start / endtime restricted users are considered. */ private function cliUserExists(): bool { $queryBuilder = $this->connectionPool->getQueryBuilderForTable('be_users'); $queryBuilder->getRestrictions() ->removeAll() ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); $count = $queryBuilder ->count('*') ->from('be_users') ->where($queryBuilder->expr()->eq('username', $queryBuilder->createNamedParameter(self::CLI_USERNAME))) ->executeQuery() ->fetchOne(); return (bool)$count; } /** * This function returns a salted hashed key. */ private function generateHashedPassword(): string { $cryptoService = GeneralUtility::makeInstance(Random::class); $password = $cryptoService->generateRandomBytes(20); return $this->passwordHashFactory ->getDefaultHashInstance('BE') ->getHashedPassword($password); } }