コード例 #1
0
 public function loadUserByServiceAndUser($service, $info)
 {
     if ($service == 'local') {
         return $this->em->getRepository('ActsCamdramSecurityBundle:User')->findOneById($info['id']);
     }
     $res = $this->em->createQuery('SELECT u FROM ActsCamdramSecurityBundle:User u JOIN u.identities i WHERE i.service = :service AND (i.remote_id = :id OR i.remote_user = :username)')->setParameter('service', $service)->setParameter('id', $info['id'])->setParameter('username', $info['username'])->getResult();
     if (count($res) > 0) {
         return $res[0];
     } else {
         throw new IdentityNotFoundException(sprintf('An identity cannot be found for "%s" and credentials %i/%s', $service, $info['id'], $info['username']));
     }
 }