Code

Added netatalk patch from 'mba' closes #1120
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 14 Jan 2011 13:43:17 +0000 (13:43 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 14 Jan 2011 13:43:17 +0000 (13:43 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@20585 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-plugins/netatalk/personal/netatalk/class_netatalk.inc

index 8620a262f1424e874672e28fe8bebfb002b620cf..fef9a66dab14d541a4408ff361bedc896e8bbe6a 100644 (file)
@@ -377,6 +377,34 @@ class netatalk extends plugin {
           ));
   }
 
+  function adapt_from_template($dn, $skip= array())
+  {
+    /* As the 'apple-user-homeDirectory' LDAP attribute is stored as
+     * 'apple_user_homeDirectory' internally by GOsa (to avoid problem with
+     * dashes as variable names), we need to add the dashed version to
+     * $this->attributes so that the adapt_from_template function in the plugin
+     * class will find the dashed LDAP attribute and substitute possibly
+     * placeholders like %uid. We remove the dashed version of
+     * 'apple_user_homeDirectory' from the attributes again afterwards. */
+    array_push($this->attributes, "apple-user-homeDirectory");
+    plugin::adapt_from_template($dn, $skip);
+    array_pop($this->attributes);
+  
+    /* Loop through the available shares and find out which is the share from
+     * 'apple-user-homeDirectory'. Remove its host and directory (as well as
+     * the default 'mountDirectory' prefix) to get 'apple_user_homepath_raw'
+     * and store that share as 'selectedshare' so that it gets displayed by
+     * default in the netatalk tab. */
+    foreach($this->shares as $share) {
+      $apple_user_homepath = $this->mountDirectory."/".
+                       $this->shares_settings[$share]["host"].
+                       $this->shares_settings[$share]["dir"]."/";
+      if (preg_match("#$apple_user_homepath#", $this->{'apple-user-homeDirectory'})) {
+        $this->apple_user_homepath_raw =  preg_replace("#$apple_user_homepath#", "", $this->{'apple-user-homeDirectory'});
+        $this->selectedshare = $share;
+      }
+    }
+  }   
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: