| 1294 | 
           richard | 
           1 | 
           #!/bin/sh
  | 
        
        
           | 2234 | 
           richard | 
           2 | 
           #
  | 
        
        
            | 
            | 
           3 | 
           # $Id: alcasar-condown.sh 2505 2018-03-11 13:41:00Z tom.houdayer $
  | 
        
        
            | 
            | 
           4 | 
           #
  | 
        
        
           | 2068 | 
           richard | 
           5 | 
           # alcasar-condown.sh
  | 
        
        
           | 1294 | 
           richard | 
           6 | 
           # by Rexy
  | 
        
        
            | 
            | 
           7 | 
           # This script is distributed under the Gnu General Public License (GPL)
  | 
        
        
            | 
            | 
           8 | 
              | 
        
        
           | 2184 | 
           richard | 
           9 | 
           # This script is launched by coova after each logout
  | 
        
        
            | 
            | 
           10 | 
           # Ce script est lancé par coova à chaque déconnexion d'usager
  | 
        
        
           | 1294 | 
           richard | 
           11 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           12 | 
           PASSWD_FILE="/root/ALCASAR-passwords.txt"
  | 
        
        
            | 
            | 
           13 | 
              | 
        
        
           | 2234 | 
           richard | 
           14 | 
           if [ -z $FRAMED_IP_ADDRESS ]; then
  | 
        
        
            | 
            | 
           15 | 
           	exit 1
  | 
        
        
           | 2184 | 
           richard | 
           16 | 
           fi
  | 
        
        
           | 1294 | 
           richard | 
           17 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           18 | 
           # Remove user from his IPSET
  | 
        
        
           | 1364 | 
           richard | 
           19 | 
              | 
        
        
           | 2505 | 
           tom.houday | 
           20 | 
           db_query="SELECT attribute, value FROM (( SELECT attribute, value FROM radreply WHERE (attribute='Alcasar-Filter' OR attribute='Alcasar-Protocols-Filter' OR attribute='Alcasar-Status-Page-Must-Stay-Open') AND username='$USER_NAME') UNION ( SELECT attribute, value FROM radgroupreply gr LEFT JOIN radusergroup ug ON gr.groupname = ug.groupname WHERE (attribute='Alcasar-Filter' OR attribute='Alcasar-Protocols-Filter' OR attribute='Alcasar-Status-Page-Must-Stay-Open') AND username = '$USER_NAME' ORDER BY ug.priority)) attrs GROUP BY attribute;"
  | 
        
        
           | 2501 | 
           tom.houday | 
           21 | 
           db_res=$(mysql -u root -p$(cat $PASSWD_FILE | grep ^db_root= | cut -d'=' -f2-) -D radius -e "$db_query" -Ns)
  | 
        
        
           | 2006 | 
           raphael.pi | 
           22 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           23 | 
           filter=$(echo "$db_res"             | awk '$1 == "Alcasar-Filter"               { print $2 }')
  | 
        
        
           | 2505 | 
           tom.houday | 
           24 | 
           filterProto=$(echo "$db_res"        | awk '$1 == "Alcasar-Protocols-Filter"         { print $2 }')
  | 
        
        
            | 
            | 
           25 | 
           statusOpenRequired=$(echo "$db_res" | awk '$1 == "Alcasar-Status-Page-Must-Stay-Open" { print $2 }')
  | 
        
        
           | 2501 | 
           tom.houday | 
           26 | 
              | 
        
        
            | 
            | 
           27 | 
           if [ "$filter" == '4' ]; then	# HAVP_WL
  | 
        
        
           | 2249 | 
           tom.houday | 
           28 | 
           	set_filter="havp_wl"
  | 
        
        
           | 2501 | 
           tom.houday | 
           29 | 
           elif [ "$filter" == '3' ]; then	# HAVP_BL
  | 
        
        
           | 2234 | 
           richard | 
           30 | 
           	set_filter="havp_bl"
  | 
        
        
           | 2501 | 
           tom.houday | 
           31 | 
           elif [ "$filter" == '2' ]; then	# HAVP
  | 
        
        
           | 2249 | 
           tom.houday | 
           32 | 
           	set_filter="havp"
  | 
        
        
           | 2501 | 
           tom.houday | 
           33 | 
           else				# NOT_FILTERED
  | 
        
        
           | 2234 | 
           richard | 
           34 | 
           	set_filter="not_filtered"
  | 
        
        
           | 2006 | 
           raphael.pi | 
           35 | 
           fi
  | 
        
        
            | 
            | 
           36 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           37 | 
           if [ "$filterProto" == '4' ]; then	# PROFILE 3 (Custom)
  | 
        
        
            | 
            | 
           38 | 
           	set_filterProto="proto_3";
  | 
        
        
            | 
            | 
           39 | 
           elif [ "$filterProto" == '3' ]; then	# PROFILE 2 (WEB + Mail + Remote access)
  | 
        
        
            | 
            | 
           40 | 
           	set_filterProto="proto_2";
  | 
        
        
            | 
            | 
           41 | 
           elif [ "$filterProto" == '2' ]; then	# PROFILE 1 (WEB)
  | 
        
        
            | 
            | 
           42 | 
           	set_filterProto="proto_1";
  | 
        
        
           | 2234 | 
           richard | 
           43 | 
           else					# PROFILE 0 (Not filtered)
  | 
        
        
           | 2501 | 
           tom.houday | 
           44 | 
           	set_filterProto="proto_0";
  | 
        
        
           | 2006 | 
           raphael.pi | 
           45 | 
           fi
  | 
        
        
            | 
            | 
           46 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           47 | 
           ipset del $set_filter      $FRAMED_IP_ADDRESS
  | 
        
        
            | 
            | 
           48 | 
           ipset del $set_filterProto $FRAMED_IP_ADDRESS
  | 
        
        
           | 2184 | 
           richard | 
           49 | 
              | 
        
        
           | 2376 | 
           tom.houday | 
           50 | 
           # Remove IP address from active users
  | 
        
        
            | 
            | 
           51 | 
           current_users_file="/var/tmp/havp/current_users.txt"
  | 
        
        
           | 2394 | 
           tom.houday | 
           52 | 
           [ -e $current_users_file ] && sed -i "/^$FRAMED_IP_ADDRESS:/d" $current_users_file
  | 
        
        
           | 2376 | 
           tom.houday | 
           53 | 
              | 
        
        
           | 2501 | 
           tom.houday | 
           54 | 
           # Debug : show all the coova parse variables (+ $set_filter + $set_filterProto).
  | 
        
        
           | 2184 | 
           richard | 
           55 | 
           # see "/src/chilli.c" for the complete list of parse variables
  | 
        
        
            | 
            | 
           56 | 
           #echo "-----------------------------------------------" >> /tmp/debug-condown.txt
  | 
        
        
            | 
            | 
           57 | 
           #echo `date` >> /tmp/debug-condown.txt
  | 
        
        
            | 
            | 
           58 | 
           #for i in LAYER3 DEV NET MASK ADDR USER_NAME NAS_IP_ADDRESS SERVICE_TYPE FRAMED_IP_ADDRESS FILTER_ID STATE CLASS CUI SESSION_TIMEOUT IDLE_TIMEOUT CALLING_STATION_ID CALLED_STATION_ID NAS_ID NAS_PORT_TYPE ACCT_SESSION_ID ACCT_INTERIM_INTERVAL WISPR_LOCATION_ID WISPR_LOCATION_NAME WISPR_BANDWIDTH_MAX_UP WISPR_BANDWIDTH_MAX_DOWN WISPR-SESSION_TERMINATE_TIME CHILLISPOT_MAX_INPUT_OCTETS CHILLISPOT_MAX_OUTPUT_OCTETS CHILLISPOT_MAX_TOTAL_OCTETS INPUT_OCTETS OUTPUT_OCTETS SESSION_TIME IDLE_TIME LOCATION OLD_LOCATION TERMINATE_CAUSE
  | 
        
        
            | 
            | 
           59 | 
           #do
  | 
        
        
            | 
            | 
           60 | 
           #	echo "$i : ${!i}" >> /tmp/debug-condown.txt
  | 
        
        
            | 
            | 
           61 | 
           #done
  | 
        
        
           | 2234 | 
           richard | 
           62 | 
           #echo "set_filter : $set_filter" >> /tmp/debug-condown.txt
  | 
        
        
           | 2501 | 
           tom.houday | 
           63 | 
           #echo "set_filterProto : $set_filterProto" >> /tmp/debug-condown.txt
  |