Code

Removed debug output
[gosa.git] / gosa-core / include / class_userFilter.inc
index b193210ecdeb6c407503f835a410849098a393ee..83b6c85cafa53702aa672837d1f8a9068c650169 100644 (file)
@@ -8,6 +8,21 @@ class userFilter extends plugin
   public $objectClass = array('gosaProperties');
   public $attributes = array('gosaUserDefinedFilter');
   public $gosaUserDefinedFilter = array();
+
+
+  /*! \brief    Returns true if we are able to read and write userFilters 
+   *            (schema has to be present, gosaProperties)
+   */
+  static function userFilteringAvailable()
+  {
+    if(!session::is_set('userFilter::userFilteringAvailable')){
+      global $config;
+      $ldap = $config->get_ldap_link();
+      $ocs = $ldap->get_objectclasses();
+      session::set('userFilter::userFilteringAvailable', isset($ocs['gosaProperties']));
+    }
+    return(session::get('userFilter::userFilteringAvailable'));
+  }
   
  
   /*! \brief  Initiates the filter editing dialog.
@@ -20,10 +35,6 @@ class userFilter extends plugin
 
     // Keep list of currently managed categories.
     $this->availableCategories = array_unique($categories);
-    $this->availableCategories[] = 'systems';
-    $this->availableCategories[] = 'phones';
-    $this->availableCategories[] = 'printer';
-    $this->availableCategories[] = 'component';
 
     // Load list of filters
     if(isset($this->attrs['gosaUserDefinedFilter'])){
@@ -192,12 +203,21 @@ class userFilter extends plugin
       for($i=0; $i < $attrs['gosaUserDefinedFilter']['count']; $i++){
         $tmp = userFilter::explodeFilterString($attrs['gosaUserDefinedFilter'][$i]);
         if(!isset($tmp['name'])) continue;
-           
+          
+        // Remove line breaks from the filter, which may were added for better reading. 
+        $c = preg_split('/\n/',$tmp['filter']);
+
+        foreach($c as $key => $str) $c[$key] = trim($str);
+        $tmp['filter'] = implode($c);
         // The filter is visible if it is shared or if is one of our own creations.
         //  ... and enabled.
         $visible = in_array('enable', $tmp['flags']) && 
           ($attrs['dn'] == $ui->dn || in_array('share', $tmp['flags']));
-          
+         
+        // Convert filter encoding
+        $tmp['filter'] = mb_convert_encoding($tmp['filter'], 'UTF-8');
         // Add filter if it matches the category list
         if($visible && (count($category) == 0 || array_intersect($category, $tmp['categories']))){ 
           $filter[$tmp['name']] = $tmp;