1
0
mirror of https://github.com/stefanocasazza/ULib.git synced 2025-10-05 19:18:01 +08:00
ULib/tests/examples/wi-auth/etc/common.sh
2015-01-23 17:24:36 +01:00

216 lines
4.1 KiB
Bash

#-----------------------------------
# START FUNCTION
#-----------------------------------
print_page() {
if [ -r $DIR_TEMPLATE/$REQUEST_URI.tmpl ]; then
SSI_BODY=`cat $DIR_TEMPLATE/$REQUEST_URI.tmpl 2>/dev/null`
if [ $# -ne 0 ]; then
SSI_BODY=`printf "$SSI_BODY" "$@" 2>/dev/null`
fi
fi
EXIT_VALUE=0
}
message_page() {
TITLE_TXT="$1"
REQUEST_URI=message_page
shift
print_page "$@"
write_SSI
}
# NB: check if /etc/openldap/ldap.conf contains TLS_REQCERT never
# --------------------------------------------------------------------------------------------------------------------
# ldapsearch -v -H 'ldaps://94.138.39.149:636' -b ou=users,o=unwired-portal -D cn=admin,o=unwired-portal -w programmer
ask_to_LDAP() {
# $1 -> cmd
# $2 -> param
# $3 -> option
# $4 -> filter_option
TMPFILE=/tmp/ask_to_LDAP.$$
if [ "$1" = ldapsearch ]; then
ldapsearch $2 "$3" $4 >$TMPFILE.out 2>$TMPFILE.err
else
$1 $2 <<END >$TMPFILE.out 2>$TMPFILE.err
$3
END
fi
EXIT_VALUE=$?
if [ $EXIT_VALUE -eq 0 ]; then
rm -f $TMPFILE.err
elif [ -s $TMPFILE.err ]; then
rm -f $TMPFILE.out
grep '(-1)' < $TMPFILE.err # Can't contact LDAP server (-1)
# if [ $? -eq 0 ]; then
# anomalia 8
# fi
fi
}
load_policy() {
if [ -n "$1" -a -s "$1" ]; then
# ------------------------------------------------------------------------
# GET POLICY FROM FILE (UUID_TO_LOG POLICY USER_MAX_TIME USER_MAX_TRAFFIC)
# ------------------------------------------------------------------------
POLICY=""
read UUID_TO_LOG POLICY USER_MAX_TIME USER_MAX_TRAFFIC < $1 2>/dev/null
fi
POLICY_FILE=$DIR_POLICY/$POLICY
mkdir -p $DIR_CNT/$POLICY
unset POLICY_RESET
unset BONUS_FOR_EXIT
source $DIR_POLICY/$POLICY
# --------------------------------------------------------------------
# TIME POLICY
# --------------------------------------------------------------------
if [ -z "$MAX_TIME" ]; then
MAX_TIME=0
fi
if [ -n "$USER_MAX_TIME" ]; then
if [ $USER_MAX_TIME -ne $MAX_TIME ]; then
MAX_TIME=$USER_MAX_TIME
fi
fi
# --------------------------------------------------------------------
# TRAFFIC POLICY
# --------------------------------------------------------------------
if [ -z "$MAX_TRAFFIC" ]; then
MAX_TRAFFIC=0
fi
if [ -n "$USER_MAX_TRAFFIC" ]; then
if [ $USER_MAX_TRAFFIC -ne $MAX_TRAFFIC ]; then
MAX_TRAFFIC=$USER_MAX_TRAFFIC
fi
fi
# --------------------------------------------------------------------
}
load_value_session() {
if [ -s $TMP_FORM_FILE ]; then
i=1
while read LINE
do
eval v$i=\"$LINE\"
let "i = i + 1"
done < $TMP_FORM_FILE
fi
}
get_user_nome_cognome() {
# $1 -> uuid
TMP_FORM_FILE=$DIR_REG/$1.reg
v1=""
v2=""
load_value_session
if [ -n "$v1$v2" ]; then
USER="$v1 $v2"
else
USER=$UUID
fi
}
uscita() {
rm -f $TMPFILE.out $TMPFILE.err
if [ $EXIT_VALUE -eq 0 ]; then
exit 0
fi
exit 400 # Bad Request
}
write_SSI() {
if [ -n "$CONNECTION_CLOSE" ]; then
HTTP_RESPONSE_HEADER="Connection: close\r\n$HTTP_RESPONSE_HEADER"
fi
if [ -n "$HTTP_RESPONSE_HEADER" ]; then
echo \"HTTP_RESPONSE_HEADER=$HTTP_RESPONSE_HEADER\"
fi
if [ -n "$HTTP_RESPONSE_BODY" ]; then
echo \"HTTP_RESPONSE_BODY=$HTTP_RESPONSE_BODY\"
else
if [ -z "$SSI_BODY" ]; then
EXIT_VALUE=400
uscita
fi
if [ -z "$TITLE_TXT" ]; then
TITLE_TXT=$TITLE_DEFAULT
fi
echo -e "'TITLE_TXT=$TITLE_TXT'\nBODY_STYLE=$BODY_STYLE"
if [ -n "$SSI_HEAD" ]; then
echo "'SSI_HEAD=$SSI_HEAD'"
fi
echo -n -e "$SSI_BODY" > $SSI_FILE_BODY
fi
uscita
}
main() {
if [ $DEBUG -eq 0 ]; then
do_cmd "$@"
else
DBG_FILE_OUT=/tmp/main_$$.out
DBG_FILE_ERR=/tmp/main_$$.err
(
echo "ENVIRONMENT:"
echo "-----------------------------------------------------------"
env
echo "-----------------------------------------------------------"
echo "STDERR:"
echo "-----------------------------------------------------------"
set -x
do_cmd "$@"
set +x
) > $DBG_FILE_OUT 2>>$DBG_FILE_ERR
echo "-----------------------------------------------------------" 2>>$DBG_FILE_ERR >&2
cat $DBG_FILE_OUT
fi
}
#-----------------------------------
# END FUNCTION
#-----------------------------------