summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Southworth <john.southworth@vyatta.com>2011-08-08 14:19:44 -0500
committerJohn Southworth <john.southworth@vyatta.com>2011-08-08 14:19:44 -0500
commit82912629ff6775accc9d4a513d440b8228ab4474 (patch)
tree68d458968c39d5326d748588a0802e7df6360a18
parent6f9a4418817d8f920e7f64058d8c9b1c148b4e6a (diff)
downloadvyatta-op-82912629ff6775accc9d4a513d440b8228ab4474.tar.gz
vyatta-op-82912629ff6775accc9d4a513d440b8228ab4474.zip
Add handler for top level unprivledged command expansion in node conversion function
-rw-r--r--functions/interpreter/vyatta-op-run12
1 files changed, 12 insertions, 0 deletions
diff --git a/functions/interpreter/vyatta-op-run b/functions/interpreter/vyatta-op-run
index ea451e5..4d223df 100644
--- a/functions/interpreter/vyatta-op-run
+++ b/functions/interpreter/vyatta-op-run
@@ -82,6 +82,18 @@ _vyatta_op_conv_node_path ()
fi
elif [[ -d "$node_path/$node" ]]; then
echo $node
+ elif [[ "$VYATTA_USER_LEVEL_DIR" != "/opt/vyatta/etc/shell/level/admin" ]];then
+ # special handling for unprivledged completions.
+ # Since top level commands are different for unprivledged users
+ # we need a handler to expand them properly.
+ local -a filtered_cmds=()
+ local -a allowed=( $(cat $VYATTA_USER_LEVEL_DIR/allowed-op.in) )
+ get_prefix_filtered_list $node allowed filtered_cmds
+ if [[ "${#filtered_cmds[@]}" == "1" ]];then
+ echo ${filtered_cmds[0]}
+ else
+ echo "${node} ambiguous"
+ fi
else
echo "$node ambiguous"
fi