public function run() { $dql = "SELECT COUNT(u) FROM PartKeepr\\User\\User u WHERE u.username = :username OR u.admin = :admin"; $query = $this->entityManager->createQuery($dql); $query->setParameter("username", "admin"); $query->setParameter("admin", true); if ($query->getSingleScalarResult() == 0) { $user = new User(); $user->setUsername("admin"); $user->setPassword("admin"); $user->setAdmin(true); $this->entityManager->persist($user); $this->entityManager->flush(); $this->logMessage("Admin User created"); } else { $this->logMessage("Skipped admin user creation, because an user named 'admin'" . "or another user with an admin flag already exists"); } }
/** * Initializes a bootstrapped PartKeepr environment. * * This is done within a function because we don't want to pollute the globals, which would give the following message * during unit tests: * * "PDOException: You cannot serialize or unserialize PDO instances" */ function initializeEnvironment() { PartKeepr::initialize("test"); $tool = new \Doctrine\ORM\Tools\SchemaTool(PartKeepr::getEM()); $classes = PartKeepr::getClassMetaData(); $tool->dropDatabase(); $tool->createSchema($classes); /* Some very basic installation things */ PartCategoryManager::getInstance()->ensureRootExists(); /* Create a blank admin user */ $user = new User(); $user->setUsername("admin"); $user->setPassword("admin"); $user->setAdmin(true); PartKeepr::getEM()->persist($user); /* Create a blank regular user */ $user2 = new User(); $user2->setUsername("regular"); $user2->setPassword("regular"); $user2->setAdmin(false); PartKeepr::getEM()->persist($user2); PartKeepr::getEM()->flush(); }