233bf62e6730741c2dc761a1c5e5d073f4d27cc1
[platal.git] / htdocs / javascript / do_challenge_response.js
1 /***************************************************************************
2 * Copyright (C) 2003-2004 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 function correctUserName() {
22 var u = document.forms.login.username;
23 // login with no space
24 if (u.value.indexOf(' ') < 0) return true;
25 var mots = u.value.split(' ');
26 // jean paul.du pont -> jean-paul.du-pont
27 if (u.value.indexOf('.') > 0) { u.value = mots.join('-'); return true; }
28 // jean dupont -> jean.dupont
29 if (mots.length == 2) { u.value = mots[0]+"."+mots[1]; return true; }
30 // jean dupont 2001 -> jean.dupont.2001
31 if (mots.length == 3 && mots[2] > 1920 && mots[2] < 3000) { u.value = mots.join('.'); return true; }
32 // jean de la vallee -> jean.de-la-vallee
33 if (mots[1].toUpperCase() == 'DE') { u.value = mots[0]+"."+mots.join('-').substr(mots[0].length+1); return true; }
34 // jean paul dupont -> jean-paul.dupont
35 if (mots.length == 3 && mots[0].toUpperCase() == 'JEAN') { u.value = mots[0]+"-"+mots[1]+"."+mots[2]; return true; }
36
37 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 -');
38
39 return false;
40 }
41
42 function doChallengeResponse() {
43
44 if (!correctUserName()) return false;
45
46 str = document.forms.login.username.value + ":" +
47 MD5(document.forms.login.password.value) + ":" +
48 document.forms.loginsub.challenge.value;
49
50 document.forms.loginsub.response.value = MD5(str);
51 document.forms.loginsub.username.value = document.forms.login.username.value;
52 document.forms.loginsub.remember.value = document.forms.login.remember.checked;
53 document.forms.loginsub.domain.value = document.forms.login.domain.value;
54 document.forms.login.password.value = "";
55 document.forms.loginsub.submit();
56
57 }