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;
}