Gestion des utilisateurs - Ajouter l'information de la source de l'utilisateur dans le listing des utilisateurs

Dans le listing des utilisateurs et lorsque l’on a des utilisateurs qui
proviennent d’un annuaire LDAP ou Active DIrectory, il n’y a pas
d’indicateur pour différencier le type d’utilisateur local (db) /
annuaire (ldap).

Il serait intéressant de faire apparaître cet indicateur uniquement si un annuaire est configuré.


Implémentation à discuter

Ce point parle également de ne pas proposer l’action “changer le mot de passe” si on a un compte de type différent de db

Ticket adullact lié :
https://adullact.net/tracker/index.php?func=detail&aid=8601&group_id=265&atid=1999

Parmi les actions personnelles affichées dans le bandeau supérieur, figure l’action “password” pour redéfinir le mot de passe.
Cette action est pertinente si on est connecté avec un om_utilisateur qui relèvent de om_type==‘DB’, pas dans les autres cas.
Actuellement, le point est géré par un droit “password” donc par profil. Cela permet de contourner la problématique, en dupliquant si besoin les profils pour séparer les types d’utilisateur: par exemple ADMINISTRATEUR_LOCAL et ADMINISTRATEUR.

La proposition est de modifier application->getActionsToDisplay() comme suit , ou équivalente en termes de résultat :

function getActionsToDisplay() {
//
$actions_to_display = array();
//
if ($this->authenticated == false) {
return $actions_to_display;
}
//
if (!file_exists("../dyn/actions.inc.php")) {
return $actions_to_display;
}
//
require "../dyn/actions.inc.php";
//
if (!isset($actions)) {
return $actions_to_display;
}
//
foreach ($actions as $key => $value) {
// Gestion des droits d'acces : si l'utilisateur n'a pas la
// permission necessaire alors l'entree n'est pas affichee
if (isset($value['right'])
and !$this->isAccredited($value['right'], "OR")) {
// On passe directement a l'iteration suivante de la boucle
continue;
}
// Pour l'action relevant du droit "password", il faut également 
// que l'utilisateur soit de type DB, sinon on n'affiche pas l'action
if (isset($value['right'])
and $value['right']=='password' ) {
$user_infos = $this->retrieveUserProfile($_SESSION["login"]);
if ( $user_infos[$this->table_om_utilisateur_field_om_type] != 'DB') {
// On passe directement a l'iteration suivante de la boucle
continue;
}
}
//
$actions_to_display[] = $value;
}
//
return $actions_to_display;
}