source: spip-zone/_plugins_/authentification/auth_bd_externe/exec/auth_bd_externe.php @ 2342

Last change on this file since 2342 was 2342, checked in by phil@…, 15 years ago

Version initiale du plugin d'authentification des auteurs via une BD externe (mySQL ou autres si Pear DB est détecté et accessible)

File size: 10.3 KB
Line 
1<?php
2require_once(dirname(__FILE__).'/../inc/meta_auth_bd_externe.php');
3
4
5function exec_auth_bd_externe(){
6        global $connect_statut;
7        global $connect_toutes_rubriques;
8        global $spip_lang_right;
9        global $couleur_foncee;
10        include_ecrire("inc_presentation");
11       
12        if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {
13                debut_page(_T('titre'), "auth_bd_externe", "plugin");
14                echo _T('avis_non_acces_page');
15                fin_page();
16                exit;
17        }               
18       
19        debut_page(_T('authbdexterne:titre_plugin'), "auth_bd_externe", "plugin");
20        echo "<br/><br/><br/>";
21                                                                                                                                 
22        gros_titre(_T('authbdexterne:titre_plugin'));   
23       
24        debut_gauche();
25        debut_boite_info();
26        echo _T('info_gauche_admin_tech');
27        fin_boite_info();
28
29
30        debut_droite();
31
32        // TRAITEMENT DU FORMULAIRE DE CONNEXION AU SERVEUR DE BD
33        if (($_POST['param_connexion_db']=="etape1") OR ($_POST['param_connexion_db']=="etape2")) {
34                $bd_externe['serveur']=$_POST['bd_serveur_type'];
35                $bd_externe['hostname']=$_POST['bd_hostname'];
36                $bd_externe['login']=$_POST['bd_login'];
37                $bd_externe['password']=$_POST['bd_password'];
38                $bd_externe['database']=$_POST['bd_database'];
39               
40                // TRAITEMENT DU FORMULAIRE TABLE ET CHAMPS DE LA BASE EXTERNE
41                if ($_POST['param_connexion_db']=="etape2") {
42                        $bd_externe['table']=$_POST['bd_table'];
43                        $bd_externe['champ_cle']=$_POST['bd_champ_cle'];
44                        $bd_externe['table_jointure']=$_POST['bd_table_jointure'];
45                       
46                        $bd_externe['champ_login_ext']=$_POST['bd_champ_login_ext'];
47                        $bd_externe['champ_passwd']=$_POST['bd_champ_passwd'];
48                        $bd_externe['type_passwd']=$_POST['bd_type_passwd'];
49                        $bd_externe['champ_alea']=$_POST['bd_champ_alea'];
50                       
51                        $bd_externe['champ_prenom']=$_POST['bd_champ_prenom'];
52                        $bd_externe['champ_nom']=$_POST['bd_champ_nom'];
53                        $bd_externe['champ_bio']=$_POST['bd_champ_bio'];
54                        $bd_externe['champ_email']=$_POST['bd_champ_email'];
55                        $bd_externe['champ_nom_site']=$_POST['bd_champ_nom_site'];
56                        $bd_externe['champ_url_site']=$_POST['bd_champ_url_site'];
57                        $bd_externe['champ_pgp']=$_POST['bd_champ_pgp'];
58                       
59                        $bd_externe['champ_statut']=$_POST['bd_champ_statut'];
60                        $bd_externe['val_redacteur']=$_POST['bd_val_redacteur'];
61                        $bd_externe['val_administrateur']=$_POST['bd_val_administrateur'];
62                       
63               
64                }
65       
66                ecrire_parametrage_auth_bd_externe ($bd_externe);
67        }
68
69
70       
71        // BLOC PARAMETRAGE CONNEXION AU SERVEUR DE BD
72        debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_connexion_db'));
73       
74       
75        echo generer_url_post_ecrire('auth_bd_externe');
76               
77
78        $bd_externe=lire_parametrage_auth_bd_externe ();
79
80        if ($is_pearDB=@include_once("DB.php"))  $serveurs=array( "mysql"=>"MySQL",
81                                                                                                                                                                                                                                                "pgsql"=>"PostgreSQL",
82                                                                                                                                                                                                                                                "ibase"=>"InterBase",
83                                                                                                                                                                                                                                                "msql"=>"Mini SQL",
84                                                                                                                                                                                                                                                "mssql"=>"Microsoft SQL Server",
85                                                                                                                                                                                                                                                "oci8"=>"Oracle 7/8/8i",
86                                                                                                                                                                                                                                                "odbc"=>"ODBC (Open Database Connectivity)",
87                                                                                                                                                                                                                                                "sybase"=>"SyBase",
88                                                                                                                                                                                                                                                "ifx"=>"Informix",
89                                                                                                                                                                                                                                                "fbsql"=>"FrontBase");
90
91        else {         
92                $serveurs=array( "mysql"=>"MySQL");
93                $bd_externe['serveur']="mysql";
94                echo "<p align='justify'>",
95                                        http_img_pack('warning.gif', _T('info_avertissement'), "width='48' height='48' align='right'"),
96                                        _T('authbdexterne:pear_warning'),
97                                        "</p><br />";
98                }
99       
100        $serveurs=array("mysql"=>"MySQL",
101                                                                        "pgsql"=>"PostgreSQL",
102                                                                        "ibase"=>"InterBase",
103                                                                        "msql"=>"Mini SQL",
104                                                                        "mssql"=>"Microsoft SQL Server",
105                                                                        "oci8"=>"Oracle 7/8/8i",
106                                                                        "odbc"=>"ODBC (Open Database Connectivity)",
107                                                                        "sybase"=>"SyBase",
108                                                                        "ifx"=>"Informix",
109                                                                        "fbsql"=>"FrontBase");
110       
111       
112        // Sélection du serveur de BD   
113        echo _T('authbdexterne:info_serveur')." : ";
114        echo "\n<select name='bd_serveur_type' class='fondl' align='middle'>\n";
115        echo "<option value='".$bd_externe['serveur']."' selected>".$serveurs[$bd_externe['serveur']]."</option>\n";
116        reset ($serveurs);
117        while (list($key,$val) = each ($serveurs)) {
118                if ($key <> $bd_externe['serveur'])
119                        echo "<option value='$key'>$val</option>\n";
120        }
121        echo "</select>";
122
123        // Paramètres de connexion     
124        echo "<p>"._T('authbdexterne:info_serveur_hostname')." : ";
125        echo "<INPUT TYPE='text' NAME='bd_hostname' CLASS='fondl' VALUE=\"".$bd_externe['hostname']."\" SIZE='15' $onfocus></p>";
126        echo "<p>"._T('authbdexterne:info_serveur_login')." : ";
127        echo "<INPUT TYPE='text' NAME='bd_login' CLASS='fondl' VALUE=\"".$bd_externe['login']."\" SIZE='15' $onfocus></p>";
128        echo "<p>"._T('authbdexterne:info_serveur_password')." : ";
129        echo "<INPUT TYPE='password' NAME='bd_password' CLASS='fondl' VALUE=\"".$bd_externe['password']."\" SIZE='15' $onfocus></p>";
130        echo "<p>"._T('authbdexterne:info_serveur_database')." : ";
131        echo "<INPUT TYPE='text' NAME='bd_database' CLASS='fondl' VALUE=\"".$bd_externe['database']."\" SIZE='15' $onfocus></p>";
132       
133        // Validation étape 1
134        echo "<INPUT NAME='param_connexion_db' VALUE='etape1' TYPE='hidden'>\n";
135        echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
136       
137       
138        fin_cadre_relief();
139       
140        if ($bd_externe['parametrage_serveur_ok']) {
141               
142                // BLOC PARAMETRAGE BD
143                echo "<br /><br />";
144                debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_db'));         
145               
146               
147                // Specification de(s) table(s)
148                echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section1')."</p>";
149                echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide1')."</p>";
150                echo "<p>"._T('authbdexterne:info_bd_table')." : ";
151                echo "<INPUT TYPE='text' NAME='bd_table' CLASS='fondl' VALUE=\"".$bd_externe['table']."\" SIZE='15' $onfocus></p>";
152                echo "<p>"._T('authbdexterne:info_bd_champ_cle')." : ";
153                echo "<INPUT TYPE='text' NAME='bd_champ_cle' CLASS='fondl' VALUE=\"".$bd_externe['champ_cle']."\" SIZE='15' $onfocus></p>";
154                echo "<p>"._T('authbdexterne:info_bd_table_jointure')." : ";
155                echo "<INPUT TYPE='text' NAME='bd_table_jointure' CLASS='fondl' VALUE=\"".$bd_externe['table_jointure']."\" SIZE='15' $onfocus></p>";
156                echo "<hr />";
157
158                $cryptage=array("clear_text"=>"mot de passe en clair",
159                                                                                "md5"=>"cryptage en md5",
160                                                                                "challenge_md5"=>"challenge md5 (spip)",
161                                                                                "crypt"=>"cryptage en crypt",
162                                                                                "unix"=>"cryptage unix (crypt+salt)");
163                                                                                                                                                                 
164                                                                                       
165                // Specification des champs pour l'authentification et type de cryptage du mot de passe
166                echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section2')."</p>";
167                echo "<p>"._T('authbdexterne:info_bd_champ_login_ext')." : ";
168                echo "<INPUT TYPE='text' NAME='bd_champ_login_ext' CLASS='fondl' VALUE=\"".$bd_externe['champ_login_ext']."\" SIZE='15' $onfocus></p>";
169                echo "<p>"._T('authbdexterne:info_bd_champ_passwd')." : ";
170                echo "<INPUT TYPE='text' NAME='bd_champ_passwd' CLASS='fondl' VALUE=\"".$bd_externe['champ_passwd']."\" SIZE='15' $onfocus></p>";
171               
172                // Sélection cryptage password
173                echo _T('authbdexterne:info_bd_type_passwd')." : ";
174                echo "\n<select name='bd_type_passwd' class='fondl' align='middle'>\n";
175                echo "<option value='".$bd_externe['type_passwd']."' selected>".$cryptage[$bd_externe['type_passwd']]."</option>\n";
176                reset ($cryptage);
177                while (list($key,$val) = each ($cryptage)) {
178                        if ($key <> $bd_externe['type_passwd'])
179                                echo "<option value='$key'>$val</option>\n";
180                }
181                echo "</select>";               
182               
183                echo "<p>"._T('authbdexterne:info_bd_champ_alea')." : ";
184                echo "<INPUT TYPE='text' NAME='bd_champ_alea' CLASS='fondl' VALUE=\"".$bd_externe['champ_alea']."\" SIZE='15' $onfocus></p>";
185                echo "<hr />";
186       
187                // Specification des champs optionnels relatifs aux informations personnelles
188                echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section3')."</p>";
189                echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide3')."</p>";
190                echo "<p>"._T('authbdexterne:info_bd_champ_prenom')." : ";
191                echo "<INPUT TYPE='text' NAME='bd_champ_prenom' CLASS='fondl' VALUE=\"".$bd_externe['champ_prenom']."\" SIZE='15' $onfocus></p>";
192                echo "<p>"._T('authbdexterne:info_bd_champ_nom')." : ";
193                echo "<INPUT TYPE='text' NAME='bd_champ_nom' CLASS='fondl' VALUE=\"".$bd_externe['champ_nom']."\" SIZE='15' $onfocus></p>";
194                echo "<p>"._T('authbdexterne:info_bd_champ_bio')." : ";
195                echo "<INPUT TYPE='text' NAME='bd_champ_bio' CLASS='fondl' VALUE=\"".$bd_externe['champ_bio']."\" SIZE='15' $onfocus></p>";
196                echo "<p>"._T('authbdexterne:info_bd_champ_email')." : ";
197                echo "<INPUT TYPE='text' NAME='bd_champ_email' CLASS='fondl' VALUE=\"".$bd_externe['champ_email']."\" SIZE='15' $onfocus></p>";
198                echo "<p>"._T('authbdexterne:info_bd_champ_nom_site')." : ";
199                echo "<INPUT TYPE='text' NAME='bd_champ_nom_site' CLASS='fondl' VALUE=\"".$bd_externe['champ_nom_site']."\" SIZE='15' $onfocus></p>";
200                echo "<p>"._T('authbdexterne:info_bd_champ_url_site')." : ";
201                echo "<INPUT TYPE='text' NAME='bd_champ_url_site' CLASS='fondl' VALUE=\"".$bd_externe['champ_url_site']."\" SIZE='15' $onfocus></p>";
202                echo "<p>"._T('authbdexterne:info_bd_champ_pgp')." : ";
203                echo "<INPUT TYPE='text' NAME='bd_champ_pgp' CLASS='fondl' VALUE=\"".$bd_externe['champ_pgp']."\" SIZE='15' $onfocus></p>";
204                echo "<hr />";
205               
206                // Spécification des champs optionnels relatifs à la détermination du statut
207                echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section4')."</p>";
208                echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide4')."</p>";
209                echo "<p>"._T('authbdexterne:info_bd_champ_statut')." : ";
210                echo "<INPUT TYPE='text' NAME='bd_champ_statut' CLASS='fondl' VALUE=\"".$bd_externe['champ_statut']."\" SIZE='15' $onfocus></p>";
211                echo "<p>"._T('authbdexterne:info_bd_val_redacteur')." : ";
212                echo "<INPUT TYPE='text' NAME='bd_val_redacteur' CLASS='fondl' VALUE=\"".$bd_externe['val_redacteur']."\" SIZE='15' $onfocus></p>";
213                echo "<p>"._T('authbdexterne:info_bd_val_administrateur')." : ";
214                echo "<INPUT TYPE='text' NAME='bd_val_administrateur' CLASS='fondl' VALUE=\"".$bd_externe['val_administrateur']."\" SIZE='15' $onfocus></p>";
215                // Validation étape 2
216                echo "<INPUT NAME='param_connexion_db' VALUE='etape2' TYPE='hidden'>\n";
217                echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
218               
219                fin_cadre_relief();
220        }
221       
222        echo "</form>";         
223       
224        fin_page();
225}
226
227?>
Note: See TracBrowser for help on using the repository browser.