__acl: add compatibility for deprecated parameters

This commit is contained in:
ander 2019-06-16 15:18:39 +03:00
parent 91a6ecc701
commit a5df0badaf
6 changed files with 47 additions and 14 deletions

View file

@ -20,17 +20,20 @@
# TODO check if filesystem has ACL turned on etc # TODO check if filesystem has ACL turned on etc
grep -E '^(default:)?(user|group):' "$__object/parameter/acl" \ if [ -f "$__object/parameter/acl" ]
| while read -r acl then
do grep -E '^(default:)?(user|group):' "$__object/parameter/acl" \
param="$( echo "$acl" | awk -F: '{print $(NF-2)}' )" | while read -r acl
check="$( echo "$acl" | awk -F: '{print $(NF-1)}' )" do
param="$( echo "$acl" | awk -F: '{print $(NF-2)}' )"
check="$( echo "$acl" | awk -F: '{print $(NF-1)}' )"
[ "$param" = 'user' ] && db=passwd || db="$param" [ "$param" = 'user' ] && db=passwd || db="$param"
if ! getent "$db" "$check" > /dev/null if ! getent "$db" "$check" > /dev/null
then then
echo "missing $param '$check'" >&2 echo "missing $param '$check'" >&2
exit 1 exit 1
fi fi
done done
fi

View file

@ -28,7 +28,27 @@ acl_path="/$__object_id"
acl_is="$( cat "$__object/explorer/acl_is" )" acl_is="$( cat "$__object/explorer/acl_is" )"
acl_should="$( cat "$__object/parameter/acl" )" if [ -f "$__object/parameter/acl" ]
then
acl_should="$( cat "$__object/parameter/acl" )"
elif
[ -f "$__object/parameter/user" ] \
|| [ -f "$__object/parameter/group" ] \
|| [ -f "$__object/parameter/mask" ] \
|| [ -f "$__object/parameter/other" ]
then
acl_should="$( for param in user group mask other
do
[ ! -f "$__object/parameter/$param" ] && continue
echo "$param" | grep -Eq 'mask|other' && sep=:: || sep=:
echo "$param$sep$( cat "$__object/parameter/$param" )"
done )"
else
echo 'no parameters set' >&2
exit 1
fi
if [ -f "$__object/parameter/default" ] if [ -f "$__object/parameter/default" ]
then then

View file

@ -34,6 +34,12 @@ remove
``mask`` and ``other`` entries can't be removed, but only changed. ``mask`` and ``other`` entries can't be removed, but only changed.
DEPRECATED PARAMETERS
---------------------
Parameters ``user``, ``group``, ``mask`` and ``other`` are deprecated and they
will be removed in future versions. Please use ``acl`` parameter instead.
EXAMPLES EXAMPLES
-------- --------

View file

@ -0,0 +1,2 @@
mask
other

View file

@ -0,0 +1,3 @@
acl
user
group