* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace FOS\UserBundle\Doctrine; use Doctrine\Common\Persistence\ObjectManager; use FOS\UserBundle\Model\GroupInterface; use FOS\UserBundle\Model\GroupManager as BaseGroupManager; class GroupManager extends BaseGroupManager { protected $objectManager; protected $class; protected $repository; public function __construct(ObjectManager $om, $class) { $this->objectManager = $om; $this->repository = $om->getRepository($class); $metadata = $om->getClassMetadata($class); $this->class = $metadata->getName(); } /** * {@inheritDoc} */ public function deleteGroup(GroupInterface $group) { $this->objectManager->remove($group); $this->objectManager->flush(); } /** * {@inheritDoc} */ public function getClass() { return $this->class; } /** * {@inheritDoc} */ public function findGroupBy(array $criteria) { return $this->repository->findOneBy($criteria); } /** * {@inheritDoc} */ public function findGroups() { return $this->repository->findAll(); } /** * Updates a group * * @param GroupInterface $group * @param Boolean $andFlush Whether to flush the changes (default true) */ public function updateGroup(GroupInterface $group, $andFlush = true) { $this->objectManager->persist($group); if ($andFlush) { $this->objectManager->flush(); } } }