[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/sbin/ -> recherche_ldap.sh (source)

   1  #!/bin/bash
   2  
   3  #
   4  ## $Id: recherche_ldap.sh 7757 2013-04-05 10:50:42Z crob $ ##
   5  #
   6  ##### Permet de faire des recherches dans l'annuaire LDAP #####
   7  #
   8  # Derniere modif: 20130217
   9  
  10  #. /usr/share/se3/sbin/variables_admin_ldap.sh lib > /dev/null
  11  . /etc/se3/config_l.cache.sh
  12  
  13  BASEDN=$ldap_base_dn
  14  ROOTDN=cn=admin,$BASEDN
  15  PASSDN=$adminPw
  16  
  17  #Couleurs
  18  COLTITRE="\033[1;35m"   # Rose
  19  COLPARTIE="\033[1;34m"  # Bleu
  20  
  21  COLTXT="\033[0;37m" # Gris
  22  COLCHOIX="\033[1;33m"   # Jaune
  23  COLDEFAUT="\033[0;33m"  # Brun-jaune
  24  COLSAISIE="\033[1;32m"  # Vert
  25  
  26  COLCMD="\033[1;37m" # Blanc
  27  
  28  COLERREUR="\033[1;31m"  # Rouge
  29  COLINFO="\033[0;36m"    # Cyan
  30  
  31  if [ -z "$1" ]; then
  32      echo -e "$COLERREUR"
  33      echo "ERREUR: Le motif recherche doit etre de la forme cn=XXX ou uid=XXX"
  34      echo "        ou uid=XXX*"
  35      echo -e "$COLTXT"
  36      exit
  37  fi
  38  
  39  motif=$1
  40  
  41  t=$(echo "$motif"|grep "=")
  42  pref=$(echo $motif|cut -d"=" -f1)
  43  valeur_motif=$(echo $motif|cut -d"=" -f2)
  44  #echo "pref=$pref"
  45  #echo "valeur_motif=$valeur_motif"
  46  if [ -z "$t" -o -z "$pref" -o -z "$valeur_motif" ]; then
  47      echo -e "$COLERREUR"
  48      echo "ERREUR: Le motif recherche doit etre de la forme cn=XXX ou uid=XXX"
  49      echo "        ou uid=XXX*"
  50      echo -e "$COLTXT"
  51      #exit
  52  
  53      liste_pref[1]="cn"
  54      liste_pref[2]="uid"
  55      liste_pref[3]="employeeNumber"
  56      liste_pref[4]="gecos"
  57      liste_pref[5]="uidNumber"
  58      liste_pref[6]="gidNumber"
  59      liste_pref[7]="ipHostNumber"
  60      liste_pref[8]="macAddress"
  61  
  62      REP=""
  63      while [ -z "$REP" ]
  64      do
  65          echo -e "Veuillez choisir parmi les attributs suivants:
  66  ($COLCHOIX}1$COLTXT}) cn        ($COLCHOIX}2$COLTXT}) uid       ($COLCHOIX}3$COLTXT}) employeeNumber     ($COLCHOIX}4$COLTXT}) gecos
  67  ($COLCHOIX}5$COLTXT}) uidNumber ($COLCHOIX}6$COLTXT}) gidNumber ($COLCHOIX}7$COLTXT}) ipHostNumber       ($COLCHOIX}8$COLTXT}) macAddress"
  68          echo -e "Votre choix: [$COLDEFAUT}2$COLTXT}] $COLSAISIE\c"
  69          read REP
  70  
  71          if [ -z "$REP" ]; then
  72              REP=2
  73          fi
  74  
  75          if [ -z "$liste_pref[$REP]}" ]; then
  76              echo -e "$COLERREUR"
  77              echo "Choix invalide"
  78              REP=""
  79          fi
  80      done
  81      pref=$liste_pref[$REP]}
  82      motif="$pref=$motif"
  83  fi
  84  
  85  liste_complete=""
  86  liste_branche=""
  87  liste_result=""
  88  cpt=0
  89  for branche in People Groups Computers Parcs Rights
  90  do
  91      #echo "ldapsearch -xLLL -b ou=$branche,$BASEDN $motif $pref|grep \"^$pref: \"|sed -e \"s|^$pref: ||\""
  92      OLD_IFS=$IFS
  93      IFS="
  94  "
  95      liste=($(ldapsearch -xLLL -b ou=$branche,$BASEDN $motif $pref|grep "^$pref: "|sed -e "s|^$pref: ||"))
  96      IFS=$OLD_IFS
  97      if [ -n "$liste[0]}" ]; then
  98          echo -e "$COLINFO"
  99          echo "Branche $branche:"
 100          n=0
 101          while [ "$n" -lt "${#liste[*]}" ]
 102          do
 103              echo -e "$COLCHOIX}$cpt$COLTXT} - $liste[$n]}"
 104              liste_complete[$cpt]="-b ou=$branche,$BASEDN $pref=\"$liste[$n]}\""
 105              liste_branche[$cpt]="-b ou=$branche,$BASEDN"
 106              liste_result[$cpt]=$liste[$n]}
 107              n=$((n+1))
 108              cpt=$((cpt+1))
 109          done
 110      fi
 111  done
 112  
 113  if [ "$cpt" = "0" ]; then
 114      echo -e "$COLTXT"
 115      echo "Aucune entree n'a ete trouvee pour le motif $motif"
 116      exit
 117  fi
 118  
 119  REP=""
 120  while [ -z "$REP" ]
 121  do
 122      echo -e "$COLTXT"
 123      echo -e "Numero de l'entree a afficher: [$COLDEFAUT}0$COLTXT}] $COLSAISIE\c"
 124      read REP
 125  
 126      if [ -z "$REP" ]; then
 127          REP=0
 128      fi
 129  
 130      if [ -n "$REP" -a -z "$liste_complete[$REP]}" ]; then
 131          echo -e "$COLERREUR"
 132          echo "Choix invalide"
 133          REP=""
 134      fi
 135  done
 136  
 137  debug="n"
 138  if [ "$debug" = "y" ]; then
 139      echo "Liste des entrees:"
 140      n=0
 141      while [ "$n" -lt "${#liste_complete[*]}" ]
 142      do
 143          echo "liste_complete[$n]=$liste_complete[$n]}"
 144          n=$((n+1))
 145      done
 146  fi
 147  
 148  echo -e "$COLCMD"
 149  #echo ldapsearch -xLLL -D $ROOTDN -w$PASSDN ${liste_complete[$REP]}
 150  #ldapsearch -xLLL -D $ROOTDN -w$PASSDN ${liste_complete[$REP]}
 151  ldapsearch -xLLL -D $ROOTDN -w$PASSDN $liste_branche[$REP]} $pref="$liste_result[$REP]}"
 152  
 153  echo -e "$COLTXT"
 154  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1