wagon/back/admin_user.cgi

36 lines
964 B
Bash
Executable File

#!/bin/bash
# FILE: wgapi:back/admin_user.cgi
# DESCRIPTION: Server for requests to /user/
# ERRORS:
# 3: Bad usage
# 4: Missing config file
CONFIG_FILE='/etc/wgapi/config'
if ! [ ${#} -eq 0 ]; then
printf 'ERROR! Bad input: %s %s\n' "${0}" "${*}" >>"${LOGFILE}"
exit 3
fi & if ! [ -f "${CONFIG_FILE}" ]; then
printf 'ERROR! %s could not find %s!\n' "${0}" "${CONFIG_FILE}" >>"${LOGFILE}"
exit 4
fi; source "${CONFIG_FILE}"
case "${REQUEST_METHOD}" in
# List users
'GET') "${LIB_DIR}/admin/user/list" "${HTTP_X_REAL_IP}";;
# Add new user
# POST /user?t=mytoken&name=newusername
'POST') "${LIB_DIR}/admin/user/add" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
# Delete user
# DELETE /user?t=mytoken&user=username
'DELETE') "${LIB_DIR}/admin/user/del" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
# Needed for CORS preflight
'OPTIONS') "${LIB_DIR}/http_res" 200;;
# Bad request
*) printf 'Invalid HTTP verb' | "${LIB_DIR}/http_res" 405;;
esac