• moderiert von:
  • Arktur3.4Admin,
  • Arktur3.5Admin
Zum aktuellsten Beitrag
re: [schan-user] auflistung gesperrter benutzer
  • verfasst: 13.06.2008, 17:00
     
    registriert:
     Februar 2006
    Status:
    offline
    letzter Besuch:
    05.02.09
    Beiträge:
    5816
    Absender: hans-dietrich kirmse
    1. Hallo Andreas,
    2.  
    3. Andreas Garten schrieb:
    4.  
    5. > Sollte man den Fall "kein gesperrter Schüler vorhanden" nicht auch
    6. > irgendwie einbauen? Der hier vorgeschlagene Text ist zwar
    7. > programmtechnisch OK, aber liefert dem "Hobbyadmin", was ja wohl ein
    8. > Großteil der schulischen Arktur-Verwalter sein dürften, wenig oder
    9. > unverständliche Informationen. (Fragen, die auftreten könnten: Welche
    10. > Datei wurde nicht gefunden? Warum wurde sie nicht gefunden? Muss ich
    11. > diese Meldung als Information oder Fehler interpretieren? usw.)
    12.  
    13. - wenn kein Schüler gesperrt ist, wird das auch angegeben.
    14. - das Problem mit der Datei kann nicht auftreten, da "on the fly"
    15.  
    16. Installation: aus Sicherheitsgründen irgendwo im Admininterface, z.B.
    17. unter "/usr/www/admin". Vorschlag für Dateiname  "gesperrt.cgi"
    18. Achtung: Endung .pl geht im Admin-Interface nicht! Aufpassen wegen
    19. Linuxzeilenumbrüchen, Rechte wie bei anderen CGI-Scripten vergeben
    20. Aufruf z.B. mit  http://arktur/admin/gesperrt.cgi
    21.  
    22. Es wird (falls man noch nicht im Admin-Interface angemeldet ist) Login und
    23. Passwort verlangt. Ich hoffe, das erfüllt deine Erwartungen.
    24.  
    25. *NOCHMAL*: nicht im online-Interface oder in einem cgi-bin-Verzeichnis
    26. installieren. Dann könnte auch jeder Schüler dieses Script aufrufen. Das
    27. wäre dann die moderne Form des Prangers!
    28.  
    29. Mit freundlichen Grüßen
    30. Hans-Dietrich
    31.  
    32. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    33. #!/usr/bin/perl
    34. use warnings;
    35. use strict;
    36.  
    37. use CGI qw(:standard);
    38. use Net::LDAP;
    39.  
    40. my ($ldap_base, $ldap, $mesg, $kopf, $fuss);
    41.  
    42. # der Kopf der HTML-Seite, ab der übernächsten Zeile reines HTML!
    43. $kopf =<< 'ENDEKOPF';
    44. <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
    45. <html>
    46. <head>
    47. <title>gesperrte Schüler</title>
    48. <meta name="author" content="Hans-Dietrich Kirmse">
    49. <meta name="generator" content="Ulli Meybohms HTML EDITOR">
    50. </head>
    51. <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000"
    52. vlink="#FF0000">
    53. <h2>Hier werden alle gesperrten Schüler aufgelistet</h2>
    54. ENDEKOPF
    55.  
    56. # der Fuss der HTML-Seite, ab der übernächsten Zeile reines HTML!
    57. $fuss =<< 'FUSS';
    58. <hr noshade size="1">
    59. &copy; HD.Kirmse Erasmus-Reinhold-Gymnasium Saalfeld - Juni 2008
    60. </body>
    61. </html>
    62. FUSS
    63.  
    64. # wir holen uns die Suchbasis
    65. open DATEI, '<', '/etc/ldap.conf' or die "konnte ldap.conf nicht oeffnen, $!\n";
    66. while (my $zeile = <DATEI>) {
    67.    if ($zeile =~ m/^\s*base\s+(\w.*\w)\s*$/) {
    68.      $ldap_base = ;
    69.      last;
    70.    }
    71. }
    72. close DATEI;
    73.  
    74. # wir verbinden uns mit den LDAP
    75. $ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "$@";
    76. $ldap->bind or die "konnte mich nicht mit dem Server verbinden";
    77.  
    78. # Wir holen uns alle Logins, die disabled sind
    79. $mesg = $ldap->search(base => "ou=SCHUELER, o=SCHULE, $ldap_base",
    80.                        filter => 'sambaAcctFlags=[DU         ]',
    81.                        attrs  => ['uid', 'displayName']);
    82. $mesg->code and die $mesg->error;
    83.  
    84. # wir trennen uns vom LDAP
    85. $ldap->unbind;
    86.  
    87. # wir geben die HTML-Seite aus
    88. print "Content-type: text/html\n\n";
    89. print $kopf;
    90. if (scalar ($mesg->entries) == 0) { # falls kein Eintrag zurückgegeben wurde
    91.    print '<p>Es sind keine Schüler gesperrt!</p>', "\n";
    92. }
    93. else {                              # sonst
    94.    # Tabellenkopf
    95.    print '<table width="90%" border="1">',"\n";
    96.    print '<tr><th width="20%">Login</th> <th>Name und Klasse</th></tr>', "\n";
    97.  
    98.    # für jeden Eintrag
    99.    foreach my $entry ($mesg->entries) {
    100.      print '<tr>';                                     # Beginn Tabellenzeile
    101.      print '<td>',$entry->get_value('uid'),'</td>';                # 1. Zelle
    102.      print '<td>',$entry->get_value('displayName'),'</td>';        # 2. Zelle
    103.      print '</tr>', "\n";                              # Ende   Tabellenzeile
    104.    }
    105.    # Tabellenende
    106.    print "</table>\n";
    107. }
    108. print $fuss;
    109.  
    110. __END__
    111.  
    112.  
    113.  
    114. _______________________________________________
    115. schan-user mailing list
    116. schan-user@listserv.heise.de
    117. http://www.heise.de/bin/newsletter/listinfo/schan-user

 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

Hey Sie, Ihr Rechner prompted Sie an...

-- anonymous