Ejemplo n.º 1
0
 /**
  * Gets all the User Group names of the groups this user belongs to.
  *
  * @access public
  * @return array An array of User Group names.
  */
 public function getUserGroupNames()
 {
     $groupNames = array();
     $id = $this->get('id') ? (string) $this->get('id') : '0';
     if (isset($_SESSION["modx.user.{$id}.userGroupNames"]) && $this->xpdo->user->get('id') == $this->get('id')) {
         $groupNames = $_SESSION["modx.user.{$id}.userGroupNames"];
     } else {
         $memberGroups = $this->xpdo->getCollectionGraph('modUserGroup', '{"UserGroupMembers":{}}', array('UserGroupMembers.member' => $this->get('id')));
         if ($memberGroups) {
             /** @var modUserGroup $group */
             foreach ($memberGroups as $group) {
                 $groupNames[] = $group->get('name');
             }
         }
         $_SESSION["modx.user.{$id}.userGroupNames"] = $groupNames;
     }
     return $groupNames;
 }