new type API

This commit is contained in:
Roland Gruber 2017-03-16 19:44:01 +01:00
parent 599f5c4cda
commit a92642795b
2 changed files with 24 additions and 8 deletions

View File

@ -485,6 +485,23 @@ class TypeManager {
return $scopedTypes; return $scopedTypes;
} }
/**
* Returns a list of configured types for these scopes.
*
* @param array $scopes scopes (e.g. user)
* @return \LAM\TYPES\ConfiguredType[] list of ConfiguredType
*/
public function getConfiguredTypesForScopes($scopes) {
$allTypes = $this->getConfiguredTypes();
$scopedTypes = array();
foreach ($allTypes as $type) {
if (in_array($type->getScope(), $scopes)) {
$scopedTypes[] = $type;
}
}
return $scopedTypes;
}
/** /**
* Builds a configured account type. * Builds a configured account type.
* *

View File

@ -1,9 +1,10 @@
<?php <?php
use \LAM\TYPES\TypeManager;
/* /*
$Id$ $Id$
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
Copyright (C) 2005 - 2016 Roland Gruber Copyright (C) 2005 - 2017 Roland Gruber
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -251,20 +252,18 @@ class lamGroupList extends lamList {
'deleteEntry' => _("Delete selected roles")); 'deleteEntry' => _("Delete selected roles"));
} }
// build suffix list for account types // build suffix list for account types
$types = array('user', 'gon', 'group'); $typeManager = new TypeManager();
$activeTypes = $_SESSION['config']->get_ActiveTypes(); $scopes = array('user', 'gon', 'group');
$types = $typeManager->getConfiguredTypesForScopes($scopes);
foreach ($types as $type) { foreach ($types as $type) {
if (!in_array($type, $activeTypes)) { $suffix = $type->getSuffix();
continue;
}
$suffix = $_SESSION['config']->get_Suffix($type);
// stop if suffixes are not unique // stop if suffixes are not unique
if (isset($this->suffixList[$suffix])) { if (isset($this->suffixList[$suffix])) {
$this->suffixList = array(); $this->suffixList = array();
break; break;
} }
if (!empty($suffix)) { if (!empty($suffix)) {
$this->suffixList[$suffix] = $type; $this->suffixList[$suffix] = $type->getId();
} }
} }
} }