Code

Removed reload2 function, from groupManagement dialog.
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 31 Oct 2005 06:47:08 +0000 (06:47 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 31 Oct 2005 06:47:08 +0000 (06:47 +0000)
Updated reload, to support functionality of reload2.

git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@1758 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/admin/groups/class_groupManagement.inc

index 8171e55022998354d11c65629d587d3b87ce7b6b..34f248dbbd70a0ced6935273dc391f8ba476ac57 100644 (file)
@@ -463,121 +463,7 @@ class groupManagement extends plugin
     return($smarty->fetch(get_template_path('headpage.tpl', TRUE)));
   }
 
-
-
-
-
-
-
-
-function reload2()
-  {
-    /* Get config */
-    $groupfilter= get_global('groupfilter');
-
-    /* Set base for all searches */
-    $base= $groupfilter['depselect'];
-
-    /* Regex filter? */
-    if ($groupfilter['regex'] != ""){
-      $regex= $groupfilter['regex'];
-    } else {
-      $regex= "*";
-    }
-
-    /* User filter? */
-    $filter= "";
-    $error= "";
-    $error2= "";
-    $this->grouplist= array();
-
-    /* What are primary groups? */
-    $primaries= array();
-    $ldap= $this->config->get_ldap_link(TRUE);
-    $ldap->cd($base);
-    $ldap->search("(&(uid=$regex)(!(uid=*$))(objectClass=posixAccount)(gidNumber=*))", array("gidNumber", "cn"));
-    $error= $ldap->error;
-    while ($attrs= $ldap->fetch()){
-      $primaries[$attrs['gidNumber'][0]]= $attrs['cn'][0];
-    }
-
-    if ($groupfilter['primarygroups'] == "checked"){
-      $filter.= "(&(objectClass=posixGroup)(|";
-      foreach ($primaries as $gidNumber => $cn){
-        $filter.= "(gidNumber=$gidNumber)";
-      }
-      $filter.= "))";
-    } else {
-      $filter.= "(&(objectClass=posixGroup)(!(|";
-      foreach ($primaries as $gidNumber => $cn){
-        $filter.= "(gidNumber=$gidNumber)";
-      }
-      $filter.= ")))";
-    }
- /* Set filter depending on selection */
-    $sfilter= "";
-    if ($groupfilter['appgroups'] == "checked"){
-      $filter.= "(objectClass=gosaApplicationGroup)";
-    }
- if ($this->config->current['SAMBAVERSION'] == 3){
-      if ($groupfilter['primarygroups'] != "checked"){
-        $sfilter= "(objectClass=sambaGroupMapping)";
-      } elseif ($groupfilter['sambagroups'] == "checked"){
-        $filter.= "(objectClass=sambaGroupMapping)";
-      }
-    }
-
-    if ($groupfilter['mailgroups'] == "checked"){
-      $filter.= "(objectClass=gosaMailAccount)";
-    }
-    if ($groupfilter['functionalgroups'] == "checked"){
-      $ldap->cd($base);
-      $ldap->set_size_limit($_SESSION['size_limit']);
-      $ldap->search("(&(cn=$regex)(objectClass=posixGroup)(!(|(objectClass=gosaMailAccount)(objectClass=gosaApplicationGroup)$sfilter)))", array("cn",      "gidNumber", "description"));
-      $error2= $ldap->error;
-      while ($attrs= $ldap->fetch()){
-        if (!isset($primaries[$attrs['gidNumber'][0]])){
-          if (isset($attrs["description"][0])){
-            $this->grouplist[$attrs["dn"]]= $attrs["cn"][0]." [".
-              $attrs["description"][0]."]";
-          } else {
-            $this->grouplist[$attrs["dn"]]= $attrs["cn"][0];
-          }
-        }
-      }
-    }
-
-    /* Generate grouplist */
-    if ($filter != ""){
-      $filter= "(&(cn=$regex)(objectClass=posixGroup)(|$filter))";
-      if ($groupfilter['guser'] != ""){
-        $filter= "(&(|(memberUID=" . $groupfilter['guser'] . ")(cn=" . $groupfilter['guser'] . "))$filter)";
-      }
-    }
-    if ($groupfilter['subsearch'] != "checked"){
-      $res= get_list($this->ui->subtreeACL, "$filter", FALSE, $base, array("cn", "description", "gidNumber"), TRUE);
-    } else {
-      $base= get_groups_ou().$base;
-
-      $res= get_list($this->ui->subtreeACL, "$filter", FALSE, $base, array("cn", "description", "gidNumber"), TRUE);
-    }
-    if (preg_match("/size limit/i", $error) || preg_match("/size limit/i", $error2)){
-      $_SESSION['limit_exceeded']= TRUE;
-    }
-foreach ($res as $value){
-      if (isset($value["description"][0])){
-        $this->grouplist[$value["dn"]]= $value["cn"][0]." [".
-          $value["description"][0]."]";
-      } else {
-        $this->grouplist[$value["dn"]]= $value["cn"][0];
-      }
-    }
-
-    natcasesort ($this->grouplist);
-    reset ($this->grouplist);
-  }
-
-  function reload()
+  function reload($CreatePosixsList=false)
   {
     /* Get config */
     $groupfilter= get_global('groupfilter');
@@ -639,22 +525,27 @@ foreach ($res as $value){
      * We also need to search for the departments
      * So we are able to navigate like in konquerer
      */
-    $res3 =  get_list2($this->ui->subtreeACL, "(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))",
-                              FALSE, $base, array("ou", "description"), TRUE);
-
-    $this->departments= array();
-    $tmp = array();
-    foreach ($res3 as $value){
-      $tmp[strtolower($value['dn']).$value['dn']]=$value;
-    }
-    ksort($tmp);
-    foreach($tmp as $value){
-      if($value["description"][0]!=".."){
-        $this->departments[$value['dn']]=convert_department_dn2($value['dn'])." - [".$value["description"][0]."]";
-      }else{
-        $this->departments[$value['dn']]=$value["description"][0];
+
+    /* Only needed if we are in GroupManagement */
+    if(!$CreatePosixsList){
+      $res3 =  get_list2($this->ui->subtreeACL, "(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))",
+          FALSE, $base, array("ou", "description"), TRUE);
+      $this->departments= array();
+      $tmp = array();
+      foreach ($res3 as $value){
+        $tmp[strtolower($value['dn']).$value['dn']]=$value;
+      }
+      ksort($tmp);
+      foreach($tmp as $value){
+        if($value["description"][0]!=".."){
+          $this->departments[$value['dn']]=convert_department_dn2($value['dn'])." - [".$value["description"][0]."]";
+        }else{
+          $this->departments[$value['dn']]=$value["description"][0];
+        }
       }
     }
+    /*  Ende department generation
+     */
 
     /* Generate grouplist */
     if ($filter != ""){
@@ -663,6 +554,9 @@ foreach ($res as $value){
         $filter= "(&(|(memberUID=" . $groupfilter['guser'] . ")(cn=" . $groupfilter['guser'] . "))$filter)";
       }
     }
+
+    /* Depending on $CreatePosixsList we have to create different lists */
+
     if ($groupfilter['subsearch'] == "checked"){
       $res= get_list($this->ui->subtreeACL, "$filter", FALSE, $base, array("cn", "description", "gidNumber"), TRUE);
     } else {
@@ -687,15 +581,40 @@ foreach ($res as $value){
     }
 
     $tmp=array();
-    foreach($this->grouplist as $tkey => $val ){
-      $tmp[strtolower($val['cn'][0]).$val['cn'][0]]=$val;
-    }
-    ksort($tmp);
-    $this->grouplist=array();
-    foreach($tmp as $val){
-      $this->grouplist[]=$val;
+
+    /* If true ; this result is used for posix tab, group membership selection. */
+    if($CreatePosixsList){
+
+      /* Addd to array */
+      foreach($this->grouplist as $tkey => $val ){
+        $tmp[strtolower($val['cn'][0]).$val['cn'][0]]=$val;
+      }
+      
+      /* Sort index */
+      ksort($tmp);
+
+      /* Recreate index array[dn]=cn[description]*/
+      $this->grouplist=array();
+      foreach($tmp as $val){
+        if(isset($val['description'])){
+          $this->grouplist[$val['dn']]=$val['cn'][0]."&nbsp;[".$val['description'][0]."]";
+        }else{
+          $this->grouplist[$val['dn']]=$val['cn'][0];
+        }
+      }
+    }else{
+  
+      /* Create result for group management listbox*/
+      foreach($this->grouplist as $tkey => $val ){
+        $tmp[strtolower($val['cn'][0]).$val['cn'][0]]=$val;
+      }
+      ksort($tmp);
+      $this->grouplist=array();
+      foreach($tmp as $val){
+        $this->grouplist[]=$val;
+      }
+      reset ($this->grouplist);
     }
-    reset ($this->grouplist);
   }
 
   function remove_from_parent()