lifted out siteconfig loading to separate script
[rrq/hourglass.git] / manager / basic_login.sh
1 #!/bin/bash
2 #
3 # Ensure there is an HTTP_AUTHORIZATION environment variable
4 # with appropriate content
5
6 # root user:password
7 login_check() {
8     D=$(pwd)
9     while [ ! -f $D/.htpasswd ] ; do
10         [ "$D" = "$1" ] && return 0
11         if [ "$D" = / ] ; then
12             logger BAD FAILURE
13             return 1
14         fi
15         D=$(dirname $D)
16     done
17     if [ -z "$2" ] || ! grep -q "$2" $D/.htpasswd ; then
18         cat <<EOF
19 Status: 401 Unauthorized
20 WWW-Authenticate: Basic realm="Hourglass"
21 EOF
22         return 1
23     fi
24 }
25 #logger "HTTP_AUTHORIZATION=$HTTP_AUTHORIZATION"
26 if login_check "$(dirname $(dirname $0))" "${HTTP_AUTHORIZATION#Basic }" ; then
27
28     cd ..
29     REMOTE_USER="$(echo -n "${HTTP_AUTHORIZATION#Basic }" | base64 -d)"
30     REMOTE_USER="${REMOTE_USER%%:*}"
31     export REMOTE_USER
32     ROLE="$(grep "^${REMOTE_USER}": roles.txt)"
33     export ROLE="${ROLE#*:}"
34     if [ -f "$ROLE/$1" ] ; then
35         echo
36         exec  /usr/local/bin/newlisp newlisp $ROLE/$1
37     fi
38 fi
39 cat <<EOF
40
41 Broken.
42 EOF