1 | /** |
---|
2 | * Irgendwo ist Quick & Dirty doch auch toll ;-) |
---|
3 | * Zusammen zu laden mit /srv/js/http-auth.js gibt das hier einen billig anmutenden |
---|
4 | * Javascript-Passwortschutz, hinter dem sich aber ein ordentlicher HTTP-Authentifikationsschutz |
---|
5 | * verbirgt ;-) |
---|
6 | * |
---|
7 | **/ |
---|
8 | |
---|
9 | function passwort(a) { |
---|
10 | var name = "\""+a.text+"\""; |
---|
11 | var url = a.target; |
---|
12 | var help_url = "fehler.shtm?"+a.text; |
---|
13 | |
---|
14 | var pwd = prompt( |
---|
15 | "Bitte geben sie das Passwort für das Projekt "+name+ |
---|
16 | " ein.\nWenn das Projekt nicht passwortgeschützt " + |
---|
17 | "ist, dann klicken sie einfach auf OK."); |
---|
18 | var prompt_text; |
---|
19 | if(!pwd) { |
---|
20 | // Benutzer hat abgebrochen |
---|
21 | return false; |
---|
22 | } else if(pwd == "" && !login(url, a.text.toLowerCase(), pwd)) { |
---|
23 | // Benutzer hat leeres Passwort eingegeben, und Projekt war doch |
---|
24 | // passwortgeschützt |
---|
25 | prompt_text = "Leider ist das Projekt "+name+" nicht öffentlich, "+ |
---|
26 | "d.h. ein Passwort für den Zugriff wird gefordert.\n" + |
---|
27 | "Klicken sie auf Abbrechen, falls sie weitere Hilfe benötigen "+ |
---|
28 | "oder geben sie das richtige Passwort ein und klicken sie auf OK."; |
---|
29 | } else if(!login(url, a.text.toLowerCase(), pwd)) { |
---|
30 | // Projekt war passwortgeschützt, Benutzer hat falsches Passwort eingegeben. |
---|
31 | prompt_text = "Das eingegebene Passwort für das Projekt "+name+" stimmt "+ |
---|
32 | "leider nicht.\nGeben sie das richtige Passwort ein oder klicken "+ |
---|
33 | "sie auf Abbrechen, falls sie weitere Hilfe benötigen."; |
---|
34 | } |
---|
35 | // Wer hier ankommt, will Passwort nochmal eingeben. |
---|
36 | for(var x=0;;x++) { |
---|
37 | pwd = prompt(prompt_text); |
---|
38 | |
---|
39 | if(pwd == "") { |
---|
40 | // Benutzer will zu Hilfeseite |
---|
41 | location.href = help_url; |
---|
42 | } else if(!pwd) { |
---|
43 | // Benutzer bricht ab (wie auch immer) |
---|
44 | return false; |
---|
45 | } else if(!login(url, a.text.toLowerCase(), pwd)) { |
---|
46 | // Benutzer hat immernoch falsches Passwort |
---|
47 | continue; |
---|
48 | } else { |
---|
49 | // Benutzer hat gar nichts und so. |
---|
50 | return true; |
---|
51 | } |
---|
52 | } // for |
---|
53 | } // function |
---|
54 | |
---|
55 | window.onload = function() { |
---|
56 | if(getHTTPObject()) { // can do such things |
---|
57 | var projekte = document.getElementsByTagName("th"); |
---|
58 | for(var th=0; th < projekte.length; th++) { |
---|
59 | if(projekte[th].firstChild.nodeName == 'A') |
---|
60 | projekte[th].firstChild.setAttribute("onclick", "return passwort(this);"); |
---|
61 | } // for th |
---|
62 | } |
---|
63 | }; // onload |
---|