From ec19537b32c83aaf116d8c545516bd8db213f5e1 Mon Sep 17 00:00:00 2001 From: hickert Date: Thu, 15 Sep 2011 09:00:34 +0000 Subject: [PATCH] Backport from trunk -Added adapt from template or netatalk accounts git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.7@20999 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../personal/netatalk/class_netatalk.inc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gosa-plugins/netatalk/personal/netatalk/class_netatalk.inc b/gosa-plugins/netatalk/personal/netatalk/class_netatalk.inc index 86303b937..88b9fc2dd 100644 --- a/gosa-plugins/netatalk/personal/netatalk/class_netatalk.inc +++ b/gosa-plugins/netatalk/personal/netatalk/class_netatalk.inc @@ -381,6 +381,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: -- 2.30.2