diff options
Diffstat (limited to 'modules-available/sysconfig/inc/configmodulebaseldap.inc.php')
-rw-r--r-- | modules-available/sysconfig/inc/configmodulebaseldap.inc.php | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/modules-available/sysconfig/inc/configmodulebaseldap.inc.php b/modules-available/sysconfig/inc/configmodulebaseldap.inc.php index 686bcbc0..d8a41a8b 100644 --- a/modules-available/sysconfig/inc/configmodulebaseldap.inc.php +++ b/modules-available/sysconfig/inc/configmodulebaseldap.inc.php @@ -8,7 +8,28 @@ abstract class ConfigModuleBaseLdap extends ConfigModule private static $REQUIRED_FIELDS = array('server', 'searchbase'); private static $OPTIONAL_FIELDS = array('binddn', 'bindpw', 'home', 'ssl', 'fixnumeric', 'fingerprint', 'certificate', 'homeattr', 'shareRemapMode', 'shareRemapCreate', 'shareDocuments', 'shareDownloads', 'shareDesktop', 'shareMedia', - 'shareOther', 'shareHomeDrive', 'shareDomain', 'credentialPassthrough'); + 'shareOther', 'shareHomeDrive', 'shareDomain', 'credentialPassthrough', 'mapping'); + + public static function getMapping($config = false, &$empty = true) + { + $list = array( + ['name' => 'uid', 'field' => 'uid', 'ad' => 'sAMAccountName'], + ['name' => 'uidnumber', 'field' => 'uidnumber', 'ad' => false], + ['name' => 'uncHomePath', 'field' => 'homemount', 'ad' => 'homeDirectory'], + ['name' => 'homeDirectory', 'field' => 'localhome', 'ad' => false], + ['name' => 'posixAccount', 'field' => 'posixAccount', 'ad' => 'user'], + //['name' => 'shadowAccount', 'field' => 'shadowAccount'], + ); + if (is_array($config)) { + foreach ($list as &$item) { + if (!empty($config[$item['field']])) { + $item['value'] = $config[$item['field']]; + $empty = false; + } + } + } + return $list; + } protected function generateInternal($tgz, $parent) { |