diff --git a/Scripts/dashboard-acl.sh b/Scripts/dashboard-acl.sh index 27cc5de39..83a92d2be 100755 --- a/Scripts/dashboard-acl.sh +++ b/Scripts/dashboard-acl.sh @@ -74,10 +74,16 @@ for WIDGET in ${WIDGETS}; do fi for ENDPOINT in ${ENDPOINTS}; do + # do a full match here PATTERN=${ENDPOINT#/} - if ! grep -q "${PATTERN}" ${ACLS}; then - PATTERN=${PATTERN%/*} - if ! grep -q "${PATTERN}/\*" ${ACLS}; then + if ! grep -Fq "${PATTERN}" ${ACLS}; then + if [ -z "${PATTERN%%*/\*}" ]; then + # already a wildcard match, allow lower path + PATTERN=${PATTERN%/*} + fi + # do a wildcard match as a fallback + PATTERN=${PATTERN%/*}/* + if ! grep -Fq "${PATTERN}" ${ACLS}; then echo "Unknown ACL for ${WIDGET}:" echo ${ENDPOINT} exit 1