Code

Fixed "drop filter" bug in group dialog
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 1 Jun 2005 08:56:30 +0000 (08:56 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 1 Jun 2005 08:56:30 +0000 (08:56 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@572 594d385d-05f5-0310-b6e9-bd551577e9d8

TODO
plugins/admin/groups/class_groupMail.inc
plugins/admin/groups/class_groupManagement.inc
plugins/admin/ogroups/class_ogroupManagement.inc

diff --git a/TODO b/TODO
index e3fdbe65ed1b43764cccc4095c7ca03e95196283..91caf6cf5f98da44c371335bc03bebe0083a1176 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,14 +6,13 @@ Things to fix before 2.4:
   - shared folders
   - Kolab disabled -> check. Check is_account!
 
-* Found bug with session filter of group dialog
-
-
 Target for 2.5:
 ===============
 
 * Complete PHP5 compliance
 
+* Remove smarty from SVN. It has an own repository.
+
 * Replace PHP IMAP module by self made module
 
 * Add possibility to add referrals in department dialog
index 97bd4a53c173a3f9e9aad09baea5d727222f1714..f9a941b1a438d96f47f7a397b46b709441398993 100644 (file)
@@ -129,13 +129,13 @@ class mailgroup extends plugin
     }
 
     /* Get global filter config */
-    if (!is_global("mailfilter")){
+    if (!is_global("gmailfilter")){
       $ui= get_userinfo();
       $base= get_base_from_people($ui->dn);
-      $mailfilter= array( "depselect"       => $base,
+      $gmailfilter= array( "depselect"       => $base,
           "muser"            => "",
           "regex"           => "*");
-      register_global("mailfilter", $mailfilter);
+      register_global("gmailfilter", $gmailfilter);
     }
 
     /* Load permissions */
@@ -300,10 +300,10 @@ class mailgroup extends plugin
       $ldap= $this->config->get_ldap_link();
 
       /* Save data */
-      $mailfilter= get_global("mailfilter");
+      $gmailfilter= get_global("gmailfilter");
       foreach( array("depselect", "muser", "regex") as $type){
         if (isset($_POST[$type])){
-          $mailfilter[$type]= $_POST[$type];
+          $gmailfilter[$type]= $_POST[$type];
         }
       }
       if (isset($_GET['search'])){
@@ -311,20 +311,20 @@ class mailgroup extends plugin
         if ($s == "**"){
           $s= "*";
         }
-        $mailfilter['regex']= $s;
+        $gmailfilter['regex']= $s;
       }
-      register_global("mailfilter", $mailfilter);
+      register_global("gmailfilter", $gmailfilter);
 
       /* Get actual list */
       $mailusers= array ();
-      if ($mailfilter['regex'] != '*' && $mailfilter['regex'] != ""){
-        $regex= $mailfilter['regex'];
+      if ($gmailfilter['regex'] != '*' && $gmailfilter['regex'] != ""){
+        $regex= $gmailfilter['regex'];
         $filter= "(|(mail=$regex)(gosaMailAlternateAddress=$regex))";
       } else {
         $filter= "";
       }
-      if ($mailfilter['muser'] != ""){
-        $user= $mailfilter['muser'];
+      if ($gmailfilter['muser'] != ""){
+        $user= $gmailfilter['muser'];
         $filter= "$filter(|(uid=$user)(cn=$user)(givenName=$user)(sn=$user))";
       }
 
@@ -338,8 +338,8 @@ class mailgroup extends plugin
       }
 
       $acl= array($this->config->current['BASE'] => ":all");
-      $res= get_list($acl, "(&(objectClass=gosaMailAccount)$filter)", TRUE, $mailfilter['depselect'], array("sn", "mail", "givenName"), TRUE);
-      $ldap->cd($mailfilter['depselect']);
+      $res= get_list($acl, "(&(objectClass=gosaMailAccount)$filter)", TRUE, $gmailfilter['depselect'], array("sn", "mail", "givenName"), TRUE);
+      $ldap->cd($gmailfilter['depselect']);
       $ldap->search ("(&(objectClass=gosaMailAccount)$filter)", array("sn", "mail", "givenName"));
       error_reporting (0);
       while ($attrs= $ldap->fetch()){
@@ -365,7 +365,7 @@ class mailgroup extends plugin
       $smarty->assign("alphabet", generate_alphabet());
       $smarty->assign("hint", print_sizelimit_warning());
       foreach( array("depselect", "muser", "regex") as $type){
-        $smarty->assign("$type", $mailfilter[$type]);
+        $smarty->assign("$type", $gmailfilter[$type]);
       }
       $smarty->assign("hint", print_sizelimit_warning());
       $display.= $smarty->fetch (get_template_path('mail_locals.tpl', TRUE));
index 52ff0fe26dae8d9957e61a2447115fef4266a591..080f38a6b186ba2a3d69bcb8cb5d11907f3b1b71 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /*
-  This code is part of GOsa (https://gosa.gonicus.de)
-  Copyright (C) 2003  Cajus Pollmeier
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2003  Cajus Pollmeier
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
 require "tabs_group.inc";
 
 class groupManagement extends plugin
@@ -33,360 +33,362 @@ class groupManagement extends plugin
 
   function groupManagement ($config, $ui)
   {
-       /* Save configuration for internal use */
-       $this->config= $config;
-       $this->ui= $ui;
-
-       /* Get global filter config */
-       if (!is_global("groupfilter")){
-               $base= get_base_from_people($ui->dn);
-               $groupfilter= array("primarygroups" => "checked",
-                                       "mailgroups" => "checked",
-                                       "sambagroups" => "checked",
-                                       "appgroups" => "checked",
-                                       "functionalgroups" => "checked",
-                                       "guser" => "*",
-                                       "subsearch" => "",
-                                       "depselect" => $base,
-                                       "regex" => "*");
-               register_global("groupfilter", $groupfilter);
-       }
+    /* Save configuration for internal use */
+    $this->config= $config;
+    $this->ui= $ui;
+
+    /* Get global filter config */
+    if (!is_global("groupfilter")){
+      $base= get_base_from_people($ui->dn);
+      $groupfilter= array("primarygroups" => "checked",
+          "mailgroups" => "checked",
+          "sambagroups" => "checked",
+          "appgroups" => "checked",
+          "functionalgroups" => "checked",
+          "guser" => "*",
+          "subsearch" => "",
+          "depselect" => $base,
+          "regex" => "*");
+      register_global("groupfilter", $groupfilter);
+    }
   }
 
   function execute()
   {
-       /* Save data */
-       $groupfilter= get_global("groupfilter");
-       foreach( array("depselect", "guser", "regex") as $type){
-               if (isset($_POST[$type])){
-                       $groupfilter[$type]= $_POST[$type];
-               } 
-       }
-       if (isset($_POST['depselect'])){
-               foreach( array("primarygroups", "sambagroups", "mailgroups", "appgroups",
-                               "functionalgroups", "subsearch") as $type){
-
-                       if (isset($_POST[$type])) {
-                               $groupfilter[$type]= "checked";
-                       } else {
-                               $groupfilter[$type]= "";
-                       }
-               }
-       }
-        if (isset($_GET['search'])){
-               $s= mb_substr($_GET['search'], 0, 1, "UTF8")."*";
-                if ($s == "**"){
-                        $s= "*";
-                }
-                $groupfilter['regex']= $s;
+    /* Save data */
+    $groupfilter= get_global("groupfilter");
+    if (isset($_POST['ignore'])){
+      foreach( array("depselect", "guser", "regex") as $type){
+        if (isset($_POST[$type])){
+          $groupfilter[$type]= $_POST[$type];
+        } 
+      }
+      if (isset($_POST['depselect'])){
+        foreach( array("primarygroups", "sambagroups", "mailgroups", "appgroups",
+              "functionalgroups", "subsearch") as $type){
+
+          if (isset($_POST[$type])) {
+            $groupfilter[$type]= "checked";
+          } else {
+            $groupfilter[$type]= "";
+          }
         }
-       register_global("groupfilter", $groupfilter);
-
-       $smarty= get_smarty();
-
-       /* Prepare formular */
-       if (!isset($this->grouptab) &&
-            !isset($_POST['new_group']) &&
-            !isset($_POST['delete_group']) &&
-            !isset($_POST['select_group'])){
-               $this->reload();
-       }
-
-        /* Check for exeeded sizelimit */
-        if (($message= check_sizelimit()) != ""){
-                return($message);
+      }
+      if (isset($_GET['search'])){
+        $s= mb_substr($_GET['search'], 0, 1, "UTF8")."*";
+        if ($s == "**"){
+          $s= "*";
+        }
+        $groupfilter['regex']= $s;
+      }
+      register_global("groupfilter", $groupfilter);
+    }
+
+    $smarty= get_smarty();
+
+    /* Prepare formular */
+    if (!isset($this->grouptab) &&
+        !isset($_POST['new_group']) &&
+        !isset($_POST['delete_group']) &&
+        !isset($_POST['select_group'])){
+      $this->reload();
+    }
+
+    /* Check for exeeded sizelimit */
+    if (($message= check_sizelimit()) != ""){
+      return($message);
+    }
+
+    /* New group? */
+    if (isset($_POST['new_group'])){
+
+      /* By default we set 'dn' to 'new', all relevant plugins will
+         react on this. */
+      $this->dn= "new";
+
+      /* Create new usertab object */
+      $this->grouptab= new grouptabs($this->config,
+          $this->config->data['TABS']['GROUPTABS'], $this->dn);
+      $this->grouptab->set_acl(array(':all'));
+    }
+
+    /* Cancel dialogs */
+    if (isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
+      del_lock ($this->grouptab->dn);
+      unset ($this->grouptab);
+      $this->grouptab= NULL;
+      unset($_SESSION['objectinfo']);
+    }
+
+    /* Finish group edit is triggered by the tabulator dialog, so
+       the user wants to save edited data. Check and save at this
+       point. */
+    if (isset($_POST['edit_finish'])){
+
+      /* Check tabs, will feed message array */
+      $message= $this->grouptab->check();
+
+      /* Save, or display error message? */
+      if (count($message) == 0){
+
+        /* Save user data to ldap */
+        $this->grouptab->save();
+        gosa_log ("Group object'".$this->dn."' has been saved");
+
+        /* Group has been saved successfully, remove lock from
+           LDAP. */
+        if ($this->dn != "new"){
+          del_lock ($this->dn);
         }
 
-       /* New group? */
-       if (isset($_POST['new_group'])){
-
-               /* By default we set 'dn' to 'new', all relevant plugins will
-                  react on this. */
-               $this->dn= "new";
-
-               /* Create new usertab object */
-               $this->grouptab= new grouptabs($this->config,
-                               $this->config->data['TABS']['GROUPTABS'], $this->dn);
-               $this->grouptab->set_acl(array(':all'));
-       }
-
-       /* Cancel dialogs */
-       if (isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
-               del_lock ($this->grouptab->dn);
-               unset ($this->grouptab);
-               $this->grouptab= NULL;
-               unset($_SESSION['objectinfo']);
-       }
-
-       /* Finish group edit is triggered by the tabulator dialog, so
-          the user wants to save edited data. Check and save at this
-          point. */
-       if (isset($_POST['edit_finish'])){
-
-               /* Check tabs, will feed message array */
-               $message= $this->grouptab->check();
-
-               /* Save, or display error message? */
-               if (count($message) == 0){
-
-                       /* Save user data to ldap */
-                       $this->grouptab->save();
-                       gosa_log ("Group object'".$this->dn."' has been saved");
-
-                       /* Group has been saved successfully, remove lock from
-                          LDAP. */
-                       if ($this->dn != "new"){
-                               del_lock ($this->dn);
-                       }
-
-                       /* There's no page reload so we have to read new users at
-                          this point. */
-                       $this->reload ();
-                       unset ($this->grouptab);
-                       $this->grouptab= NULL;
-                       unset ($_SESSION['objectinfo']);
-
-               } else {
-                       /* Ok. There seem to be errors regarding to the tab data,
-                          show message and continue as usual. */
-                       show_errors($message);
-               }
-       }
-
-       /* User wants to edit data? */
-       if ((isset($_POST['select_group']) || (isset($_POST['edit_helper']) && $_POST['edit_helper'] == "1")) && isset($_POST['grouplist']) && $_POST['grouplist'] != ""){
-
-               /* Get 'dn' from posted 'uid', must be unique */
-               $this->dn= trim($_POST['grouplist']);
-
-               /* Check locking, save current plugin in 'back_plugin', so
-                  the dialog knows where to return. */
-               if (($user= get_lock($this->dn)) != ""){
-                       return(gen_locked_message ($user, $this->dn));
-               }
-
-               /* Lock the current entry, so everyone will get the
-                  above dialog */
-               add_lock ($this->dn, $this->ui->dn);
-
-               /* Set up the users ACL's for this 'dn' */
-               $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
-
-               /* Register grouptab to trigger edit dialog */
-               $this->grouptab= new grouptabs($this->config,
-                               $this->config->data['TABS']['GROUPTABS'], $this->dn);
-               $this->grouptab->set_acl($acl);
-               $_SESSION['objectinfo']= $this->dn;
-       }
-
-       /* Remove user was requested */
-       if (isset($_POST['delete_group']) && isset($_POST['grouplist'])){
-
-               /* Get 'dn' from posted 'uid' */
-               $this->dn= trim($_POST['grouplist']);
-
-               /* Load permissions for selected 'dn' and check if
-                  we're allowed to remove this 'dn' */
-               $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
-               $this->acl= get_module_permission($acl, "group", $this->dn);
-               if (chkacl($this->acl, "delete") == ""){
-
-                       /* Check locking, save current plugin in 'back_plugin', so
-                          the dialog knows where to return. */
-                       if (($user= get_lock($this->dn)) != ""){
-                               return(gen_locked_message ($user, $this->dn));
-                       }
-
-                       /* Lock the current entry, so nobody will edit it during deletion */
-                       add_lock ($this->dn, $this->ui->dn);
-                       $smarty->assign("info", sprintf(_("You're about to delete the group '%s'."), $this->dn));
-                       return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
-               } else {
-
-                       /* Obviously the user isn't allowed to delete. Show message and
-                          clean session. */
-                       print_red (_("You are not allowed to delete this group!"));
-               }
-       }
-
-       /* Confirmation for deletion has been passed. Group should be deleted. */
-       if (isset($_POST['delete_group_confirm'])){
-
-               /* Some nice guy may send this as POST, so we've to check
-                  for the permissions again. */
-               if (chkacl($this->acl, "delete") == ""){
-
-                       /* Delete request is permitted, perform LDAP action */
-                       $this->grouptab= new grouptabs($this->config,
-                                       $this->config->data['TABS']['GROUPTABS'], $this->dn);
-                       $this->grouptab->set_acl(array($this->acl));
-                       $this->grouptab->delete ();
-                       gosa_log ("Group object'".$this->dn."' has been removed");
-                       unset ($this->grouptab);
-                       $this->grouptab= NULL;
-
-                       /* Group list has changed, reload it. */
-                       $this->reload ();
-               } else {
-
-                       /* Normally this shouldn't be reached, send some extra
-                          logs to notify the administrator */
-                       print_red (_("You are not allowed to delete this group!"));
-                       gosa_log ("Warning: '".$this->ui->uid."' tried to trick group deletion.");
-               }
-
-               /* Remove lock file after successfull deletion */
-               del_lock ($this->dn);
-               unset($_SESSION['objectinfo']);
-       }
-
-
-       /* Delete group canceled? */
-       if (isset($_POST['delete_cancel'])){
-               del_lock ($this->dn);
-               unset($_SESSION['objectinfo']);
-       }
-
-        /* Show tab dialog if object is present */
-        if ($this->grouptab){
-                $display= $this->grouptab->execute();
-
-                /* Don't show buttons if tab dialog requests this */
-                if (!$this->grouptab->by_object[$this->grouptab->current]->dialog){
-                        $display.= "<p style=\"text-align:right\">\n";
-                        $display.= "<input type=submit name=\"edit_finish\" value=\""._("Finish")."\">\n";
-                        $display.= "&nbsp;\n";
-                        $display.= "<input type=submit name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
-                        $display.= "</p>";
-                }
-                return ($display);
+        /* There's no page reload so we have to read new users at
+           this point. */
+        $this->reload ();
+        unset ($this->grouptab);
+        $this->grouptab= NULL;
+        unset ($_SESSION['objectinfo']);
+
+      } else {
+        /* Ok. There seem to be errors regarding to the tab data,
+           show message and continue as usual. */
+        show_errors($message);
+      }
+    }
+
+    /* User wants to edit data? */
+    if ((isset($_POST['select_group']) || (isset($_POST['edit_helper']) && $_POST['edit_helper'] == "1")) && isset($_POST['grouplist']) && $_POST['grouplist'] != ""){
+
+      /* Get 'dn' from posted 'uid', must be unique */
+      $this->dn= trim($_POST['grouplist']);
+
+      /* Check locking, save current plugin in 'back_plugin', so
+         the dialog knows where to return. */
+      if (($user= get_lock($this->dn)) != ""){
+        return(gen_locked_message ($user, $this->dn));
+      }
+
+      /* Lock the current entry, so everyone will get the
+         above dialog */
+      add_lock ($this->dn, $this->ui->dn);
+
+      /* Set up the users ACL's for this 'dn' */
+      $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
+
+      /* Register grouptab to trigger edit dialog */
+      $this->grouptab= new grouptabs($this->config,
+          $this->config->data['TABS']['GROUPTABS'], $this->dn);
+      $this->grouptab->set_acl($acl);
+      $_SESSION['objectinfo']= $this->dn;
+    }
+
+    /* Remove user was requested */
+    if (isset($_POST['delete_group']) && isset($_POST['grouplist'])){
+
+      /* Get 'dn' from posted 'uid' */
+      $this->dn= trim($_POST['grouplist']);
+
+      /* Load permissions for selected 'dn' and check if
+         we're allowed to remove this 'dn' */
+      $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
+      $this->acl= get_module_permission($acl, "group", $this->dn);
+      if (chkacl($this->acl, "delete") == ""){
+
+        /* Check locking, save current plugin in 'back_plugin', so
+           the dialog knows where to return. */
+        if (($user= get_lock($this->dn)) != ""){
+          return(gen_locked_message ($user, $this->dn));
         }
 
-       /* Show main page */
-        $smarty->assign("grouplist", $this->grouplist);
-       $smarty->assign("search_image", get_template_path('images/search.png'));
-       $smarty->assign("tree_image", get_template_path('images/tree.png'));
-        $smarty->assign("infoimage", get_template_path('images/info.png'));
-        $smarty->assign("launchimage", get_template_path('images/launch.png'));
-        $smarty->assign("deplist", $this->config->idepartments);
-       foreach( array("depselect", "guser", "regex", "primarygroups", "mailgroups",
-                       "appgroups", "sambagroups", "functionalgroups", "subsearch") as $type){
-
-               $smarty->assign("$type", $groupfilter[$type]);
-       }
-
-       /* Extend if we are not using javascript */
-       $smarty->assign("apply", apply_filter());
-       $smarty->assign("alphabet", generate_alphabet());
-       $smarty->assign("hint", print_sizelimit_warning());
-       
-       return($smarty->fetch(get_template_path('headpage.tpl', TRUE)));
+        /* Lock the current entry, so nobody will edit it during deletion */
+        add_lock ($this->dn, $this->ui->dn);
+        $smarty->assign("info", sprintf(_("You're about to delete the group '%s'."), $this->dn));
+        return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
+      } else {
+
+        /* Obviously the user isn't allowed to delete. Show message and
+           clean session. */
+        print_red (_("You are not allowed to delete this group!"));
+      }
+    }
+
+    /* Confirmation for deletion has been passed. Group should be deleted. */
+    if (isset($_POST['delete_group_confirm'])){
+
+      /* Some nice guy may send this as POST, so we've to check
+         for the permissions again. */
+      if (chkacl($this->acl, "delete") == ""){
+
+        /* Delete request is permitted, perform LDAP action */
+        $this->grouptab= new grouptabs($this->config,
+            $this->config->data['TABS']['GROUPTABS'], $this->dn);
+        $this->grouptab->set_acl(array($this->acl));
+        $this->grouptab->delete ();
+        gosa_log ("Group object'".$this->dn."' has been removed");
+        unset ($this->grouptab);
+        $this->grouptab= NULL;
+
+        /* Group list has changed, reload it. */
+        $this->reload ();
+      } else {
+
+        /* Normally this shouldn't be reached, send some extra
+           logs to notify the administrator */
+        print_red (_("You are not allowed to delete this group!"));
+        gosa_log ("Warning: '".$this->ui->uid."' tried to trick group deletion.");
+      }
+
+      /* Remove lock file after successfull deletion */
+      del_lock ($this->dn);
+      unset($_SESSION['objectinfo']);
+    }
+
+
+    /* Delete group canceled? */
+    if (isset($_POST['delete_cancel'])){
+      del_lock ($this->dn);
+      unset($_SESSION['objectinfo']);
+    }
+
+    /* Show tab dialog if object is present */
+    if ($this->grouptab){
+      $display= $this->grouptab->execute();
+
+      /* Don't show buttons if tab dialog requests this */
+      if (!$this->grouptab->by_object[$this->grouptab->current]->dialog){
+        $display.= "<p style=\"text-align:right\">\n";
+        $display.= "<input type=submit name=\"edit_finish\" value=\""._("Finish")."\">\n";
+        $display.= "&nbsp;\n";
+        $display.= "<input type=submit name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
+        $display.= "</p>";
+      }
+      return ($display);
+    }
+
+    /* Show main page */
+    $smarty->assign("grouplist", $this->grouplist);
+    $smarty->assign("search_image", get_template_path('images/search.png'));
+    $smarty->assign("tree_image", get_template_path('images/tree.png'));
+    $smarty->assign("infoimage", get_template_path('images/info.png'));
+    $smarty->assign("launchimage", get_template_path('images/launch.png'));
+    $smarty->assign("deplist", $this->config->idepartments);
+    foreach( array("depselect", "guser", "regex", "primarygroups", "mailgroups",
+          "appgroups", "sambagroups", "functionalgroups", "subsearch") as $type){
+
+      $smarty->assign("$type", $groupfilter[$type]);
+    }
+
+    /* Extend if we are not using javascript */
+    $smarty->assign("apply", apply_filter());
+    $smarty->assign("alphabet", generate_alphabet());
+    $smarty->assign("hint", print_sizelimit_warning());
+
+    return($smarty->fetch(get_template_path('headpage.tpl', TRUE)));
   }
 
 
   function reload()
   {
-       /* 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.= "))";
-       }
-
-       /* Set filter depending on selection */
-       if ($groupfilter['appgroups'] == "checked"){
-               $filter.= "(objectClass=gosaApplicationGroup)";
-       }
-       if ($this->config->current['SAMBAVERSION'] == 3){
-               $sfilter= "(objectClass=sambaGroupMapping)";
-               if ($groupfilter['sambagroups'] == "checked"){
-                       $filter.= "(objectClass=sambaGroupMapping)";
-               }
-       } else {
-               $sfilter= "";
-       }
-       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", TRUE, $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);
+    /* 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.= "))";
+    }
+
+    /* Set filter depending on selection */
+    if ($groupfilter['appgroups'] == "checked"){
+      $filter.= "(objectClass=gosaApplicationGroup)";
+    }
+    if ($this->config->current['SAMBAVERSION'] == 3){
+      $sfilter= "(objectClass=sambaGroupMapping)";
+      if ($groupfilter['sambagroups'] == "checked"){
+        $filter.= "(objectClass=sambaGroupMapping)";
+      }
+    } else {
+      $sfilter= "";
+    }
+    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", TRUE, $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 remove_from_parent()
   {
-       /* Optionally execute a command after we're done */
-       $this->postremove();
+    /* Optionally execute a command after we're done */
+    $this->postremove();
   }
 
 
@@ -405,8 +407,8 @@ class groupManagement extends plugin
   /* Save to LDAP */
   function save()
   {
-       /* Optionally execute a command after we're done */
-       $this->postcreate();
+    /* Optionally execute a command after we're done */
+    $this->postcreate();
   }
 
   function adapt_from_template($dn)
@@ -423,11 +425,12 @@ class groupManagement extends plugin
 
   function remove_lock()
   {
-       if (isset($this->grouptab->dn)){
-               del_lock ($this->grouptab->dn);
-       }
+    if (isset($this->grouptab->dn)){
+      del_lock ($this->grouptab->dn);
+    }
   }
 
 }
 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>
index 9313b771725f4d42c06eb2ee368d8149471e6c28..819838271a7e9894135c894d28c378e7797b7784 100644 (file)
@@ -75,11 +75,8 @@ class ogroupManagement extends plugin
     $smarty= get_smarty();
 
     /* Save data */
-    if (is_global("ogroupfilter")){
-      $ogroupfilter= get_global("ogroupfilter");
-    } else {
-      $ogroupfilter= array();
-    }
+    $ogroupfilter= get_global("ogroupfilter");
+
     foreach( array("depselect", "regex") as $type){
       if (isset($_POST[$type])){
         $ogroupfilter[$type]= $_POST[$type];