e6623679432b952b0aeb57d4537393a68d47e251
[lhc/web/www.git] / www / ecrire / install / etape_ldap3.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
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_ldap3_dist
19 function install_etape_ldap3_dist() {
20 $adresse_ldap = _request('adresse_ldap');
21 $login_ldap = _request('login_ldap');
22 $pass_ldap = _request('pass_ldap');
23 $port_ldap = _request('port_ldap');
24
25 $base_ldap_text = defined('_INSTALL_BASE_LDAP')
26 ? _INSTALL_BASE_LDAP
27 : 'ou=users, dc=mon-domaine, dc=com';
28
29 echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
30
31 echo info_etape(
32 _T('info_chemin_acces_1'),
33 info_progression_etape(3, 'etape_ldap', 'install/')
34 ),
35 _T('info_chemin_acces_2');
36
37 $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap");
38 if ($ldap_link) {
39 @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap");
40 $result = @ldap_read($ldap_link, '', 'objectclass=*', array('namingContexts'));
41 $info = @ldap_get_entries($ldap_link, $result);
42 @ldap_close($ldap_link);
43 }
44
45 $checked = false;
46 $res = '';
47 if (is_array($info) and $info['count'] > 0) {
48 $res .= '<p>' . _T('info_selection_chemin_acces') . '</p>';
49 $res .= '<ul>';
50 $n = 0;
51 for ($i = 0; $i < $info['count']; $i++) {
52 $names = $info[$i]['namingcontexts'];
53 if (is_array($names)) {
54 for ($j = 0; $j < $names['count']; $j++) {
55 $n++;
56 $res .= '<li><input name="base_ldap" value="' . spip_htmlspecialchars($names[$j]) . "\" type='radio' id='tab$n'";
57 if (!$checked) {
58 $res .= ' checked="checked"';
59 $checked = true;
60 }
61 $res .= ' />';
62 $res .= "<label for='tab$n'>" . spip_htmlspecialchars($names[$j]) . "</label></li>\n";
63 }
64 }
65 }
66 $res .= '</ul>';
67 $res .= _T('info_ou') . ' ';
68 }
69 $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'";
70 if (!$checked) {
71 $res .= ' checked="checked"';
72 $checked = true;
73 }
74
75 $res .= ' />'
76 . "\n<label for='manuel'>" . _T('entree_chemin_acces') . '</label> '
77 . "\n<fieldset>"
78 . "<input type='text' name='base_ldap_text' class='text' value=\"$base_ldap_text\" size='40' />"
79 . "\n</fieldset>"
80 . "\n<input type='hidden' name='etape' value='ldap4' />"
81 . install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap'))
82 . bouton_suivant();
83
84 echo generer_form_ecrire('install', $res);
85
86 echo install_fin_html();
87 }