summaryrefslogtreecommitdiffstats
path: root/modules-available/sysconfig/inc
diff options
context:
space:
mode:
authorSimon Rettberg2017-12-14 12:55:30 +0100
committerSimon Rettberg2017-12-14 12:55:30 +0100
commitc66fbba36646f51ee0c696ffdfa18e5c820c29bc (patch)
tree7277275890125b1413bd5719b59027dcd92bf049 /modules-available/sysconfig/inc
parent[vmstore] Fix uninitialized variable access (diff)
downloadslx-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.php7
-rw-r--r--modules-available/sysconfig/inc/configmodulebaseldap.inc.php21
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);