Code

Updated strings
[gosa.git] / plugins / admin / groups / class_groupGeneric.inc
index 05d8181e44474bd8f1def33ad977af4391966f21..f25a036f113d683530f88d3b50aa3349dc4d83cf 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 class group extends plugin
 {
   /* CLI vars */
@@ -44,17 +45,10 @@ class group extends plugin
   var $attributes= array("cn", "description", "gidNumber","memberUid","sambaGroupType","sambaSID");
   var $objectclasses= array("top", "posixGroup");
 
-  function group ($config, $dn= NULL)
+  function group ($config, $dn= NULL, $parent= NULL)
   {
-    plugin::plugin ($config, $dn);
+    plugin::plugin ($config, $dn, $parent);
 
-    /* remove Release Tag if we have release management enabled 
-     */
-    $tmp = search_config($config->data,"faiManagement","CLASS");
-    if(!empty($tmp)){
-      $this->description = preg_replace("/\(.*\)$/","",$this->description);
-    }
-  
     /* Load attributes depending on the samba version */
     $this->samba3= ($config->current['SAMBAVERSION'] == 3);
     $this->orig_dn= $dn;
@@ -427,6 +421,7 @@ class group extends plugin
       }
     }
     if(!empty($filter)){    
+      $ldap->cd($this->config->current['BASE']);
       $ldap->search("(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))(|".$filter."))",array("uid","sn","givenName"));
       while($attrs = $ldap->fetch()){
         $this->members[$attrs['uid'][0]] = $this->createResultName($attrs);
@@ -444,7 +439,16 @@ class group extends plugin
     /* Create display list of users matching regex & filter 
      */
     $this->displayUsers = array();
-    $filter = "(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))(!(uid=*$))(|(uid=".$regex.")(sn=".$regex.")(givenName=".$regex.")))";
+
+    /* Set tag attribute if we've tagging activated */
+    $tag= "";
+    $ui= get_userinfo();
+    if ($ui->gosaUnitTag != "" && isset($this->config->current['STRICT_UNITS']) &&
+        preg_match('/TRUE/i', $this->config->current['STRICT_UNITS'])){
+      $tag= "(gosaUnitTag=".$ui->gosaUnitTag.")";
+    }
+
+    $filter = "(&(objectClass=gosaAccount)$tag(!(objectClass=gosaUserTemplate))(!(uid=*$))(|(uid=".$regex.")(sn=".$regex.")(givenName=".$regex.")))";
 
     /* Search in current tree or within subtrees depending on the checkbox from filter section */
     if($gufilter['SubSearchGroup']){
@@ -498,7 +502,7 @@ class group extends plugin
 
     $ldap= $this->config->get_ldap_link();
     $ldap->rmdir($this->dn);
-    show_ldap_error($ldap->get_error());
+    show_ldap_error($ldap->get_error(), _("Removing group failed"));
 
     /* Delete references to object groups */
     $ldap->cd ($this->config->current['BASE']);
@@ -581,24 +585,6 @@ class group extends plugin
       }
     }
   
-    /* If release management is enabled .... 
-        Append release name to description tag ..
-       #FIXME release name within description is a very bad solution, use ldap attribute instead
-     */
-    $tmp = search_config($this->config->data,"faiManagement","CLASS");
-    if(!empty($tmp)){
-      if(isset($this->parent)){
-        if(isset($this->parent->by_object['appgroup'])){
-          $baseObj = $this->parent->by_object['appgroup'];
-          if($baseObj->is_account){
-            if(isset($baseObj->Release)){
-              $this->description .= " (".trim($baseObj->Release).")";
-            }
-          }
-        }
-      }
-    }
-
     plugin::save(); 
 
     /* Remove objectClass for samba/phone support */
@@ -688,7 +674,7 @@ class group extends plugin
 
     /* Save data. Using 'modify' implies that the entry is already present, use 'add' for
        new entries. So do a check first... */
-    $ldap->cat ($this->dn);
+    $ldap->cat ($this->dn, array('dn'));
     if ($ldap->fetch()){
       /* Modify needs array() to remove values :-( */
       if (!count ($this->memberUid)){
@@ -713,7 +699,7 @@ class group extends plugin
     $ldap->$mode($this->attrs);
 
     $ret= 0;
-    if (show_ldap_error($ldap->get_error())){
+    if (show_ldap_error($ldap->get_error(), _("Saving group failed"))){
       $ret= 1;
     }