[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / ecrire / install / etape_ldap2.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13
14 if (!defined('_ECRIRE_INC_VERSION')) {
15 return;
16 }
17
18 // http://code.spip.net/@install_etape_ldap2_dist
19 function install_etape_ldap2_dist() {
20 echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
21
22 $adresse_ldap = _request('adresse_ldap');
23
24 $port_ldap = _request('port_ldap');
25
26 $tls_ldap = _request('tls_ldap');
27
28 $protocole_ldap = _request('protocole_ldap');
29
30 $login_ldap = _request('login_ldap');
31
32 $pass_ldap = _request('pass_ldap');
33
34 $port_ldap = intval($port_ldap);
35
36 $tls = false;
37
38 if ($tls_ldap == 'oui') {
39 if ($port_ldap == 636) {
40 $adresse_ldap = "ldaps://$adresse_ldap";
41 } else {
42 $tls = true;
43 }
44 }
45 $ldap_link = ldap_connect($adresse_ldap, $port_ldap);
46 $erreur = "ldap_connect($adresse_ldap, $port_ldap)";
47
48 if ($ldap_link) {
49 if (!ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap)) {
50 $protocole_ldap = 2;
51 ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap);
52 }
53 if ($tls === true) {
54 if (!ldap_start_tls($ldap_link)) {
55 $erreur = "ldap_start_tls($ldap_link) $adresse_ldap, $port_ldap";
56 $ldap_link = false;
57 }
58 }
59 if ($ldap_link) {
60 $ldap_link = ldap_bind($ldap_link, $login_ldap, $pass_ldap);
61 $erreur = "ldap_bind('$ldap_link', '$login_ldap', '$pass_ldap'): $adresse_ldap, $port_ldap";
62 }
63 }
64
65 if ($ldap_link) {
66 echo info_etape(
67 _T('titre_connexion_ldap'),
68 info_progression_etape(2, 'etape_ldap', 'install/')
69 ), _T('info_connexion_ldap_ok');
70 echo generer_form_ecrire('install', (
71 "\n<input type='hidden' name='etape' value='ldap3' />"
72 . "\n<input type='hidden' name='adresse_ldap' value=\"$adresse_ldap\" />"
73 . "\n<input type='hidden' name='port_ldap' value=\"$port_ldap\" />"
74 . "\n<input type='hidden' name='login_ldap' value=\"$login_ldap\" />"
75 . "\n<input type='hidden' name='pass_ldap' value=\"$pass_ldap\" />"
76 . "\n<input type='hidden' name='protocole_ldap' value=\"$protocole_ldap\" />"
77 . "\n<input type='hidden' name='tls_ldap' value=\"$tls_ldap\" />"
78 . bouton_suivant()));
79 } else {
80 echo info_etape(_T('titre_connexion_ldap')), info_progression_etape(1, 'etape_ldap', 'install/', true),
81 "<div class='error'><p>" . _T('avis_connexion_ldap_echec_1') . '</p>',
82 '<p>' . _T('avis_connexion_ldap_echec_2') .
83 "<br />\n" . _T('avis_connexion_ldap_echec_3') .
84 '<br /><br />' . $erreur . '<b> ?</b></p></div>';
85 }
86
87 echo install_fin_html();
88 }