// } // $rightWhiteDNs[rtrim($dn)] = true; $doctrineUser = new User(); $doctrineUser->setForename((string) $user->FORENAME); $doctrineUser->setSurname((string) $user->SURNAME); $doctrineUser->setTitle((string) $user->TITLE); $doctrineUser->setEmail((string) $user->EMAIL); $doctrineUser->setTelephone((string) $user->TEL); $doctrineUser->setWorkingHoursStart((string) $user->WORKING_HOURS_START); $doctrineUser->setWorkingHoursEnd((string) $user->WORKING_HOURS_END); //$doctrineUser->setCertificateDn((string) $user->CERTDN); $doctrineUser->setCertificateDn($dn); $doctrineUser->setAdmin(false); // echo "DN is " . (string) $doctrineUser->getCertificateDn() . ".\r\n"; // Roughly half of users don't have a home site set if ($user->HOMESITE != "" && !isBad($user->HOMESITE)) { // get the home site entity $dql = "SELECT s from Site s WHERE s.shortName = ?1"; $homeSites = $entityManager->createQuery($dql)->setParameter(1, (string) $user->HOMESITE)->getResult(); /* Error checking: ensure each "home site" refers to exactly * one home site */ if (count($homeSites) !== 1) { throw new Exception(count($homeSites) . " sites found with short name: " . $user->HOMESITE . ". user DN is " . $user->CERTDN); } foreach ($homeSites as $result) { $homeSite = $result; } $doctrineUser->setHomeSiteDoJoin($homeSite); } //Make Dave an admin if ($doctrineUser->getCertificateDn() == "/C=UK/O=eScience/OU=CLRC/L=DL/CN=david meredith") {
// * one user */ if (count($users) !== 1) { foreach ($users as $u) { echo "Certificate DN is " . $u->getCertificateDn() . "-------"; } throw new Exception(count($users) . " users found with DN: " . $user->CERTDN); } foreach ($users as $doctrineUser) { $doctrineUser = $doctrineUser; } if (!$doctrineUser instanceof User) { throw new Exception("Not a doctrine user"); } // Check for invalid sites and skip adding this role // typically these sites don't have an NGI, country or production status if (isBad((string) $role->ON_ENTITY)) { continue; } // get the site entity $dql = "SELECT s FROM Site s WHERE s.shortName = ?1"; $sites = $entityManager->createQuery($dql)->setParameter(1, (string) $role->ON_ENTITY)->getResult(); // /* Error checking: ensure each "site" refers to exactly // * one site */ if (count($sites) !== 1) { throw new Exception(count($sites) . " sites found with short name: " . $role->ON_ENTITY); } foreach ($sites as $doctrineSite) { $doctrineSite = $doctrineSite; } if (!$doctrineSite instanceof Site) { throw new Exception("Not a doctrine site");