diff options
author | Simon Rettberg | 2017-12-14 12:55:30 +0100 |
---|---|---|
committer | Simon Rettberg | 2017-12-14 12:55:30 +0100 |
commit | c66fbba36646f51ee0c696ffdfa18e5c820c29bc (patch) | |
tree | 7277275890125b1413bd5719b59027dcd92bf049 /modules-available/sysconfig/inc | |
parent | [vmstore] Fix uninitialized variable access (diff) | |
download | slx-admin-c66fbba36646f51ee0c696ffdfa18e5c820c29bc.tar.gz slx-admin-c66fbba36646f51ee0c696ffdfa18e5c820c29bc.tar.xz slx-admin-c66fbba36646f51ee0c696ffdfa18e5c820c29bc.zip |
[sysconfig] Allow remapping of attributes for AD too
Diffstat (limited to 'modules-available/sysconfig/inc')
-rw-r--r-- | modules-available/sysconfig/inc/configmodule.inc.php | 7 | ||||
-rw-r--r-- | modules-available/sysconfig/inc/configmodulebaseldap.inc.php | 21 |
2 files changed, 26 insertions, 2 deletions
diff --git a/modules-available/sysconfig/inc/configmodule.inc.php b/modules-available/sysconfig/inc/configmodule.inc.php index ca40094a..54d06afe 100644 --- a/modules-available/sysconfig/inc/configmodule.inc.php +++ b/modules-available/sysconfig/inc/configmodule.inc.php @@ -16,6 +16,9 @@ abstract class ConfigModule private $moduleTitle = false; private $moduleStatus = false; private $currentVersion = 0; + /** + * @var false|array Data of module, false if not initialized + */ protected $moduleData = false; /** @@ -86,7 +89,7 @@ abstract class ConfigModule * Get fresh instance of ConfigModule subclass for given module type. * * @param string $moduleType name of module type - * @return \ConfigModule module instance + * @return false|\ConfigModule module instance */ public static function getInstance($moduleType) { @@ -117,7 +120,7 @@ abstract class ConfigModule * Get module instance from id. * * @param int $moduleId module id to get - * @return ConfigModule The requested module from DB, or false on error + * @return false|\ConfigModule The requested module from DB, or false on error */ public static function get($moduleId) { diff --git a/modules-available/sysconfig/inc/configmodulebaseldap.inc.php b/modules-available/sysconfig/inc/configmodulebaseldap.inc.php index 55104005..d8a41a8b 100644 --- a/modules-available/sysconfig/inc/configmodulebaseldap.inc.php +++ b/modules-available/sysconfig/inc/configmodulebaseldap.inc.php @@ -10,6 +10,27 @@ abstract class ConfigModuleBaseLdap extends ConfigModule 'shareRemapMode', 'shareRemapCreate', 'shareDocuments', 'shareDownloads', 'shareDesktop', 'shareMedia', '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) { Trigger::ldadp($this->id(), $parent); |