fix bug d'include de javascript lorsqu'on essaie de se logger depuis des pages comme...
[platal.git] / templates / javascript / do_challenge_response.js.tpl
1 /***************************************************************************
2  *  Copyright (C) 2003-2006 Polytechnique.org                              *
3  *  http://opensource.polytechnique.org/                                   *
4  *                                                                         *
5  *  This program is free software; you can redistribute it and/or modify   *
6  *  it under the terms of the GNU General Public License as published by   *
7  *  the Free Software Foundation; either version 2 of the License, or      *
8  *  (at your option) any later version.                                    *
9  *                                                                         *
10  *  This program is distributed in the hope that it will be useful,        *
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
13  *  GNU General Public License for more details.                           *
14  *                                                                         *
15  *  You should have received a copy of the GNU General Public License      *
16  *  along with this program; if not, write to the Free Software            *
17  *  Foundation, Inc.,                                                      *
18  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
19  ***************************************************************************/
20
21 document.write('<script language="javascript" src="{rel}/javascript/secure_hash.js.php"></script>');
22
23 {literal}
24 function correctUserName() {
25     var u = document.forms.login.username;
26     // login with no space
27     if (u.value.indexOf(' ') < 0) return true;
28     var mots = u.value.split(' ');
29     // jean paul.du pont -> jean-paul.du-pont
30     if (u.value.indexOf('.') > 0) { u.value = mots.join('-'); return true; }
31     // jean dupont  -> jean.dupont
32     if (mots.length == 2) { u.value = mots[0]+"."+mots[1]; return true; }
33     // jean dupont 2001 -> jean.dupont.2001
34     if (mots.length == 3 && mots[2] > 1920 && mots[2] < 3000) { u.value = mots.join('.'); return true; }
35     // jean de la vallee -> jean.de-la-vallee
36     if (mots[1].toUpperCase() == 'DE') { u.value = mots[0]+"."+mots.join('-').substr(mots[0].length+1); return true; }
37     // jean paul dupont -> jean-paul.dupont
38     if (mots.length == 3 && mots[0].toUpperCase() == 'JEAN') { u.value = mots[0]+"-"+mots[1]+"."+mots[2]; return true; }
39     
40     alert('Ton email ne doit pas contenir de blanc.\nLe format standard est\n\nprenom.nom.promotion\n\nSi ton nom ou ton prenom est composé,\nsépare les mots par des -');
41
42     return false;
43 }
44
45 function doChallengeResponse() {
46
47     if (!correctUserName()) return false;
48
49     var new_pass = hash_encrypt(document.forms.login.password.value);
50     var old_pass = MD5(document.forms.login.password.value);
51     
52     str = document.forms.login.username.value + ":" +
53         new_pass + ":" +
54         document.forms.loginsub.challenge.value;
55
56     document.forms.loginsub.response.value = hash_encrypt(str);
57     document.forms.loginsub.xorpass.value = hash_xor(new_pass, old_pass);
58     document.forms.loginsub.username.value = document.forms.login.username.value;
59     document.forms.loginsub.remember.value = document.forms.login.remember.checked;
60     document.forms.loginsub.domain.value = document.forms.login.domain.value;
61     document.forms.login.password.value = "";
62     document.forms.loginsub.submit();
63
64 }
65 {/literal}