diff --git a/src/KekRozsak/FrontBundle/Entity/Group.php b/src/KekRozsak/FrontBundle/Entity/Group.php index f260510..4f07be8 100644 --- a/src/KekRozsak/FrontBundle/Entity/Group.php +++ b/src/KekRozsak/FrontBundle/Entity/Group.php @@ -48,7 +48,7 @@ class Group /** * @var KekRozsak\SecurityBundle\Entity\User $leader - * @ORM\ManyToOne(targetEntity="KekRozsak\SecurityBundle\Entity\User") + * @ORM\ManyToOne(targetEntity="KekRozsak\SecurityBundle\Entity\User", inversedBy="ledGroups") */ protected $leader; diff --git a/src/KekRozsak/SecurityBundle/Entity/User.php b/src/KekRozsak/SecurityBundle/Entity/User.php index 00c8a5b..7b649cd 100644 --- a/src/KekRozsak/SecurityBundle/Entity/User.php +++ b/src/KekRozsak/SecurityBundle/Entity/User.php @@ -27,6 +27,7 @@ class User implements UserInterface, AdvancedUserInterface { $this->groups = new ArrayCollection(); $this->roles = new ArrayCollection(); + $this->ledGroups = new ArrayCollection(); } /** @@ -348,6 +349,46 @@ class User implements UserInterface, AdvancedUserInterface return $this->groups; } + /** + * Get all groups, including led groups (which are sometimes not included + * in $groups) + * + * @return Doctrine\Common\Collections\ArrayCollection + */ + public function getAllGroups() + { + $groups = $this->ledGroups; + + $this->getGroups()->forAll(function($i, $membership) use ($groups) { + $group = $membership->getGroup(); + if ($groups->contains($group)) { + return true; + } + $groups->add($group); + return true; + }); + return $groups; + } + + /** + * Groups led by this User + * + * @var Doctrine\Common\Collections\ArrayCollection $ledGroups + * + * @ORM\OneToMany(targetEntity="KekRozsak\FrontBundle\Entity\Group", mappedBy="leader", fetch="LAZY") + */ + protected $ledGroups; + + /** + * Get ledGroups + * + * @return Doctrine\Common\Collections\ArrayCollection + */ + public function getLedGroups() + { + return $this->ledGroups; + } + /** * The Roles belonging to this User * diff --git a/src/KekRozsak/SecurityBundle/Resources/views/Default/ajaxUserdata.html.twig b/src/KekRozsak/SecurityBundle/Resources/views/Default/ajaxUserdata.html.twig index ed39943..4e87060 100644 --- a/src/KekRozsak/SecurityBundle/Resources/views/Default/ajaxUserdata.html.twig +++ b/src/KekRozsak/SecurityBundle/Resources/views/Default/ajaxUserdata.html.twig @@ -5,6 +5,46 @@