".__("gestion des utilisateurs")." -> ".__("om_utilisateur"); /** * Gestion SOUSFORMULAIRE => $sousformulaire */ $sousformulaire = array( 'instructeur', 'lien_om_utilisateur_tiers_consulte', 'lien_service_om_utilisateur', 'lien_om_utilisateur_groupe', ); $sousformulaire_parameters['lien_om_utilisateur_groupe']['title'] = __('Groupe'); // Permet de ne pas afficher l'onglet des utilisateurs liés s'il s'agit d'un // utilisateur lié. if (isset($idx) === true && $f->get_value_of_element($obj, $idx, 'om_type') !== 'linked') { array_push($sousformulaire, 'lien_om_utilisateur_om_utilisateur'); $sousformulaire_parameters['lien_om_utilisateur_om_utilisateur']['title'] = __('Utilisateur lié'); } // Recherche avancée $advsearch_fields= array( 'om_utilisateur' => array( 'colonne' => 'om_utilisateur', 'table' => 'om_utilisateur', 'libelle' => __("utilisateur"), 'type' => 'text', 'taille' => '', 'max' => '' ), 'nom' => array( 'colonne' => 'nom', 'table' => 'om_utilisateur', 'libelle' => __("nom"), 'type' => 'text', 'taille' => '', 'max' => '', ) , 'email' => array( 'colonne' => 'email', 'table' => 'om_utilisateur', 'libelle' => __("email"), 'type' => 'text', 'taille' => '', 'max' => '', ) , 'login' => array( 'colonne' => 'login', 'table' => 'om_utilisateur', 'libelle' => __("login"), 'type' => 'text', 'taille' => '', 'max' => '', ) , 'om_type' => array( 'colonne' => 'om_type', 'table' => 'om_utilisateur', 'libelle' => __("type"), 'type' => 'text', 'taille' => '', 'max' => '', ) , 'om_profil' => array( 'colonne' => 'om_profil', 'table' => 'om_utilisateur', 'libelle' => __("profil"), 'type' => 'select', 'taille' => '', 'max' => '', ) ); if ($_SESSION['niveau'] == '2') { $advsearch_fields['om_collectivite'] = array( 'table' => 'om_utilisateur', 'colonne' => 'om_collectivite', 'type' => 'select', 'libelle' => __('om_collectivite') ); } // Permission spécifique pour afficher la nouvelle colonne $perm_linked_user = $f->isAccredited(array( 'lien_om_utilisateur_om_utilisateur', 'lien_om_utilisateur_om_utilisateur_tab_om_utilisateur', ), 'OR'); if ($perm_linked_user === true) { // FROM $table .= sprintf(' -- Jointure permettant de lister les utilisateurs principaux pour la recherche -- avancée LEFT JOIN %1$slien_om_utilisateur_om_utilisateur ON lien_om_utilisateur_om_utilisateur.om_utilisateur_lie = om_utilisateur.om_utilisateur -- Jointure permettant d\'\'identifier si l\'\'utilisateur principal possède ou non -- des utilisateurs liés pour la recherche avancée LEFT JOIN ( SELECT om_utilisateur.om_utilisateur, CASE WHEN COUNT(lien_om_utilisateur_om_utilisateur) > 0 THEN \'t\' ELSE \'f\' END as utilisateur_lie FROM %1$som_utilisateur LEFT JOIN %1$slien_om_utilisateur_om_utilisateur ON lien_om_utilisateur_om_utilisateur.om_utilisateur = om_utilisateur.om_utilisateur WHERE om_utilisateur.om_utilisateur = om_utilisateur.om_utilisateur GROUP BY om_utilisateur.om_utilisateur ) as utilisateurs_lies ON utilisateurs_lies.om_utilisateur = om_utilisateur.om_utilisateur AND om_utilisateur.om_type != \'linked\' ', DB_PREFIXE ); // Champ dans SELECT $has_linked_user = sprintf( 'CASE WHEN ( SELECT COUNT(lien_om_utilisateur_om_utilisateur) FROM %1$slien_om_utilisateur_om_utilisateur WHERE om_utilisateur = om_utilisateur.om_utilisateur ) > 0 THEN \'%2$s\' ELSE CASE WHEN om_utilisateur.om_type = \'%3$s\' THEN ( SELECT nom FROM %1$som_utilisateur omu_princ INNER JOIN %1$slien_om_utilisateur_om_utilisateur ON lien_om_utilisateur_om_utilisateur.om_utilisateur = omu_princ.om_utilisateur WHERE lien_om_utilisateur_om_utilisateur.om_utilisateur_lie = om_utilisateur.om_utilisateur ) ELSE \'%4$s\' END END as "%5$s" ', DB_PREFIXE, __('Oui'), 'linked', __('Non'), __('Utilisateurs liés') ); array_push($champAffiche, $has_linked_user); // Recherche avancée pour afficher seulement les utilisateurs liés à l'utilisateur // principal sélectionné __('utilisateur_princ'); // Pour traduction $advsearch_fields['utilisateur_princ'] = array( 'table' => 'lien_om_utilisateur_om_utilisateur', 'colonne' => 'om_utilisateur', 'type' => 'select', 'subtype' => 'sqlselect', 'libelle' => __('Utilisateur principal'), 'help' => __("Filtre pour afficher les utilisateurs liés à l'utilisateur principal sélectionné."), 'sql' => sprintf(' SELECT DISTINCT om_utilisateur.om_utilisateur, om_utilisateur.nom FROM %1$slien_om_utilisateur_om_utilisateur INNER JOIN %1$som_utilisateur ON lien_om_utilisateur_om_utilisateur.om_utilisateur = om_utilisateur.om_utilisateur ORDER BY om_utilisateur.nom ', DB_PREFIXE ), ); // Recherche avancée pour afficher seulement les utilisateurs principaux ayant // ou non des utilisateurs liés $args = array( 0 => array("", "t", "f", ), 1 => array(__("choisir")." ".__('Utilisateurs liés'), __("Oui"), __("Non"), ), ); $advsearch_fields['utilisateurs_lies'] = array( 'table' => 'utilisateurs_lies', 'colonne' => 'utilisateur_lie', 'type' => 'select', 'subtype' => 'manualselect', 'args' => $args, 'libelle' => __('Utilisateurs liés'), 'help' => __('Filtre pour afficher les utilisateurs principaux ayant ou non des utilisateurs liés.'), ); } else { // WHERE if ($_SESSION["niveau"] == "2") { $where_and = 'WHERE'; } else { $where_and = 'AND'; } $selection .= sprintf(' %s om_utilisateur.om_type != \'%s\' ', $where_and, 'linked' ); } // advsearch -> options $options[] = array( 'type' => 'search', 'display' => true, 'advanced' => $advsearch_fields, 'absolute_object' => 'om_utilisateur', 'export' => array("csv"), );