diff --git a/contrib/fusiondirectory.conf b/contrib/fusiondirectory.conf
index 5571000e000e619f2ff361061b92dca2f1de2bd3..39b9d823ecb18278129a54dcebfec24023835592 100644
--- a/contrib/fusiondirectory.conf
+++ b/contrib/fusiondirectory.conf
@@ -103,86 +103,14 @@
        every "tab" defined "class" and will show it inside of a tabbed dialog
        with the header defined in "name".
    -->
-
-  <!-- ACL dialog -->
-  <acltab>
-    <tab class="acl" name="ACL" />
-  </acltab>
-
-  <aclroletab>
-    <tab class="aclRole" name="ACL Role" />
-  </aclroletab>
-
-  <!-- Group dialog -->
-  <grouptabs>
-    <tab class="group" name="Generic" />
-    <tab class="environment" name="Environment" />
-    <tab class="appgroup" name="Applications" />
-    <tab class="mailgroup" name="Mail" />
-  </grouptabs>
-
-  <!-- Sudo dialog -->
-  <sudotabs>
-    <tab class="sudo" name="Generic" />
-    <tab class="sudoOption" name="Options" />
-  </sudotabs>
-
-  <!-- GOfax plugins -->
-  <faxblocktabs>
-    <tab class="blocklistGeneric" name="Generic" />
-  </faxblocktabs>
-
-  <!-- GOfon plugins -->
-  <conferencetabs>
-    <tab class="conference" name="Generic" />
-  </conferencetabs>
-
-  <macrotabs>
-    <tab class="macro" name="Generic" />
-    <tab class="macroParameter" name="Parameter" />
-  </macrotabs>
-
-  <phonetabs>
-    <tab class="phoneGeneric" name="Generic" />
-  </phonetabs>
-
-  <!-- GOto plugins -->
-  <appstabs>
-    <tab class="application" name="Generic" />
-    <tab class="applicationParameters" name="Options" />
-  </appstabs>
-
-  <mimetabs>
-    <tab class="mimetype" name="Generic" />
-  </mimetabs>
-
-  <devicetabs>
-    <tab class="deviceGeneric" name="Generic" />
-  </devicetabs>
-
   <arpnewdevicetabs>
     <tab class="ArpNewDevice" name="Generic" />
   </arpnewdevicetabs>
 
-  <termtabs>
-     <tab class="termgeneric" name="Generic" />
-     <tab class="termstartup" name="Startup" />
-     <tab class="termservice" name="Devices" />
-     <tab class="terminfo" name="Information" />
-  </termtabs>
-
   <servertabs>
      <tab class="ServerService" name="Services" />
   </servertabs>
 
-  <componenttabs>
-     <tab class="componentGeneric" name="Generic" />
-  </componenttabs>
-
-  <netgrouptabs>
-    <tab class="netgroup" name="Generic" />
-  </netgrouptabs>
-
   <wintabs>
      <tab class="wingeneric" name="Generic" />
   </wintabs>
@@ -245,15 +173,6 @@
     <tab class="entite" name="Generic" />
   </entite_tabs>
 
-  <!-- Role tabs -->
-  <roletabs>
-    <tab class="roleGeneric" name="Generic"/>
-  </roletabs>
-
-  <ogrouptabs>
-    <tab class="ogroup" name="Generic" />
-  </ogrouptabs>
-
   <!-- Connectivity plugins -->
   <connectivity>
     <tab class='kolabAccount' />
@@ -279,40 +198,10 @@
     <tab class="csvimport" name="CSV Import" />
   </ldiftab>
 
-  <faipartitiontabs>
-    <tab class="faiPartitionTable" name="Partitions" />
-  </faipartitiontabs>
-
-  <faiscripttabs>
-    <tab class="faiScript" name="Script" />
-  </faiscripttabs>
-
-  <faihooktabs>
-    <tab class="faiHook" name="Hooks" />
-  </faihooktabs>
-
-  <faivariabletabs>
-    <tab class="faiVariable" name="Variables" />
-  </faivariabletabs>
-
-  <faitemplatetabs>
-    <tab class="faiTemplate" name="Templates" />
-  </faitemplatetabs>
-
   <faiprofiletabs>
-    <tab class="faiProfile" name="Profiles" />
     <tab class="faiSummaryTab" name="Summary" />
   </faiprofiletabs>
 
-  <faipackagetabs>
-    <tab class="faiPackage" name="Packages" />
-  </faipackagetabs>
-
-  <!-- rSyslog plugin -->
-  <rsyslogtabs>
-      <tab class="rsyslog" name="System logs" />
-  </rsyslogtabs>
-
   <!-- board plugin -->
   <boardtabs>
     <tab class="board" name="Overview"/>
diff --git a/include/class_acl.inc b/include/class_acl.inc
index f82bfce9544ccd1a93f58a4c48cf96b7d7ef4e80..f15c7bf5d355d5c24294c20113777a01dce6b349 100644
--- a/include/class_acl.inc
+++ b/include/class_acl.inc
@@ -28,7 +28,7 @@
 /*!
  * \brief This class contains all the function needed to manage acl
  * \see class_plugin
- */ 
+ */
 class acl extends plugin
 {
   /* Definitions */
@@ -64,11 +64,11 @@ class acl extends plugin
 
   /*!
    * \brief Acl contructor
-   * 
+   *
    * \param String $config Configuration file for ACL
-   * 
-   * \param String $parent  
-   * 
+   *
+   * \param String $parent
+   *
    * \param String $dn The DN
    */
   function acl (&$config, $parent, $dn= NULL)
@@ -253,7 +253,7 @@ class acl extends plugin
     /* Finally - we want to get saved... */
     $this->is_account= TRUE;
   }
-  
+
   /*!
    * \brief Generates the html output for this node
    */
@@ -381,7 +381,7 @@ class acl extends plugin
     }
 
     if($this->acl_is_writeable("")){
-      
+
       /* Only be interested in new acl's, if we're in the right _POST place */
       if ($aclDialog && $this->aclObject != "" && is_array($this->ocMapping[$this->aclObject])){
 
@@ -494,35 +494,35 @@ class acl extends plugin
       /* Draw list */
       $aclList= new divSelectBox("aclList");
       $aclList->SetHeight(450);
-      
+
       /* Fill in entries */
       foreach ($this->gosaAclEntry as $key => $entry){
         if(!$this->acl_is_readable("")) continue;
 
-        $action ="";      
+        $action ="";
 
         if($this->acl_is_readable("")){
           $link = "<a href=?plug=".$_GET['plug']."&amp;id=".$key."&amp;act=edit>".$this->assembleAclSummary($entry)."</a>";
         }else{
           $link = $this->assembleAclSummary($entry);
         }
-  
+
         $field1= array("string" => $this->aclTypes[$entry['type']], "attach" => "style='width:150px'");
         $field2= array("string" => $link);
 
         if($this->acl_is_writeable("")){
-          $action.= "<input type='image' name='sortup_$key' alt='up' 
+          $action.= "<input type='image' name='sortup_$key' alt='up'
             title='"._("Up")."' src='images/lists/sort-up.png' align='top'>";
-          $action.= "<input type='image' name='sortdown_$key' alt='down' 
+          $action.= "<input type='image' name='sortdown_$key' alt='down'
             title='"._("Down")."' src='images/lists/sort-down.png'>";
-        } 
-    
+        }
+
         if($this->acl_is_readable("")){
-          $action.= "<input class='center' type='image' src='images/lists/edit.png' 
+          $action.= "<input class='center' type='image' src='images/lists/edit.png'
             alt='"._("Edit")."' name='acl_edit_$key' title='".msgPool::editButton(_("ACL"))."'>";
         }
         if($this->acl_is_removeable("")){
-          $action.= "<input class='center' type='image' src='images/lists/trash.png' 
+          $action.= "<input class='center' type='image' src='images/lists/trash.png'
             alt='"._("Delete")."' name='acl_del_$key' title='".msgPool::delButton(_("ACL"))."'>";
         }
 
@@ -566,13 +566,13 @@ class acl extends plugin
 
         $actions ="";
         if($this->acl_is_readable("")){
-          $actions= "<input class='center' type='image' src='images/lists/edit.png' 
+          $actions= "<input class='center' type='image' src='images/lists/edit.png'
             alt='"._("Edit")."' name='cat_edit_$section' title='".msgPool::editButton(_("category ACL"))."'>";
         }
         if($this->acl_is_removeable()){
-          $actions.= "<input class='center' type='image' src='images/lists/trash.png' 
+          $actions.= "<input class='center' type='image' src='images/lists/trash.png'
             alt='"._("Delete")."' name='cat_del_$section' title='".msgPool::delButton(_("category ACL"))."'>";
-        }   
+        }
 
         $field1= array("string" => $dsc, "attach" => "style='width:100px'");
         $field2= array("string" => $summary);
@@ -647,8 +647,8 @@ class acl extends plugin
 
     /* Show main page */
     $smarty->assign("dialogState", $this->dialogState);
-   
-    /* Assign acls */ 
+
+    /* Assign acls */
     $smarty->assign("acl_createable",$this->acl_is_createable());
     $smarty->assign("acl_writeable" ,$this->acl_is_writeable(""));
     $smarty->assign("acl_readable"  ,$this->acl_is_readable(""));
@@ -659,7 +659,7 @@ class acl extends plugin
 
   /*!
    *  \brief Function sort an array by elements priority
-   * 
+   *
    *  \param Array $list Array to be sorted
    */
   function sort_by_priority($list)
@@ -690,13 +690,13 @@ class acl extends plugin
 
   /*!
    * \brief Build a role selector from a list
-   * 
+   *
    * \param Array $list
-   */ 
+   */
   function buildRoleSelector($list)
   {
     $D_List =new divSelectBox("Acl_Roles");
- 
+
     $selected = $this->aclContents;
     if(!is_string($this->aclContents) || !isset($list[$this->aclContents])){
       $selected = key($list);
@@ -705,12 +705,12 @@ class acl extends plugin
     $str ="";
     foreach($list as $dn => $values){
 
-      if($dn == $selected){    
+      if($dn == $selected){
         $option = "<input type='radio' name='selected_role' value='".base64_encode($dn)."' checked>";
       }else{
         $option = "<input type='radio' name='selected_role' value='".base64_encode($dn)."'>";
       }
- 
+
       $field1 = array("string" => $option) ;
       $field2 = array("string" => $values['cn'], "attach" => "style='width:200px;'") ;
       $field3 = array("string" => $values['description'],"attach" => "style='border-right:0px;'") ;
@@ -718,15 +718,15 @@ class acl extends plugin
       $D_List->AddEntry(array($field1,$field2,$field3));
     }
     return($D_List->DrawList());
-  } 
+  }
 
   /*!
    * \brief Build an acl selector form
-   * 
+   *
    * \param Array $list
-   * 
+   *
    * \return the acl selector form
-   */ 
+   */
   function buildAclSelector($list)
   {
     $display= "<input type='hidden' name='acl_dummy_0_0_0' value='1'>";
@@ -782,7 +782,7 @@ class acl extends plugin
 
       $currentAcl= $this->aclContents[$key];
 
-      /* Get the overall plugin acls 
+      /* Get the overall plugin acls
        */
       $overall_acl ="";
       if(isset($currentAcl[0])){
@@ -802,8 +802,8 @@ class acl extends plugin
       }
 
       if(session::global_get('js')) {
-        if(isset($_SERVER['HTTP_USER_AGENT']) && 
-             (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || 
+        if(isset($_SERVER['HTTP_USER_AGENT']) &&
+             (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) ||
              (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) {
           $display.= "\n<table style='width:100%;border:1px solid #A0A0A0' cellspacing=0 cellpadding=2>".
                      "\n  <tr>".
@@ -853,7 +853,7 @@ class acl extends plugin
       $cnt= 1;
       $splist= $plist[preg_replace('%^.*/%', '', $key)]['plProvidedAcls'];
       if(session::global_get('js')) {
-        if(isset($_SERVER['HTTP_USER_AGENT']) && 
+        if(isset($_SERVER['HTTP_USER_AGENT']) &&
             (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) {
           $display.= "\n  <tr id='tr_$tname' style='vertical-align:top;height:0px;'>".
                      "\n    <td colspan=".$cols.">".
@@ -868,7 +868,7 @@ class acl extends plugin
         }
       }
 
-  
+
       foreach($splist as $attr => $dsc){
 
         /* Skip pl* attributes, they are internal... */
@@ -900,16 +900,16 @@ class acl extends plugin
         $display.= "\n    <td style='border-top:1px solid #A0A0A0;${rb}width:".(int)(100/$cols)."%'>".
                    "\n      <b>$dsc</b> ($attr)<br>".$this->mkrwbx($key."_".$attr, $state)."</td>$end";
       }
-      
+
       /* Fill missing td's if needed */
       if (--$cnt != $cols && $cnt != 0){
-       $display.= str_repeat("\n    <td style='border-top:1px solid #A0A0A0; width:".(int)(100/$cols)."%'>&nbsp;</td>", $cols-$cnt); 
+       $display.= str_repeat("\n    <td style='border-top:1px solid #A0A0A0; width:".(int)(100/$cols)."%'>&nbsp;</td>", $cols-$cnt);
       }
 
       if(session::global_get('js')) {
-        if(isset($_SERVER['HTTP_USER_AGENT']) && 
-            (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || 
-            (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT'])) || 
+        if(isset($_SERVER['HTTP_USER_AGENT']) &&
+            (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) ||
+            (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT'])) ||
             (preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT']))) {
           $display.= "\n        </table>".
                      "\n      </div>".
@@ -926,15 +926,15 @@ class acl extends plugin
 
   /*!
    * \brief Create a checkbox
-   * 
+   *
    * \param String $name Name of the acl checkbox
-   * 
+   *
    * \param String $text Label for the checkbox
-   * 
+   *
    * \param boolean $state false
-   * 
+   *
    * \return String containing checkbox
-   */ 
+   */
   function mkchkbx($name, $text, $state= FALSE)
   {
     $state= $state?"checked":"";
@@ -949,19 +949,19 @@ class acl extends plugin
 
   /*!
    * \brief Make a read and write box
-   * 
+   *
    * \param String $name Name of the box
-   * 
+   *
    * \param boolean $state false
-   * 
+   *
    * \return String containing checkbox
-   */ 
+   */
   function mkrwbx($name, $state= "")
   {
     $rstate= preg_match('/r/', $state)?'checked':'';
     $wstate= preg_match('/w/', $state)?'checked':'';
     $tname= preg_replace("/[^a-z0-9]/i","_",$name);
-      
+
     if($this->acl_is_writeable("")){
       return ("\n      <input id='acl_".$tname."_r' type=checkbox name='acl_${name}_r' $rstate>".
           "\n      <label for='acl_".$tname."_r'>"._("read")."</label>".
@@ -975,9 +975,9 @@ class acl extends plugin
 
   /*!
    * \brief Explode an acl
-   * 
+   *
    * \param string $acl ACL to be exploded
-   */ 
+   */
   static function explodeACL($acl)
   {
 
@@ -993,7 +993,7 @@ class acl extends plugin
     $a= array( $index => array("type" => $type,
                                "filter"=> $filter,
                                "members" => acl::extractMembers($acl,$type == "role")));
-   
+
     /* Handle different types */
     switch ($type){
 
@@ -1003,14 +1003,14 @@ class acl extends plugin
       case 'base':
         $a[$index]['acl']= acl::extractACL($acl);
         break;
-      
+
       case 'role':
         $a[$index]['acl']= base64_decode(preg_replace('/^[^:]+:[^:]+:([^:]+).*$/', '\1', $acl));
         break;
 
       case 'reset':
         break;
-      
+
       default:
         msg_dialog::display(_("Internal error"), sprintf(_("Unkown ACL type '%s'!"), $type), ERROR_DIALOG);
         $a= array();
@@ -1020,13 +1020,13 @@ class acl extends plugin
 
   /*!
    * \brief Extract members of an acl
-   * 
+   *
    * \param $acl The acl to be extracted
-   *  
+   *
    * \param $role Boolean false
-   * 
+   *
    * \return an array with members
-   */ 
+   */
   static function extractMembers($acl,$role = FALSE)
   {
     global $config;
@@ -1078,8 +1078,8 @@ class acl extends plugin
 
   /*!
    * \brief Extract an acl
-   * 
-   * \param string $acl The acl to be extracted 
+   *
+   * \param string $acl The acl to be extracted
    */
   static function extractACL($acl)
   {
@@ -1090,7 +1090,7 @@ class acl extends plugin
 
     /* Dis-assemble single ACLs */
     foreach($aa as $sacl){
-      
+
       /* Dis-assemble field ACLs */
       $ao= explode('#', $sacl);
       $gobject= "";
@@ -1123,9 +1123,9 @@ class acl extends plugin
 
   /*!
    * \brief Summarize ACL and members
-   * 
-   * \param Array $entry 
-   */  
+   *
+   * \param Array $entry
+   */
   function assembleAclSummary($entry)
   {
     $summary= "";
@@ -1136,7 +1136,7 @@ class acl extends plugin
 
       if($entry['type'] == "role"){
 
-        if(isset($this->roles[$entry['acl']])){  
+        if(isset($this->roles[$entry['acl']])){
           $summary.= sprintf(_("Role: %s"), $this->roles[$entry['acl']]['cn']);
         }else{
           $summary.= sprintf(_("Role: %s"), "<i>"._("unknown role")."</i>");
@@ -1172,9 +1172,9 @@ class acl extends plugin
 
   /*!
    * \brief Load an ACL
-   * 
+   *
    * \param boolean $new false
-   */ 
+   */
   function loadAclEntry($new= FALSE)
   {
     /* New entry gets presets... */
@@ -1196,9 +1196,9 @@ class acl extends plugin
 
   /*!
    * \brief Save an ACL after it's handle
-   * 
+   *
    * \return boolean true if the acl is saved, else return false
-   */ 
+   */
   function aclPostHandler()
   {
     if (isset($_POST['save_acl'])){
@@ -1211,15 +1211,15 @@ class acl extends plugin
 
   /*!
    * \brief Prepare for Copy & Paste
-   * 
+   *
    * \see plugin::PrepareForCopyPaste($source)
-   * 
+   *
    * \param string $source Source to prepare for copy and paste
    */
   function PrepareForCopyPaste($source)
   {
     plugin::PrepareForCopyPaste($source);
-    
+
     $dn = $source['dn'];
     $acl_c = new acl($this->config, $this->parent,$dn);
     $this->gosaAclEntry = $acl_c->gosaAclEntry;
@@ -1232,7 +1232,7 @@ class acl extends plugin
   {
     /* Assemble ACL's */
     $tmp_acl= array();
-  
+
     foreach ($this->gosaAclEntry as $prio => $entry){
       $final= "";
       $members= "";
@@ -1270,20 +1270,20 @@ class acl extends plugin
               }
               $acl.= ',';
             }
-            
+
           }
         }
         $final.= preg_replace('/,$/', '', $acl);
       }
 
-      /* Append additional filter options 
+      /* Append additional filter options
        */
       if(!empty($entry['filter'])){
         $final .= ":".base64_encode($entry['filter']);
       }
 
       $tmp_acl[]= $final;
-    } 
+    }
 
     /* Call main method */
     plugin::save();
@@ -1304,7 +1304,7 @@ class acl extends plugin
 
       /* Remove object class */
       $this->attrs['objectClass']= array_remove_entries(array('gosaAcl'), $this->attrs['objectClass']);
-    }    
+    }
 
     /* Do LDAP modifications */
     $ldap= $this->config->get_ldap_link();
@@ -1326,7 +1326,7 @@ class acl extends plugin
     session::global_set('ui',$ui);
   }
 
-  /*! 
+  /*!
    * \brief Removes object from parent
    */
   function remove_from_parent()
@@ -1346,31 +1346,31 @@ class acl extends plugin
     $this->handle_post_events("remove",array("uid" => $this->uid));
   }
 
-  
+
   /*
-   * \brief Return plugin informations for acl handling 
+   * \brief Return plugin informations for acl handling
    */
   static function plInfo()
   {
-    return (array(
-          "plShortName"   => _("ACL"),
-          "plDescription" => _("ACL")."&nbsp;("._("Access control list").")",
-          "plSelfModify"  => FALSE,
-          "plDepends"     => array(),
-          "plPriority"    => 0,
-          "plSection"     => array("administration"),
-          "plCategory"    => array("acl" => array("description"  => _("ACL")."&nbsp;&amp;&nbsp;"._("ACL roles"),
-                                                          "objectClass"  => array("gosaAcl","gosaRole"))),
-          "plProvidedAcls"=> array(
-//            "cn"          => _("Role name"),
-//            "description" => _("Role description")
-            )
-
-          ));
+    return array(
+      "plShortName"   => _("ACL"),
+      "plDescription" => _("ACL")."&nbsp;("._("Access control list").")",
+      "plSelfModify"  => FALSE,
+      "plSection"     => array("administration"),
+      "plCategory"    => array("acl" => array("description"  => _("ACL")."&nbsp;&amp;&nbsp;"._("ACL roles"),
+                                                      "objectClass"  => array("gosaAcl","gosaRole"))),
+      "plObjectType"  => array("acl" => array("name"  => _("ACL"),
+                                              "filter"  => "objectClass=gosaAcl")),
+
+      "plProvidedAcls"=> array(
+//        "cn"          => _("Role name"),
+//        "description" => _("Role description")
+      )
+    );
   }
 
 
-  /*! 
+  /*!
    * \brief Remove acls defined for $src
    */
   function remove_acl()
@@ -1379,44 +1379,44 @@ class acl extends plugin
   }
 
 
-  /*! 
-   * \brief Remove acls defined for $src 
-   * 
+  /*!
+   * \brief Remove acls defined for $src
+   *
    * \param String $dn The DN
    */
   static function remove_acl_for($dn)
-  {                                  
-    global $config;                  
+  {
+    global $config;
 
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
     $ldap->search("(&(objectClass=gosaAcl)(gosaAclEntry=*".base64_encode($dn)."*))",array("gosaAclEntry","dn"));
-    $new_entries= array();                                                                                      
-    while($attrs = $ldap->fetch()){                                                                             
-      if (!isset($attrs['gosaAclEntry'])) {                                                                     
-        continue;                                                                                               
-      }                                                                                                         
-      unset($attrs['gosaAclEntry']['count']);                                                                   
+    $new_entries= array();
+    while($attrs = $ldap->fetch()){
+      if (!isset($attrs['gosaAclEntry'])) {
+        continue;
+      }
+      unset($attrs['gosaAclEntry']['count']);
 
       // Remove entry directly
       foreach($attrs['gosaAclEntry'] as $id => $entry){
-        $parts= explode(':',$entry);                     
-        $members= explode(',',$parts[2]);                
-        $new_members= array();                         
-        foreach($members as $member) {                 
-          if (base64_decode($member) != $dn) {         
-            $new_members[]= $member;                   
-          } else {                                     
+        $parts= explode(':',$entry);
+        $members= explode(',',$parts[2]);
+        $new_members= array();
+        foreach($members as $member) {
+          if (base64_decode($member) != $dn) {
+            $new_members[]= $member;
+          } else {
             fusiondirectory_log("modify","users/acl",$attrs['dn'],array(),sprintf("Removed acl for %s on object %s.",$dn,$attrs['dn']));
-          }                                                                                                                  
-        }                                                                                                                    
+          }
+        }
 
         /* We can completely remove the entry if there are no members anymore */
-        if (count($new_members)) {                                              
-          $parts[2]= implode(",", $new_members);                                
-          $new_entries[]= implode(":", $parts);                                 
-        }                                                                       
-      }                                                                         
+        if (count($new_members)) {
+          $parts[2]= implode(",", $new_members);
+          $new_entries[]= implode(":", $parts);
+        }
+      }
 
       // There should be a modification, so write it back
       $ldap->cd($attrs['dn']);
@@ -1430,11 +1430,11 @@ class acl extends plugin
 
   /*!
    * \brief Update the acl membership
-   * 
+   *
    * \param String $src The source
-   * 
+   *
    * \param String $dst The destination
-   */ 
+   */
   function update_acl_membership($src,$dst)
   {
     $ldap = $this->config->get_ldap_link();
diff --git a/plugins/admin/acl/class_aclRole.inc b/plugins/admin/acl/class_aclRole.inc
index 7232442adf56468f3f03e0823ad24933a3b89c16..1768fbb67b5982c7c93de4646cb56952f5348579 100644
--- a/plugins/admin/acl/class_aclRole.inc
+++ b/plugins/admin/acl/class_aclRole.inc
@@ -68,7 +68,7 @@ class aclrole extends acl
       $this->base = preg_replace("/^[^,]+,[^,]+,/","",$this->dn);
       new log("view","acl/".get_class($this),$this->dn);
     }
-   
+
     /* Load ACL's */
     $this->gosaAclTemplate= array();
     if (isset($this->attrs["gosaAclTemplate"])){
@@ -262,11 +262,11 @@ class aclrole extends acl
         }
       }
     }
-   
+
     if(isset($_POST['acl_dummy_0_0_0'])){
       $aclDialog= TRUE;
     }
- 
+
     /* Only be interested in new acl's, if we're in the right _POST place */
     if ($aclDialog && $this->aclObject != "" && is_array($this->ocMapping[$this->aclObject])){
 
@@ -368,17 +368,17 @@ class aclrole extends acl
 
         $action ="";
         if($this->acl_is_writeable("gosaAclEntry")){
-          $action.= "<input type='image' name='sortup_$key' alt='up' 
+          $action.= "<input type='image' name='sortup_$key' alt='up'
             title='"._("Up")."' src='images/lists/sort-up.png' align='top'>";
-          $action.= "<input type='image' name='sortdown_$key' alt='down' 
+          $action.= "<input type='image' name='sortdown_$key' alt='down'
             title='"._("Down")."' src='images/lists/sort-down.png'>";
         }
         if($this->acl_is_readable("gosaAclEntry")){
-          $action.= "<input class='center' type='image' src='images/lists/edit.png' alt='"._("Edit")."' name='acl_edit_$key' 
+          $action.= "<input class='center' type='image' src='images/lists/edit.png' alt='"._("Edit")."' name='acl_edit_$key'
             title='".msgPool::editButton(_("ACL"))."'>";
         }
         if($this->acl_is_writeable("gosaAclEntry")){
-          $action.= "<input class='center' type='image' src='images/lists/trash.png' alt='"._("Delete")."' name='acl_del_$key' 
+          $action.= "<input class='center' type='image' src='images/lists/trash.png' alt='"._("Delete")."' name='acl_del_$key'
             title='".msgPool::delButton(_("ACL"))."'>";
         }
 
@@ -422,11 +422,11 @@ class aclrole extends acl
 
         $action = "";
         if($this->acl_is_readable("gosaAclEntry")){
-          $action.= "<input class='center' type='image' src='images/lists/edit.png' 
+          $action.= "<input class='center' type='image' src='images/lists/edit.png'
             alt='"._("Edit")."' name='cat_edit_$section'   title='"._("Edit category ACL")."'>";
         }
         if($this->acl_is_writeable("gosaAclEntry")){
-          $action.= "<input class='center' type='image' src='images/lists/trash.png' 
+          $action.= "<input class='center' type='image' src='images/lists/trash.png'
             alt='"._("Delete")."' name='cat_del_$section' title='"._("Reset category ACL")."'>";
         }
 
@@ -564,14 +564,14 @@ class aclrole extends acl
               }
               $acl.= ',';
             }
-            
+
           }
         }
         $final.= preg_replace('/,$/', '', $acl);
       }
 
       $tmp_acl[]= $final;
-    } 
+    }
 
     /* Call main method */
     plugin::save();
@@ -623,7 +623,7 @@ class aclrole extends acl
   function remove_from_parent()
   {
     $ldap = $this->config->get_ldap_link();
-    $serach_for = "*:role:".base64_encode($this->dn).":*"; 
+    $serach_for = "*:role:".base64_encode($this->dn).":*";
     $ldap->search ("(&(objectClass=gosaACL)(gosaAclEntry=".$serach_for."))",array('dn','cn','sn','givenName','uid'));
     $all_names = "";
 
@@ -646,7 +646,7 @@ class aclrole extends acl
       msg_dialog::display(_("Object in use"), sprintf(_("This role cannot be removed while it is in use by these objects:")."<br><br>%s", $all_names), WARNING_DIALOG);
       return;
     }
-        
+
     $ldap->rmDir($this->dn);
     new log("remove","acl/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
     if (!$ldap->success()){
@@ -674,7 +674,7 @@ class aclrole extends acl
   {
     plugin::save_object();
     if(isset($_POST['acl_role_posted'])){
-     
+
       /* Refresh base */
       if ($this->acl_is_moveable($this->base)){
         if (!$this->baseSelector->update()) {
@@ -695,7 +695,7 @@ class aclrole extends acl
       $this->cn = $_POST['cn'];
     }
   }
-  
+
 
   function getCopyDialog()
   {
@@ -708,33 +708,34 @@ class aclrole extends acl
     return($ret);
   }
 
-  
+
   function PrepareForCopyPaste($source)
   {
     plugin::PrepareForCopyPaste($source);
-    
+
     $source_o = new aclrole($this->config,$source['dn']);
     $this->gosaAclTemplate = $source_o->gosaAclTemplate;
   }
-  
+
 
   /* Return plugin informations for acl handling  */
   static function plInfo()
   {
-    return (array(
-          "plShortName" => _("Role"),
-          "plDescription" => _("Access control roles"),
-          "plSelfModify"  => FALSE,
-          "plDepends"     => array(),
-          "plPriority"    => 0,
-          "plSection"     => array("administration"),
-          "plCategory"    => array("acl"),
-          "plProvidedAcls"    => array(
-            "cn"                => _("Name"),
-            "base"              => _("Base"),
-            "description"       => _("Description"),
-            "gosaAclEntry"      => _("Permissions"))
-        ));
+    return array(
+      "plShortName"   => _("Role"),
+      "plDescription" => _("Access control roles"),
+      "plSelfModify"  => FALSE,
+      "plSection"     => array("administration"),
+      "plCategory"    => array("acl"),
+      "plObjectType"  => array("aclRole" => array("name" => _("ACL role"), "filter" => "objectClass=gosaRole")),
+
+      "plProvidedAcls"  => array(
+        "cn"                => _("Name"),
+        "base"              => _("Base"),
+        "description"       => _("Description"),
+        "gosaAclEntry"      => _("Permissions")
+      )
+    );
   }
 
   function check()
@@ -744,7 +745,7 @@ class aclrole extends acl
     if(empty($this->cn)){
       $message[] = msgPool::required(_("Name"));
     }
-  
+
     $ldap = $this->config->get_ldap_link();
     $ldap->cd($this->config->current['BASE']);
     if($this->cn != $this->orig_cn){
@@ -756,8 +757,8 @@ class aclrole extends acl
           }
         }
       }
-    } 
- 
+    }
+
     if(!count($this->gosaAclTemplate)){
       $message[] = msgPool::required(_("ACL"));
     }
@@ -766,7 +767,7 @@ class aclrole extends acl
     if(!$this->baseSelector->checkLastBaseUpdate()){
       $message[]= msgPool::check_base();;
     }
- 
+
     /* Check if we are allowed to create or move this object
      */
     if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
diff --git a/plugins/admin/groups/class_group.inc b/plugins/admin/groups/class_group.inc
index 93f419e4f90946e018b0dec7047d594707b3f209..4d763cd0540a551522be42f8a0d18beffa4bd497 100644
--- a/plugins/admin/groups/class_group.inc
+++ b/plugins/admin/groups/class_group.inc
@@ -1174,30 +1174,30 @@ class group extends plugin
   /* Return plugin informations for acl handling  */
   static function plInfo()
   {
-    return (array(
-          "plShortName" => _("Generic"),
-          "plDescription" => _("Generic group settings"),
-          "plSelfModify"  => FALSE,
-          "plDepends"     => array(),
-          "plPriority"    => 0,
-          "plSection"     => array("administration"),
-          "plCategory"    => array("groups" => array("objectClass" => "posixGroup", "description" => _("Groups"))),
-
-          "plProvidedAcls"    => array(
-            "cn"                => _("Name"),
-            "description"       => _("Description"),
-            "base"              => _("Base"),
-
-            "gidNumber"         => _("GID"),
-
-            "sambaGroupType"    => _("Samba group type"),
-            "sambaDomainName"   => _("Samba domain name"),
-            "trustModel"        => _("System trust"),
-            "fonGroup"          => _("Phone pickup group"),
-            "nagiosGroup"       => _("Nagios group"),
-
-            "memberUid"         => _("Group member"))
-        ));
+    return array(
+      "plShortName"   => _("Generic"),
+      "plDescription" => _("Generic group settings"),
+      "plSelfModify"  => FALSE,
+      "plSection"     => array("administration"),
+      "plCategory"    => array("groups" => array("objectClass" => "posixGroup", "description" => _("Groups"))),
+      "plObjectType"  => array("group" => array("name" => _("Group"), "filter" => "objectClass=posixGroup")),
+
+      "plProvidedAcls"    => array(
+        "cn"                => _("Name"),
+        "description"       => _("Description"),
+        "base"              => _("Base"),
+
+        "gidNumber"         => _("GID"),
+
+        "sambaGroupType"    => _("Samba group type"),
+        "sambaDomainName"   => _("Samba domain name"),
+        "trustModel"        => _("System trust"),
+        "fonGroup"          => _("Phone pickup group"),
+        "nagiosGroup"       => _("Nagios group"),
+
+        "memberUid"         => _("Group member")
+      )
+    );
   }
 
 
diff --git a/plugins/admin/ogroups/class_ogroup.inc b/plugins/admin/ogroups/class_ogroup.inc
index d464ca394c812b6c32a5075b1b5224cce55161cb..9627ae58b3c3c1fc398915445d8ff5d9f0068dab 100644
--- a/plugins/admin/ogroups/class_ogroup.inc
+++ b/plugins/admin/ogroups/class_ogroup.inc
@@ -936,22 +936,25 @@ class ogroup extends plugin
 
   static function plInfo()
   {
-    return (array(
-          "plShortName"   => _("Generic"),
-          "plDescription" => _("Object group generic"),
-          "plSelfModify"  => FALSE,
-          "plDepends"     => array(),
-          "plPriority"    => 1,
-          "plSection"     => array("administration"),
-          "plCategory"    => array("ogroups" => array("description"  => _("Object groups"),
-                                                      "objectClass"  => "gosaGroupOfNames")),
-          "plProvidedAcls"=> array(
-            "cn"                => _("Name"),
-            "base"              => _("Base"),
-            "description"       => _("Description"),
-            "trustModel"        => _("System trust"),
-            "member"            => _("Member"))
-          ));
+    return array(
+      "plShortName"   => _("Generic"),
+      "plDescription" => _("Object group generic"),
+      "plSelfModify"  => FALSE,
+      "plPriority"    => 1,
+      "plSection"     => array("administration"),
+      "plCategory"    => array("ogroups" => array("description"  => _("Object groups"),
+                                                  "objectClass"  => "gosaGroupOfNames")),
+      "plObjectType"  => array("ogroup" => array("name"  => _("Object group"),
+                                                  "filter"  => "objectClass=gosaGroupOfNames")),
+
+      "plProvidedAcls"=> array(
+        "cn"                => _("Name"),
+        "base"              => _("Base"),
+        "description"       => _("Description"),
+        "trustModel"        => _("System trust"),
+        "member"            => _("Member")
+      )
+    );
   }
 }
 
diff --git a/plugins/personal/generic/class_user.inc b/plugins/personal/generic/class_user.inc
index a4d0ed96b2a0b0529f32c2a37e307e7f5c7ff140..351fd589556505becc09f1852a1b507a56854a08 100644
--- a/plugins/personal/generic/class_user.inc
+++ b/plugins/personal/generic/class_user.inc
@@ -1638,7 +1638,7 @@ class user extends plugin
         "plSection"     => array("personal" => _("My account")),
         "plCategory"    => array("users" => array("description" => _("Users"),
                                                   "objectClass" => "gosaAccount")),
-        "plObjectType"  => array("user" => array("description" => _("User"),
+        "plObjectType"  => array("user" => array("name" => _("User"),
                                                   "filter" => "objectClass=gosaAccount")),
 
         "plProvidedAcls" => array(