use FOS\UserBundle\Model\Group as BaseGroup;
use Doctrine\ORM\Mapping as ORM;
+use Wallabag\UserBundle\Entity\User;
/**
* @ORM\Entity
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
+
+ /**
+ * @ORM\ManyToMany(targetEntity="Wallabag\UserBundle\Entity\User", mappedBy="groups", cascade={"persist"})
+ */
+ protected $users;
+
+ public function getUsers()
+ {
+ return $this->users ?: $this->users = new ArrayCollection();
+ }
+
+ public function addUser(User $user)
+ {
+ if (!$this->getUsers()->contains($user)) {
+ $this->getUsers()->add($user);
+ }
+
+ return $this;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function removeUser(User $user)
+ {
+ if ($this->getUsers()->contains($user)) {
+ $this->getUsers()->removeElement($user);
+ }
+
+ return $this;
+ }
+
+ public function __toString()
+ {
+ return $this->getName();
+ }
}
namespace Wallabag\GroupBundle\Form;
+use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
'required' => false,
'label' => 'group.form.name_label',
])
+ ->add('users', EntityType::class, array(
+ 'class' => 'WallabagUserBundle:User',
+ 'choice_label' => 'username',
+ 'multiple' => true,
+ 'expanded' => true,
+ ))
->add('save', SubmitType::class, [
'label' => 'group.form.save',
])
</div>
</div>
+ <div class="row">
+ <div class="input-field col s12">
+ {{ form_label(edit_form.users) }}
+ {{ form_errors(edit_form.users) }}
+ {{ form_widget(edit_form.users) }}
+ </div>
+ </div>
+
<br/>
{{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
private $authCode;
/**
- * @ORM\ManyToMany(targetEntity="Wallabag\GroupBundle\Entity\Group")
+ * @ORM\ManyToMany(targetEntity="Wallabag\GroupBundle\Entity\Group", inversedBy="users")
* @ORM\JoinTable(name="user_group",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
if (!empty($this->clients)) {
return $this->clients->first();
}
+
+ }
+
+ /**
+ * @param string $name
+ * @return bool
+ */
+ public function hasGroup($name = '')
+ {
+ return in_array($name, $this->getGroupNames());
}
}