From 7dd3725e50e72c05fef0443ffd810c929c5b26dc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 21 Nov 2006 22:58:16 +0000 Subject: [PATCH] New: Ajout script synchro utilisateurs de dolibarr vers LDAP --- .../adherents/sync_member_dolibarr2ldap.php | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 scripts/adherents/sync_member_dolibarr2ldap.php diff --git a/scripts/adherents/sync_member_dolibarr2ldap.php b/scripts/adherents/sync_member_dolibarr2ldap.php new file mode 100644 index 00000000000..031649120b6 --- /dev/null +++ b/scripts/adherents/sync_member_dolibarr2ldap.php @@ -0,0 +1,105 @@ + + * Copyright (C) 2006 Laurent Destailleur + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file scripts/adherents/sync_member_dolibarr2ldap.php + \ingroup ldap adherent + \brief Script de mise a jour des adherents dans LDAP depuis base Dolibarr +*/ + +// Test si mode batch +$sapi_type = php_sapi_name(); +$script_file=__FILE__; +if (eregi('([^\\\/]+)$',$script_file,$reg)) $script_file=$reg[1]; + +if (substr($sapi_type, 0, 3) == 'cgi') { + echo "Erreur: Vous utilisez l'interpreteur PHP pour le mode CGI. Pour executer $script_file en ligne de commande, vous devez utiliser l'interpreteur PHP pour le mode CLI.\n"; + exit; +} + +if (! isset($argv[1]) || ! $argv[1]) { + print "Usage: $script_file now\n"; + exit; +} +$now=$argv[1]; + +// Recupere env dolibarr +$version='$Revision$'; +$path=eregi_replace($script_file,'',$_SERVER["PHP_SELF"]); + +require_once($path."../../htdocs/master.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/ldap.class.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); + +$error=0; + + +print "***** $script_file ($version) *****\n"; + +/* +if (! $conf->global->LDAP_MEMBER_ACTIVE) +{ + print $langs->trans("LDAPSynchronizationNotSetupInDolibarr"); + exit 1; +} +*/ + +$sql = "SELECT rowid"; +$sql .= " FROM ".MAIN_DB_PREFIX."adherent"; + +$resql = $db->query($sql); +if ($resql) +{ + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($resql); + + $member = new Adherent($db); + $member->fetch($obj->rowid); + + print $langs->trans("UpdateMember")." rowid=".$member->id." ".$member->fullname; + + $result=$member->update_ldap($user); + if ($result > 0) + { + print " - ".$langs->trans("OK"); + } + else + { + $error++; + print " - ".$langs->trans("KO").' - '.$member->error; + } + print "\n"; + + $i++; + } +} +else +{ + dolibarr_print_error($db); +} + +return $error; +?>