Merge pull request #16 from LDAPAccountManager/type_api_tmp
Type api tmp
This commit is contained in:
commit
6b6cd4538f
|
@ -90,18 +90,24 @@ function is_base_module($name, $scope) {
|
||||||
/**
|
/**
|
||||||
* Returns the LDAP filter used by the account lists
|
* Returns the LDAP filter used by the account lists
|
||||||
*
|
*
|
||||||
* @param string $scope the account type ("user", "group", "host")
|
* @param string $typeId the account type ("user", "group", "host")
|
||||||
* @return string LDAP filter
|
* @return string LDAP filter
|
||||||
*/
|
*/
|
||||||
function get_ldap_filter($scope) {
|
function get_ldap_filter($typeId) {
|
||||||
$mods = $_SESSION['config']->get_AccountModules($scope);
|
$typeManager = new \LAM\TYPES\TypeManager();
|
||||||
$filters = array();
|
$type = $typeManager->getConfiguredType($typeId);
|
||||||
|
$mods = $_SESSION['config']->get_AccountModules($typeId);
|
||||||
|
$filters = array('or' => array(), 'and' => array());
|
||||||
$orFilter = '';
|
$orFilter = '';
|
||||||
for ($i = 0; $i < sizeof($mods); $i++) {
|
for ($i = 0; $i < sizeof($mods); $i++) {
|
||||||
$module = moduleCache::getModule($mods[$i], $scope);
|
$module = moduleCache::getModule($mods[$i], $type->getScope());
|
||||||
$modinfo = $module->get_ldap_filter();
|
$modinfo = $module->get_ldap_filter();
|
||||||
if (isset($modinfo['or'])) $filters['or'][] = $modinfo['or'];
|
if (isset($modinfo['or'])) {
|
||||||
if (isset($modinfo['and'])) $filters['and'][] = $modinfo['and'];
|
$filters['or'][] = $modinfo['or'];
|
||||||
|
}
|
||||||
|
if (isset($modinfo['and'])) {
|
||||||
|
$filters['and'][] = $modinfo['and'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// build OR filter
|
// build OR filter
|
||||||
if (sizeof($filters['or']) == 1) {
|
if (sizeof($filters['or']) == 1) {
|
||||||
|
@ -111,15 +117,17 @@ function get_ldap_filter($scope) {
|
||||||
$orFilter = "(|" . implode("", $filters['or']) . ")";
|
$orFilter = "(|" . implode("", $filters['or']) . ")";
|
||||||
}
|
}
|
||||||
// add built OR filter to AND filters
|
// add built OR filter to AND filters
|
||||||
if ($orFilter != '') $filters['and'][] = $orFilter;
|
if (!empty($orFilter)) {
|
||||||
|
$filters['and'][] = $orFilter;
|
||||||
|
}
|
||||||
// add type filter
|
// add type filter
|
||||||
$typeSettings = $_SESSION['config']->get_typeSettings();
|
$typeSettings = $_SESSION['config']->get_typeSettings();
|
||||||
if (isset($typeSettings['filter_' . $scope]) && ($typeSettings['filter_' . $scope] != '')) {
|
if (isset($typeSettings['filter_' . $typeId]) && ($typeSettings['filter_' . $typeId] != '')) {
|
||||||
if (strpos($typeSettings['filter_' . $scope], '(') === 0) {
|
if (strpos($typeSettings['filter_' . $typeId], '(') === 0) {
|
||||||
$filters['and'][] = $typeSettings['filter_' . $scope];
|
$filters['and'][] = $typeSettings['filter_' . $typeId];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$filters['and'][] = '(' . $typeSettings['filter_' . $scope] . ')';
|
$filters['and'][] = '(' . $typeSettings['filter_' . $typeId] . ')';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// collapse AND filters
|
// collapse AND filters
|
||||||
|
@ -140,12 +148,12 @@ function get_ldap_filter($scope) {
|
||||||
*
|
*
|
||||||
* The list is already sorted by the priority given by the nodules.
|
* The list is already sorted by the priority given by the nodules.
|
||||||
*
|
*
|
||||||
* @param string $scope account type (user, group, host)
|
* @param string $typeId account type (user, group, host)
|
||||||
* @param array $selectedModules return only RDN attributes of these modules
|
* @param array $selectedModules return only RDN attributes of these modules
|
||||||
* @return array list of LDAP attributes
|
* @return array list of LDAP attributes
|
||||||
*/
|
*/
|
||||||
function getRDNAttributes($scope, $selectedModules=null) {
|
function getRDNAttributes($typeId, $selectedModules=null) {
|
||||||
$mods = $_SESSION['config']->get_AccountModules($scope);
|
$mods = $_SESSION['config']->get_AccountModules($typeId);
|
||||||
if ($selectedModules != null) {
|
if ($selectedModules != null) {
|
||||||
$mods = $selectedModules;
|
$mods = $selectedModules;
|
||||||
}
|
}
|
||||||
|
@ -155,7 +163,7 @@ function getRDNAttributes($scope, $selectedModules=null) {
|
||||||
$attrs_high = array();
|
$attrs_high = array();
|
||||||
for ($i = 0; $i < sizeof($mods); $i++) {
|
for ($i = 0; $i < sizeof($mods); $i++) {
|
||||||
// get list of attributes
|
// get list of attributes
|
||||||
$module = moduleCache::getModule($mods[$i], $scope);
|
$module = moduleCache::getModule($mods[$i], \LAM\TYPES\getScopeFromTypeId($typeId));
|
||||||
$attrs = $module->get_RDNAttributes();
|
$attrs = $module->get_RDNAttributes();
|
||||||
$keys = array_keys($attrs);
|
$keys = array_keys($attrs);
|
||||||
// sort attributes
|
// sort attributes
|
||||||
|
@ -595,14 +603,17 @@ function doUploadPostActions($scope, &$data, $ids, $failed, $selectedModules, &$
|
||||||
*/
|
*/
|
||||||
function getRequiredExtensions() {
|
function getRequiredExtensions() {
|
||||||
$extList = array();
|
$extList = array();
|
||||||
$scopes = $_SESSION['config']->get_ActiveTypes();
|
$typeManager = new \LAM\TYPES\TypeManager();
|
||||||
for ($i = 0; $i < sizeof($scopes); $i++) {
|
$types = $typeManager->getConfiguredTypes();
|
||||||
$mods = $_SESSION['config']->get_AccountModules($scopes[$i]);
|
foreach ($types as $type) {
|
||||||
|
$mods = $_SESSION['config']->get_AccountModules($type->getId());
|
||||||
for ($m = 0; $m < sizeof($mods); $m++) {
|
for ($m = 0; $m < sizeof($mods); $m++) {
|
||||||
$module = moduleCache::getModule($mods[$m], $scopes[$i]);
|
$module = moduleCache::getModule($mods[$m], $type->getScope());
|
||||||
$ext = $module->getRequiredExtensions();
|
$ext = $module->getRequiredExtensions();
|
||||||
for ($e = 0; $e < sizeof($ext); $e++) {
|
for ($e = 0; $e < sizeof($ext); $e++) {
|
||||||
if (!in_array($ext[$e], $extList)) $extList[] = $ext[$e];
|
if (!in_array($ext[$e], $extList)) {
|
||||||
|
$extList[] = $ext[$e];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
namespace LAM\CONFIG;
|
||||||
|
use \moduleCache;
|
||||||
|
use \htmlSpacer;
|
||||||
|
use \htmlTable;
|
||||||
|
use \htmlButton;
|
||||||
/*
|
/*
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
|
@ -94,7 +99,7 @@ if (isset($_POST['saveSettings']) || isset($_POST['editmodules'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$allTypes = LAM\TYPES\getTypes();
|
$allTypes = \LAM\TYPES\getTypes();
|
||||||
|
|
||||||
echo $_SESSION['header'];
|
echo $_SESSION['header'];
|
||||||
|
|
||||||
|
@ -203,13 +208,16 @@ jQuery(document).ready(function() {
|
||||||
|
|
||||||
|
|
||||||
// module settings
|
// module settings
|
||||||
$types = $conf->get_ActiveTypes();
|
$typeManager = new \LAM\TYPES\TypeManager($conf);
|
||||||
|
$types = $typeManager->getConfiguredTypes();
|
||||||
|
|
||||||
// get list of scopes of modules
|
// get list of scopes of modules
|
||||||
$scopes = array();
|
$scopes = array();
|
||||||
for ($m = 0; $m < sizeof($types); $m++) {
|
foreach ($types as $type) {
|
||||||
$mods = $conf->get_AccountModules($types[$m]);
|
$mods = $conf->get_AccountModules($type->getId());
|
||||||
for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = $types[$m];
|
for ($i = 0; $i < sizeof($mods); $i++) {
|
||||||
|
$scopes[$mods[$i]][] = $type->getScope();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get module options
|
// get module options
|
||||||
|
@ -281,7 +289,8 @@ function checkInput() {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
$conf = &$_SESSION['conf_config'];
|
$conf = &$_SESSION['conf_config'];
|
||||||
$types = $conf->get_ActiveTypes();
|
$typeManager = new \LAM\TYPES\TypeManager($conf);
|
||||||
|
$types = $typeManager->getConfiguredTypes();
|
||||||
|
|
||||||
// check module options
|
// check module options
|
||||||
// create option array to check and save
|
// create option array to check and save
|
||||||
|
@ -289,9 +298,11 @@ function checkInput() {
|
||||||
|
|
||||||
// get list of scopes of modules
|
// get list of scopes of modules
|
||||||
$scopes = array();
|
$scopes = array();
|
||||||
for ($m = 0; $m < sizeof($types); $m++) {
|
foreach ($types as $type) {
|
||||||
$mods = $conf->get_AccountModules($types[$m]);
|
$mods = $conf->get_AccountModules($type->getId());
|
||||||
for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = $types[$m];
|
for ($i = 0; $i < sizeof($mods); $i++) {
|
||||||
|
$scopes[$mods[$i]][] = $type->getScope();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// check options
|
// check options
|
||||||
$errors = checkConfigOptions($scopes, $options);
|
$errors = checkConfigOptions($scopes, $options);
|
||||||
|
|
|
@ -206,7 +206,7 @@ for ($i = 0; $i < sizeof($profileClasses); $i++) {
|
||||||
$existingContainer->addElement(new htmlSpacer(null, '10px'), true);
|
$existingContainer->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$existingContainer->addElement(new htmlImage('../../graphics/' . $profileClasses[$i]['typeId'] . '.png'));
|
$existingContainer->addElement(new htmlImage('../../graphics/' . \LAM\TYPES\getScopeFromTypeId($profileClasses[$i]['typeId']) . '.png'));
|
||||||
$existingContainer->addElement(new htmlSpacer('3px', null));
|
$existingContainer->addElement(new htmlSpacer('3px', null));
|
||||||
$existingContainer->addElement(new htmlOutputText($profileClasses[$i]['title']));
|
$existingContainer->addElement(new htmlOutputText($profileClasses[$i]['title']));
|
||||||
$existingContainer->addElement(new htmlSpacer('3px', null));
|
$existingContainer->addElement(new htmlSpacer('3px', null));
|
||||||
|
|
Loading…
Reference in New Issue