/**
  * Returns the list of all current groups
  *
  * @return string
  * @autoTestable
  * @permissions view
  */
 protected function actionGroupList()
 {
     if ($this->getParam("doFilter") != "") {
         $this->objSession->setSession($this->STR_GROUPFILTER_SESSION_KEY, $this->getParam("grouplist_filter"));
         $this->setParam("pv", 1);
         $this->adminReload(class_link::getLinkAdminHref($this->getArrModule("modul"), "groupList"));
         return "";
     }
     $strReturn = "";
     //add a filter-form
     $strReturn .= $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul"), "groupList"));
     $strReturn .= $this->objToolkit->formInputText("grouplist_filter", $this->getLang("group_name"), $this->objSession->getSession($this->STR_GROUPFILTER_SESSION_KEY));
     $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("userlist_filter"));
     $strReturn .= $this->objToolkit->formInputHidden("doFilter", "1");
     $strReturn .= $this->objToolkit->formClose();
     $objArraySectionIterator = new class_array_section_iterator(class_module_user_group::getObjectCount($this->objSession->getSession($this->STR_GROUPFILTER_SESSION_KEY)));
     $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1));
     $objArraySectionIterator->setArraySection(class_module_user_group::getObjectList($this->objSession->getSession($this->STR_GROUPFILTER_SESSION_KEY), $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos()));
     $strReturn .= $this->renderList($objArraySectionIterator, false, "groupList");
     return $strReturn;
 }