[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / install / etape_ldap5.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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 if (!defined('_ECRIRE_INC_VERSION')) return;
14 include_spip('inc/headers');
15 include_spip('auth/ldap');
16
17 // http://doc.spip.org/@install_etape_ldap5_dist
18 function install_etape_ldap5_dist()
19 {
20 etape_ldap5_save();
21 etape_ldap5_suite();
22 }
23
24 function etape_ldap5_save()
25 {
26 if (!@file_exists(_FILE_CONNECT_TMP))
27 redirige_url_ecrire('install');
28
29 ecrire_meta('ldap_statut_import', _request('statut_ldap'));
30
31 lire_fichier(_FILE_CONNECT_TMP, $conn);
32
33 if ($p = strpos($conn, "'');")) {
34 ecrire_fichier(_FILE_CONNECT_TMP,
35 substr($conn, 0, $p+1)
36 . _FILE_LDAP
37 . substr($conn, $p+1));
38 }
39
40 $adresse_ldap = addcslashes(_request('adresse_ldap'),"'\\");
41 $login_ldap = addcslashes(_request('login_ldap'),"'\\");
42 $pass_ldap = addcslashes(_request('pass_ldap'),"'\\");
43 $port_ldap = addcslashes(_request('port_ldap'),"'\\");
44 $tls_ldap = addcslashes(_request('tls_ldap'),"'\\");
45 $protocole_ldap = addcslashes(_request('protocole_ldap'),"'\\");
46 $base_ldap = addcslashes(_request('base_ldap'),"'\\");
47 $base_ldap_text = addcslashes(_request('base_ldap_text'),"'\\");
48
49 $conn = "\$GLOBALS['ldap_base'] = '$base_ldap';\n"
50 . "\$GLOBALS['ldap_link'] = @ldap_connect('$adresse_ldap','$port_ldap');\n"
51 . "@ldap_set_option(\$GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'$protocole_ldap');\n"
52 . (($tls_ldap != 'oui') ? '' :
53 "@ldap_start_tls(\$GLOBALS['ldap_link']);\n")
54 . "@ldap_bind(\$GLOBALS['ldap_link'],'$login_ldap','$pass_ldap');\n";
55
56 $champs = is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array();
57 $res = '';
58 foreach ($champs as $champ => $v ) {
59 $nom = 'ldap_' . $champ;
60 $val = trim(_request($nom));
61 if (preg_match('/^\w*$/', $val)) {
62 if ($val) $val = _q($val);
63 } else $val = "array(" . _q(preg_split('/\W+/', $val)) . ')';;
64 if ($val) $res .= "'$champ' => " . $val . ",";
65 }
66 $conn .= "\$GLOBALS['ldap_champs'] = array($res);\n";
67
68 install_fichier_connexion(_DIR_CONNECT . _FILE_LDAP, $conn);
69 }
70
71 function etape_ldap5_suite()
72 {
73 echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
74
75 echo info_etape(_T('info_ldap_ok'), info_progression_etape(5,'etape_ldap','install/'), _T('info_terminer_installation'));
76
77 echo generer_form_ecrire('install', (
78 "<input type='hidden' name='etape' value='3' />" .
79 "<input type='hidden' name='ldap_present' value='true' />"
80 . bouton_suivant()));
81
82 echo install_fin_html();
83 }
84
85
86 ?>