X-Git-Url: http://git.plutz.net/?p=busy;a=blobdiff_plain;f=actions%2Flock.sh;fp=login.cgi;h=dadfd1ff832719f3515989d74c719fd787270660;hp=856b0c041070453d803377a090dfb22acc8a8c77;hb=f485895094cd72318b46f39689c3ba954eb37411;hpb=904730d1782749bfac15b0344fe5782433f3099b diff --git a/login.cgi b/actions/lock.sh similarity index 53% rename from login.cgi rename to actions/lock.sh index 856b0c0..dadfd1f 100755 --- a/login.cgi +++ b/actions/lock.sh @@ -15,16 +15,17 @@ # You should have received a copy of the GNU Affero General Public License # along with Busy. If not, see . -if [ -n "${CONTENT_LENGTH}" -a "${CONTENT_LENGTH}" -gt 0 ]; then -(head -c "${CONTENT_LENGTH}"; echo)|sed 's/&/\n/g' |while read line; do - if (echo "${line}" | egrep -xq 'user=.+'); then - user="$(echo "${line}" |cut -d= -f2- |sed 's/+/ /g;s/%/\\x/g')" - user=$(echo -e "${user}" |sed 's/\t/ /g;s/\r//g;s/\\/\\\\/g' |head -n1) - elif (echo "${line}" | egrep -xq 'pass=.+'); then - pass="$(echo "${line}" |cut -d= -f2- |sed 's/+/ /g;s/%/\\x/g')" - pass=$(echo -e "${pass}" |sed 's/\t/ /g;s/\r//g;s/\\/\\\\/g') - fi -done -fi +$ACL_WIKIEDIT || echo "Location: //${HTTP_HOST}/?p=Error&i=noaccess\n\n" +$ACL_WIKIEDIT || exit 0 -echo -n "Location: https://${user}:${pass}@${HTTP_HOST}/session.cgi?${QUERY_STRING}\n\n" +page="$(echo -E "$_GET[\"p\"]" |egrep -Ex 'Wiki')" +edit="$(echo -E "$_GET[\"e\"]" |egrep -Ex '[0-9]{10}_[0-9]{3}(_[0-9]{1,4})?')" + +case "$page" in + Wiki) [ -f "$_DATA/Wiki/${edit}" ] && echo "${USER}:$(($(date +%s)+600))" >"$_DATA/Wiki/${edit}.lock" + echo -n "Location: //${HTTP_HOST}/?p=Wiki&e=$edit\n\n" + ;; + *) echo -n "Location: //${HTTP_HOST}/?p=Error&r=input&$page\n\n" + exit 0 + ;; +esac