*/ class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, User::class); } /** * Used to upgrade (rehash) the user's password automatically over time. */ public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void { if (!$user instanceof User) { throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', $user::class)); } $user->setPassword($newHashedPassword); $this->getEntityManager()->persist($user); $this->getEntityManager()->flush(); } public function getCaseManagers(Company $company): array { return $this->createQueryBuilder('u') ->andWhere('u.job != :job') ->andWhere('u.company = :company') ->setParameter('job', 'CASE_WORKER') ->setParameter('company', $company->getId()->toBinary()) ->getQuery() ->getResult() ; } public function getTherapists(Company $company): array { return $this->createQueryBuilder('u') ->andWhere('u.job = :job') ->andWhere('u.company = :company') ->setParameter('job', 'THERAPIST') ->setParameter('company', $company->getId()->toBinary()) ->getQuery() ->getResult() ; } public function getAdmins(Company $company): array { return $this->createQueryBuilder('u') ->andWhere('u.job = :job') ->andWhere('u.company = :company') ->setParameter('job', 'ADMIN') ->setParameter('company', $company->getId()->toBinary()) ->getQuery() ->getResult() ; } public function getCompanyUsers(Company $company): array { return $this->createQueryBuilder('u') ->andWhere('u.company = :company') ->setParameter('company', $company->getId()->toBinary()) ->orderBy('u.name', 'ASC') ->getQuery() ->getResult() ; } // /** // * @return User[] Returns an array of User objects // */ // public function findByExampleField($value): array // { // return $this->createQueryBuilder('u') // ->andWhere('u.exampleField = :val') // ->setParameter('val', $value) // ->orderBy('u.id', 'ASC') // ->setMaxResults(10) // ->getQuery() // ->getResult() // ; // } // public function findOneBySomeField($value): ?User // { // return $this->createQueryBuilder('u') // ->andWhere('u.exampleField = :val') // ->setParameter('val', $value) // ->getQuery() // ->getOneOrNullResult() // ; // } }