#!/bin/sh ##------------------------------------------------------------------------------ ## c3Surf - login for services __FLI4LVER__ ## ## Creation: 07.01.2008 Frank Saurbier - c3Surf@arcor.de ## Last Update: $Id$ ## ## Copyright (c) 2008-2010 - Frank Saurbier ## Copyright (c) 2010-2016 - Frank Saurbier, fli4l-Team ## ## Licence and conditions look at ~/config/c3surf.txt ##------------------------------------------------------------------------------- # # ########################################################################### # eigenes interface, nicht fli4l Admin - macht alles noch ohne cgi-helper # verwendet jetzt method "POST" # kann aber auch mit "GET" genutzt werden (nur FreeSurf, nicht bei LOGINUSR!) # ########################################################################### # Package Vars . /var/run/c3surf.conf # POST Variablen holen, nur ohne LOGINUSR Option if [ "$OPT_LOGINUSR" != "yes" ] then eval "`proccgi $*`" mytitle="Free Surf" else mytitle="Login User" fi # funzt nicht: sollte Portal-Funktion werden: muss noch forschen # Infos an den Benutzer vor der Anmeldung geben? # if [ "$LOGINUSR_SHOW_INFO" = "no" ] # then # echo "Location: http://$C3SURF_HTTPD_HOST_NAME/login/index.cgi?action=login&time=`date +%s`" # echo # exit # fi # Vorsicht mit z.B. backticks, also umwandeln und nur Zeichen 'A-Za-z0-9@äüöÄÜÖß.' zulassen if [ "$OPT_LOGINUSR" = "yes" ] then # lese Daten der Anmeldung if [ -f "$C3SURF_TMP_PATH/$REMOTE_ADDR.time" ] then { read fstime fscount fsid fsip fsmac fsvorname fsname fsmail } < $C3SURF_TMP_PATH/$REMOTE_ADDR.time fi # etwas aufräumen unset fstime fscount fsmac else if [ "$REQUEST_METHOD" = "GET" ] then # Verarbeitung FORM_vorname, -name und mail # eigentlich obsolete, da method "POST" gewählt ist - Aufruf ist aber möglich # index.cgi?action=unlock&fsvorname=&fsname=&fsmail= if [ "$FORM_action" = "unlock" ] then fsvorname=$(echo "$FORM_fsvorname" | tr -d '\n' | tr -c 'äüöÄÜÖß\-[:alnum:]' '_') fsname=$(echo "$FORM_fsname" | tr -d '\n' | tr -c 'äüöÄÜÖß\-[:alnum:]' '_') fsmail=$(echo "$FORM_fsmail" | tr -d '\n' | tr -c '@äüöÄÜÖß\-.[:alnum:]' '_') fsid=$$ fi else # POST setzt automatisch die fsid eval $(echo "$FORM_action" | tr -d '\r' | tr '\n' ';' | tr -c '@äüöÄÜÖß\-.=;[:alnum:]' '_') fi fi # page logging if [ "$C3SURF_DOLOG_PAGE" = "yes" ] then /usr/local/bin/c3surf_log_page.sh "$C3SURF_LOG_PATH" "$REMOTE_ADDR" "$HTTP_USER_AGENT" "$fsid" "$fsvorname" "$fsname" "$fsmail" fi # Action: login if [ "$REQUEST_METHOD" = "GET" ] then if [ "$FORM_action" = "unlock" ] then /usr/local/bin/c3surf_worker.sh "doLogin" "$REMOTE_ADDR" "$fsid" "$fsvorname" "$fsname" "$fsmail" fi else # das war ein POST also action bitte if [ "$OPT_LOGINUSR" = "yes" ] then echo "Location: http://$C3SURF_HTTPD_HOST_NAME/login/index.cgi?action=login&time=`date +%s`" echo exit 0 else /usr/local/bin/c3surf_worker.sh "doLogin" "$REMOTE_ADDR" "$fsid" "$fsvorname" "$fsname" "$fsmail" fi fi # checke erstmal ob wir Umleiten müssen # ### # passe an den richtigen Host an # ### if [ "$REQUEST_METHOD" = "POST" ] then mynewurl="" else # rc-script now translates capital letters in C3SURF_HTTPD_HOST_NAME # HTTP_HOST has no capital letters, but we do a translate - it could change in future if [ "$(echo "$HTTP_HOST" | tr 'A-Z' 'a-z')" != "$C3SURF_HTTPD_HOST_NAME" ] then # IE reports: Umleitungsfehler (war gross-klein schreib-Problem) echo "Location: http://$C3SURF_HTTPD_HOST_NAME/" echo exit 0 # Manfred: flackernde Variante mit 0 ==> besser mit 3 # flackern war ebenfalls durch gross-klein-schreib-Problem entstanden, daher wieder 0. # the coding above is the better solution. # mynewurl="" else if [ "$FORM_action" = "unlock" ] then mynewurl="" else mynewurl="" fi fi fi # mynewurl enthält den Rest des html head # language, do this work late to save resources # Thx to Wieland Große for helping - from Mx. ;-) . /srv/www/c3surf/lang/default if [ ! -f /srv/www/c3surf/lang/c3surf.$c3surf_login_lang ] then # we use english language if the selected language file does not exist c3surf_login_lang="en" echo "c3surf_login_lang=\"en\"" > /srv/www/c3surf/lang/default fi # this is correct now . /srv/www/c3surf/lang/c3surf.$c3surf_login_lang select other languages myLangSelect="" for f in /srv/www/c3surf/lang/c3surf.* do # schließe den Abfrage-String und die selektierte Sprache aus if [ "$f" != "/srv/www/c3surf/lang/c3surf.*" -a "$f" != "/srv/www/c3surf/lang/c3surf.$c3surf_login_lang" ] then otherLang=${f#*.} myLangSelect="$myLangSelect ‹$otherLang›" fi done if [ -n "$myLangSelect" ] then myLangSelect=" —$myLangSelect" fi # thx to Manfred: tell doctype with echo - cat forces Kapersky to alert phishing echo "Content-Type: text/html; charset=utf-8" echo "Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate, no-store" echo "Pragma: no-cache" echo "Expires: `date -Ru`" echo # we do not need any longer this tags in the # # cat < $mynewurl $mytitle
$_c3surf_userportal_title_1$_c3surf_userportal_title_2
$_c3surf_userportal_language$myLangSelect

$_c3surf_userportal_willkommen_1 $_c3surf_userportal_willkommen_2
$_c3surf_userportal_text_title
  • $_c3surf_userportal_text_1
  • $_c3surf_userportal_text_2
  • $_c3surf_userportal_text_3
  • $_c3surf_userportal_text_4
  • $_c3surf_userportal_text_5
  • $_c3surf_userportal_text_6

    EOF # ### if [ "$OPT_LOGINUSR" = "yes" ] then # ### cat < $_c3surf_userportal_anmeldezeile_3
    EOF # ### # echo "Bitte zuerst abmelden, falls die Statusanzeige einen anderen Benutzer zeigt." else # ### cat <
    $_c3surf_userportal_anmeldezeile_1
    $_c3surf_userportal_anmeldezeile_2
    $_c3surf_userportal_form_1:
    $_c3surf_userportal_form_2:
    $_c3surf_userportal_form_3:
    EOF # ### fi # ### cat <


    $_c3surf_userportal_form_footer 14.08.2009 (fs)