diff --git a/api_auth_docker/api-sample.properties b/api_auth_docker/api-sample.properties index 63851c6..78c3e4b 100644 --- a/api_auth_docker/api-sample.properties +++ b/api_auth_docker/api-sample.properties @@ -38,6 +38,7 @@ action_ln_newaddr=spender action_ots_stamp=spender action_ots_getfile=spender action_ln_getinvoice=spender +action_ln_decodebolt11=spender action_ln_connectfund=spender # Admin can do what the spender can do, plus: diff --git a/api_auth_docker/auth.sh b/api_auth_docker/auth.sh index 272ab6c..895847b 100755 --- a/api_auth_docker/auth.sh +++ b/api_auth_docker/auth.sh @@ -106,10 +106,10 @@ verify_group() eval ugroups='$ugroups_'$id trace "[verify_group] user groups=${ugroups}" - if [ $context = "s" ]; then + if [ ${context} = "s" ]; then # static files only accessible by a certain group needed_group=${action} - elif [ $context = "v0" ]; then + elif [ ${context} = "v0" ]; then # actual api calls # It is so much faster to include the keys here instead of grep'ing the file for key. . ./api.properties @@ -118,10 +118,12 @@ verify_group() trace "[verify_group] needed_group=${needed_group}" - - case "${ugroups}" in - *${needed_group}*) trace "[verify_group] Access granted"; return 0 ;; - esac + # If needed_group is empty, the action was not found in api.propeties. + if [ -n "${needed_group}" ]; then + case "${ugroups}" in + *${needed_group}*) trace "[verify_group] Access granted"; return 0 ;; + esac + fi trace "[verify_group] Access NOT granted" return 1 diff --git a/doc/UPGRADE.md b/doc/UPGRADE.md new file mode 100644 index 0000000..be7961e --- /dev/null +++ b/doc/UPGRADE.md @@ -0,0 +1,27 @@ +# Upgrade notes from 0.1 to 0.2 + +1. cd currentInstallation, where setup.sh is located +2. ./stop.sh current running cyphernode +3. Execute: + +``` +docker run --rm -it -v "$PWD:/conf" alpine:3.8 +apk add --no-cache --update jq curl p7zip +cd conf +7z e config.7z +``` + + + +``` +k=$(dd if=/dev/urandom bs=32 count=1 2> /dev/null | xxd -pc 32) && l="kapi_id=\\\"000\\\";kapi_key=\\\"$k\\\";kapi_groups=\\\"stats\\\";eval ugroups_\${kapi_id}=\${kapi_groups};eval ukey_\${kapi_id}=\${kapi_key}" && cat config.json | sed 's/kapi_groups=\\"/kapi_groups=\\"stats,/g' | jq ".gatekeeper_keys.configEntries = [\"$l\"] + .gatekeeper_keys.configEntries" | jq ".gatekeeper_keys.clientInformation = [\"000=$k\"] + .gatekeeper_keys.clientInformation" | jq ".gatekeeper_apiproperties = \"$(curl -fsSL https://raw.githubusercontent.com/SatoshiPortal/cyphernode/v0.2.0-rc.5/api_auth_docker/api-sample.properties | paste -s -d '\n')\"" > config.json + +7z u config.7z config.json +``` + + + + +``` +curl -fsSL https://raw.githubusercontent.com/SatoshiPortal/cyphernode/v0.2.0-rc.5/dist/setup.sh -o setup_cyphernode.sh && chmod +x setup_cyphernode.sh && ./setup_cyphernode.sh +```