LSsession : Added nologin parameter in subDn configuration

This commit is contained in:
Benjamin Renard 2010-11-16 11:50:18 +01:00
parent a85623dc23
commit bf04c8e051
2 changed files with 12 additions and 8 deletions

View file

@ -70,6 +70,7 @@ l'annuaire.
// Déclaration manuelle // Déclaration manuelle
'[Nom du sous-niveau]' => array( '[Nom du sous-niveau]' => array(
'dn' => '[basedn du sous-niveau]', 'dn' => '[basedn du sous-niveau]',
'nologin' => true, // Désactive la connection dans ce subDn
'LSobjects' => array( // Liste des types d'LSobjets présents dans le sous-niveau 'LSobjects' => array( // Liste des types d'LSobjets présents dans le sous-niveau
[LSobject1], [LSobject1],
[LSobject2], [LSobject2],
@ -81,6 +82,7 @@ l'annuaire.
'[type d'LSobject]' => array( // le type d'LSobjet à lister '[type d'LSobject]' => array( // le type d'LSobjet à lister
'basedn' => '[basedn]', // Le basedn de la recherche 'basedn' => '[basedn]', // Le basedn de la recherche
'displayValue' => '[format]', // Format du nom des sous-niveaux 'displayValue' => '[format]', // Format du nom des sous-niveaux
'nologin' => true, // Désactive la connection dans ces subDn
'LSobjects' => array( // Liste des types d'LSobjets présents dans les sous-niveaux 'LSobjects' => array( // Liste des types d'LSobjets présents dans les sous-niveaux
[LSobject1], [LSobject1],
[LSobject2], [LSobject2],

View file

@ -1032,8 +1032,9 @@ class LSsession {
* *
* @retval mixed Tableau des subDn, false si une erreur est survenue. * @retval mixed Tableau des subDn, false si une erreur est survenue.
*/ */
public static function getSubDnLdapServer() { public static function getSubDnLdapServer($login=false) {
if (self :: cacheSudDn() && isset(self :: $_subDnLdapServer[self :: $ldapServerId])) { $login=(bool)$login;
if (self :: cacheSudDn() && isset(self :: $_subDnLdapServer[self :: $ldapServerId][$login])) {
return self :: $_subDnLdapServer[self :: $ldapServerId]; return self :: $_subDnLdapServer[self :: $ldapServerId];
} }
if (!self::subDnIsEnabled()) { if (!self::subDnIsEnabled()) {
@ -1041,6 +1042,7 @@ class LSsession {
} }
$return=array(); $return=array();
foreach(self :: $ldapServer['subDn'] as $subDn_name => $subDn_config) { foreach(self :: $ldapServer['subDn'] as $subDn_name => $subDn_config) {
if ($login && $subDn_config['nologin']) continue;
if ($subDn_name == 'LSobject') { if ($subDn_name == 'LSobject') {
if (is_array($subDn_config)) { if (is_array($subDn_config)) {
foreach($subDn_config as $LSobject_name => $LSoject_config) { foreach($subDn_config as $LSobject_name => $LSoject_config) {
@ -1083,7 +1085,7 @@ class LSsession {
} }
} }
if (self :: cacheSudDn()) { if (self :: cacheSudDn()) {
self :: $_subDnLdapServer[self :: $ldapServerId]=$return; self :: $_subDnLdapServer[self :: $ldapServerId][$login]=$return;
$_SESSION['LSsession_subDnLdapServer'] = self :: $_subDnLdapServer; $_SESSION['LSsession_subDnLdapServer'] = self :: $_subDnLdapServer;
} }
return $return; return $return;
@ -1095,8 +1097,8 @@ class LSsession {
* *
* @return array() Tableau des subDn trié * @return array() Tableau des subDn trié
*/ */
public static function getSortSubDnLdapServer() { public static function getSortSubDnLdapServer($login=false) {
$subDnLdapServer = self :: getSubDnLdapServer(); $subDnLdapServer = self :: getSubDnLdapServer($login);
if (!$subDnLdapServer) { if (!$subDnLdapServer) {
return array(); return array();
} }
@ -1112,8 +1114,8 @@ class LSsession {
* *
* @retval string Les options (<option>) pour la sélection du topDn. * @retval string Les options (<option>) pour la sélection du topDn.
*/ */
public static function getSubDnLdapServerOptions($selected=NULL) { public static function getSubDnLdapServerOptions($selected=NULL,$login=false) {
$list = self :: getSubDnLdapServer(); $list = self :: getSubDnLdapServer($login);
if ($list) { if ($list) {
asort($list); asort($list);
$display=''; $display='';
@ -2235,7 +2237,7 @@ class LSsession {
else { else {
$sel = NULL; $sel = NULL;
} }
$list = self :: getSubDnLdapServerOptions($sel); $list = self :: getSubDnLdapServerOptions($sel,true);
if (is_string($list)) { if (is_string($list)) {
$data['list_topDn'] = "<select name='LSsession_topDn' id='LSsession_topDn'>".$list."</select>"; $data['list_topDn'] = "<select name='LSsession_topDn' id='LSsession_topDn'>".$list."</select>";
$data['subDnLabel'] = self :: getSubDnLabel(); $data['subDnLabel'] = self :: getSubDnLabel();