[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 ######################################################################### 4 # /usr/share/se3/scripts/update_droits_xml.sh # 5 # # 6 ######################################################################### 7 # 8 # 9 # Met à jour droits.xml dans /var/se3/unattended/install/wpkg 10 # à partir des gon de l'annuaire : computers_is_admin, parc_can_manage et parc_can_view 11 # et des délégations lues dans la table mysql : base se3db, table delegation 12 13 # A executer chaque fois que les droits ou delegations sont modifiés 14 # Syntaxe : update_droits_xml.sh [--help] 15 16 ## $Id: update_droits_xml.sh 6785 2012-01-19 02:19:48Z keyser $ ## 17 # 18 19 CONFIG_INC="/var/www/se3/includes/config.inc.php" 20 dbhost="`gawk -F'[\"]' '/^ *\\$dbhost *=/ {print $2}' $CONFIG_INC`"; 21 dbname="`gawk -F'[\"]' '/^ *\\$dbname *=/ {print $2}' $CONFIG_INC`"; 22 dbuser="`gawk -F'[\"]' '/^ *\\$dbuser *=/ {print $2}' $CONFIG_INC`"; 23 dbpass="`gawk -F'[\"]' '/^ *\\$dbpass *=/ {print $2}' $CONFIG_INC`"; 24 25 RightsRDN=`mysql --host=$dbhost --user=$dbuser --password=$dbpass --skip-column-names --execute="SELECT value FROM params WHERE name='rightsRdn';" --silent $dbname` 26 BaseDN=`mysql --host=$dbhost --user=$dbuser --password=$dbpass --skip-column-names --execute="SELECT value FROM params WHERE name='ldap_base_dn';" --silent $dbname` 27 #RightsRDN=`echo "SELECT value FROM params WHERE name='rightsRdn'" | mysql -h localhost se3db -N` 28 #BaseDN=`echo "SELECT value FROM params WHERE name='ldap_base_dn'" | mysql -h localhost se3db -N` 29 # echo "RightsRDN=$RightsRDN; BaseDN=$BaseDN" 30 31 wpkgroot="/var/se3/unattended/install/wpkg" 32 wpkgwebdir="/var/www/se3/wpkg" 33 34 PROFILES_XML="$wpkgroot/profiles.xml"; 35 DROITS_XML="$wpkgroot/droits.xml"; 36 37 if [ "$BaseDN" == "" ]; then 38 echo "Met à jour le fichier /var/se3/unattended/install/wpkg/droits.xml" 39 echo " Syntaxe : update_droits_xml.sh RightsRDN BaseDN" 40 exit 1 41 fi 42 43 # Nom du profile TousLesPostes 44 TousLesPostes="_TousLesPostes" 45 46 echo '<?xml version="1.0" encoding="iso-8859-1"?>' > $DROITS_XML 47 echo '<!-- Généré par SambaEdu. Ne pas modifier -->' >> $DROITS_XML 48 echo '<droits>' >> $DROITS_XML 49 50 # mysql --host=$dbhost --user=$dbuser --password=$dbpass --skip-column-names --execute='SELECT login, parc, niveau FROM delegation' --silent $dbname 51 52 mysql --host=$dbhost --user=$dbuser --password=$dbpass --skip-column-names --execute='SELECT login, parc, niveau FROM delegation' --silent $dbname | 53 gawk ' BEGIN { 54 ListDroits = "ldapsearch -x -LLL -S \"cn\" -b \"'$RightsRDN','$BaseDN'\" \"(|(cn=computers_is_admin)(cn=parc_can_manage)(cn=parc_can_view))\" cn member"; 55 while ( ListDroits | getline ) { 56 if ( $1 == "cn:") { 57 if ( $2 == "computers_is_admin") { 58 Droits_EnCours=3; 59 } else if ( $2 == "parc_can_manage") { 60 Droits_EnCours=2; 61 } else if ( $2 == "parc_can_view") { 62 Droits_EnCours=1; 63 } 64 } 65 if ( $1 == "member:") { 66 if ( split($2,a,"[=,]") > 2 ) { 67 USER=tolower(a[2]); 68 droitParcs_EnCours[ USER ] = USER; 69 } 70 } 71 if ( $0 == "") { 72 for ( USER in droitParcs_EnCours ) { 73 if (Droits_EnCours == 3) { 74 print " <droit parc=\"'$TousLesPostes'\" user=\"" USER "\" droit=\"admin\" />"; 75 DroitParcs[USER] = 3; 76 } else if ( USER in DroitParcs) { 77 if ( DroitParcs[USER] < Droits_EnCours ) { 78 DroitParcs[USER] = Droits_EnCours; 79 } 80 } else { 81 DroitParcs[USER] = Droits_EnCours; 82 } 83 } 84 USER=""; 85 Droits_EnCours=0; 86 delete droitParcs_EnCours; 87 } 88 } 89 } 90 { 91 USER=$1; 92 PARC=$2; 93 DROIT=$3; 94 if ( USER in DroitParcs ) { 95 print " <droit parc=\"" PARC "\" user=\"" USER "\" droit=\"" DROIT "\" />"; 96 DroitParcs[USER] = 0; 97 } 98 } 99 END { 100 for ( USER in DroitParcs ) { 101 if ( DroitParcs[USER] == 2 ) { 102 print " <droit parc=\"" PARC "\" user=\"" USER "\" droit=\"manage\" />"; 103 } else if ( DroitParcs[USER] == 1 ) { 104 print " <droit parc=\"'$TousLesPostes'\" user=\"" USER "\" droit=\"view\" />"; 105 } 106 107 } 108 }' >> $DROITS_XML 109 # Fermeture du noeud profiles de $DROITS_XML 110 echo '</droits>' >> $DROITS_XML 111 chown www-se3 $DROITS_XML
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |