#!/usr/bin/perl
#=======================================================================
# Copyright (c) 1998 Daniele Giacomini daniele@pluto.linux.it
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#======================================================================
# utente_ppp
#
# Verifica che l'utente possa accedere, e prima di attivare il PPP
# mostra un menu di funzioni varie.
# Se il terminale di accesso  di tipo seriale, attiva il PPP
#=======================================================================

#-----------------------------------------------------------------------
# Definisce le variabili che verranno utilizzate.
#-----------------------------------------------------------------------
$terminale="";
$scelta="";

#-----------------------------------------------------------------------
# Impedisce la scrittura sul terminale dell'utente.
#-----------------------------------------------------------------------
system( "/usr/bin/mesg n" );
system( "/bin/stty -tostop" );

#-----------------------------------------------------------------------
# Verifica che l'utente possa accedere (zero corrisponde a falso in
# Perl, quindi il risultato va invertito).
#-----------------------------------------------------------------------
if ( ! system( "/usr/sbin/acua_login" ) ) {

    #-------------------------------------------------------------------
    # L'utente viene accolto.
    #-------------------------------------------------------------------
    print STDOUT "Benvenuto $ENV{LOGNAME}\n";

} else {

    #-------------------------------------------------------------------
    # L'utente viene estromesso e gli si d modo di verificarne il
    # motivo.
    #-------------------------------------------------------------------
    system( "/usr/bin/acua viewRec $ENV{LOGNAME}" );

    #-------------------------------------------------------------------
    # Gli vengono concessi 15 secondi per leggere lo stato
    # delle risorse del suo account, quindi la connessione viene
    # interrotta.
    #-------------------------------------------------------------------
    print STDOUT "Fra 15 secondi la connessione verr conclusa.\n";
    sleep( 15 );
    exit;

}

#-----------------------------------------------------------------------
# Se ha superato i controlli precedenti, l'utente ha diritto di
# accedere. Gli si presenta il menu.
#-----------------------------------------------------------------------

print STDOUT "Premere la lettera corrispondente, sequita da ";
print STDOUT "Invio, per scegliere l'opzione desiderata, ";
print STDOUT "oppure premere semplicemente Invio per attivare ";
print STDOUT "il PPP\n\n";
    
print STDOUT "P) cambia la parola di accesso (password);\n\n";
print STDOUT "R) visualizza l'utilizzo di risorse;\n\n";

$scelta = getc;
    
if ( $scelta =~ m|p|i ) {
    
    system( "/usr/bin/passwd" );

} elsif ( $scelta =~ m|r|i ) {
	    
    system( "/usr/bin/acua viewRec $ENV{LOGNAME}" );
	
}

#-----------------------------------------------------------------------
# Verifica il terminale.
#-----------------------------------------------------------------------
$terminale=`/usr/bin/tty`;

if ( $terminale =~ m|^/dev/ttyS\d+$| ) {

    #-------------------------------------------------------------------
    # Attiva la connessione PPP secondo la configurazione.
    #-------------------------------------------------------------------
    print STDOUT "Viene attivata la connessione PPP.\n";
    exec( "/usr/sbin/pppd crtscts modem noauth refuse-chap refuse-pap
	debug proxyarp idle 600" );
    exit;

} else {

    #-------------------------------------------------------------------
    # Inutile attivare il PPP da un terminale differente.
    #-------------------------------------------------------------------
    print STDOUT "Fra 15 secondi la connessione verr conclusa.\n";
    sleep( 15 );
    exit;

}

#-----------------------------------------------------------------------
# Nel caso si riuscisse a raggiungere questo punto, esce.
#-----------------------------------------------------------------------
exit;

#======================================================================
