diff --git a/dev/ldap/ldapadd_sample2.txt b/dev/ldap/ldapadd_sample2.txt index 47c86534a488b29acce8de927d074055094a8e8e..c739f1d291a2daa04b95b261ebafe8f72d2a3c6b 100644 --- a/dev/ldap/ldapadd_sample2.txt +++ b/dev/ldap/ldapadd_sample2.txt @@ -3,7 +3,7 @@ # Use this sample to add a ou "contacts" # This is the second thing to create after creating the root my-domain # -# ldapadd -c -v -D cn=Manager,dc=my-domain,dc=com -W -f ldapadd_sample1.txt +# ldapadd -c -v -D cn=Manager,dc=my-domain,dc=com -W -f ldapadd_sample2.txt dn: ou=contacts,dc=my-domain,dc=com objectClass: organizationalUnit diff --git a/scripts/company/sync_contacts_dolibarr2ldap.php b/scripts/company/sync_contacts_dolibarr2ldap.php index 9e282151f88096c35d85493c2910feacac8066d0..974df06012de903c4c67104470cc9da70c37f0c0 100644 --- a/scripts/company/sync_contacts_dolibarr2ldap.php +++ b/scripts/company/sync_contacts_dolibarr2ldap.php @@ -21,7 +21,7 @@ */ /** - \file scripts/company/ldap-update-allcontact.php + \file scripts/company/sync_contacts_dolibarr2ldap.php \ingroup ldap company \brief Script de mise a jour des contacts dans LDAP depuis base Dolibarr */ @@ -42,14 +42,26 @@ if (! isset($argv[1]) || ! $argv[1]) { } $now=$argv[1]; -// Recupere root dolibarr +// 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."/contact.class.php"); require_once(DOL_DOCUMENT_ROOT."/user.class.php"); -$user = new User($db); +$error=0; + + +print "***** $script_file ($version) *****\n"; + +/* +if (! $conf->global->LDAP_CONTACT_ACTIVE) +{ + print $langs->trans("LDAPSynchronizationNotSetupInDolibarr"); + exit 1; +} +*/ $sql = "SELECT idp as rowid"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople"; @@ -77,6 +89,7 @@ if ($resql) } else { + $error++; print " - ".$langs->trans("KO").' - '.$contact->error; } print "\n"; @@ -89,4 +102,5 @@ else dolibarr_print_error($db); } +return $error; ?> diff --git a/scripts/user/sync_user_dolibarr2ldap.php b/scripts/user/sync_user_dolibarr2ldap.php new file mode 100644 index 0000000000000000000000000000000000000000..667859958ad25a94182c0a3dafae0dbe8d153b59 --- /dev/null +++ b/scripts/user/sync_user_dolibarr2ldap.php @@ -0,0 +1,106 @@ +<?PHP +/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> + * Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * 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/user/sync_user_dolibarr2ldap.php + \ingroup ldap company + \brief Script de mise a jour des users 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."/contact.class.php"); +require_once(DOL_DOCUMENT_ROOT."/user.class.php"); + +$error=0; + + +print "***** $script_file ($version) *****\n"; + +/* +if (! $conf->global->LDAP_SYNCHRO_ACTIVE) +{ + print $langs->trans("LDAPSynchronizationNotSetupInDolibarr"); + exit 1; +} +*/ + +$sql = "SELECT rowid"; +$sql .= " FROM ".MAIN_DB_PREFIX."user"; + +$resql = $db->query($sql); +if ($resql) +{ + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($resql); + + $fuser = new User($db); + $fuser->id = $obj->rowid; + $fuser->fetch(); + + print $langs->trans("UpdateUser")." rowid=".$fuser->id." ".$fuser->fullname; + + $result=$fuser->update_ldap($user); + if ($result > 0) + { + print " - ".$langs->trans("OK"); + } + else + { + $error++; + print " - ".$langs->trans("KO").' - '.$fuser->error; + } + print "\n"; + + $i++; + } +} +else +{ + dolibarr_print_error($db); +} + +return $error; +?>