public function noticeGroupJoiningApproved(UserGroup $userGroup)
 {
     $socialActivity = (new SocialActivity(SocialActivity::TYPE_JOIN_TO_GROUP_APPROVED, null, $userGroup->getGroup()))->setTarget(['id' => $userGroup->getGroup()->getId(), 'type' => 'group'])->setRecipient($userGroup->getUser());
     $this->em->persist($socialActivity);
     $this->em->flush($socialActivity);
     $this->pt->addToQueue('sendSocialActivity', [$socialActivity->getId()]);
     return $socialActivity;
 }
 public function joinToGroup(User $user, Group $group)
 {
     //current status Group
     $userGroup = $this->entityManager->getRepository('CivixCoreBundle:UserGroup')->isJoinedUser($group, $user);
     //check if user is joined yet and want to join
     if ($userGroup) {
         return $userGroup;
     }
     $userGroup = new UserGroup($user, $group);
     if ($user->getInvites()->contains($group)) {
         $userGroup->setStatus(UserGroup::STATUS_ACTIVE);
         $user->removeInvite($group);
     }
     $userGroup->setPermissionsByGroup($group);
     $this->entityManager->createQueryBuilder()->delete(UserToGroup::class, 'i')->where('i.user = :user AND i.group = :group')->setParameter('user', $user)->setParameter('group', $group)->getQuery()->execute();
     $this->entityManager->persist($userGroup);
     $this->entityManager->flush($userGroup);
     return $user;
 }
 public function getUserDataRow()
 {
     $this->__load();
     return parent::getUserDataRow();
 }
 /**
  * @Given /^user "([^"]*)" joined to group "([^"]*)"$/
  */
 public function userJoinedToGroup($username, $groupName)
 {
     /* @var $em EntityManager */
     $em = $this->getMainContext()->getEntityManager();
     /* @var $user User */
     $user = $em->getRepository(User::class)->findOneByUsername($username);
     /* @var $group Group */
     $group = $em->getRepository(Group::class)->findOneByUsername($groupName);
     $userGroup = new UserGroup($user, $group);
     $userGroup->setStatus(UserGroup::STATUS_ACTIVE);
     $em->persist($userGroup);
     $em->flush($userGroup);
 }