smb_utilities/gui/dialog_share_remove.sh
2025-05-25 16:14:55 +00:00

76 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
TMP_FILE=$(mktemp)
TMP_OUT=$(mktemp)
TMP_USERS=$(mktemp)
TMP_SHARES=$(mktemp)
#########################################################################################
# SHOW USERS LIST
# Ask to select a user
#########################################################################################
# Retrieve list of users from external script
bash $SMB_TOOLS_PATH/functions/list_smb_users.sh > "$TMP_USERS"
if [ ! -s "$TMP_USERS" ]; then
dialog --msgbox "No users" 10 40
rm -f "$TMP_FILE" "$TMP_USERS" "$TMP_OUT" "$TMP_SHARES"
exit 1
fi
# Format list for dialog menu: convert each username into a pair (tag + description)
MENU_ITEMS=()
while read -r user; do
MENU_ITEMS+=("$user" "") # empty description
done < "$TMP_USERS"
# Ask for username via a menu
dialog --backtitle "Create SMB share" \
--menu "Select associated username:" 15 50 8 \
"${MENU_ITEMS[@]}" 2>"$TMP_FILE"
USERNAME=$(<"$TMP_FILE")
#########################################################################################
# SHOW SHARES LIST
# Ask to select a share assigned to the selected user
#########################################################################################
# Retrieve list of users from external script
bash $SMB_TOOLS_PATH/functions/list_smb_shares.sh $USERNAME> "$TMP_SHARES"
if [ ! -s "$TMP_SHARES" ]; then
dialog --msgbox "No shares associated with the user" 10 40
rm -f "$TMP_FILE" "$TMP_USERS" "$TMP_OUT" "$TMP_SHARES"
exit 1
fi
# Format list for dialog menu: convert each username into a pair (tag + description)
MENU_ITEMS=()
while read -r share; do
MENU_ITEMS+=("$share" "") # empty description
done < "$TMP_SHARES"
# Ask for username via a menu
dialog --backtitle "Create SMB share" \
--menu "Select associated username:" 15 50 8 \
"${MENU_ITEMS[@]}" 2>"$TMP_FILE"
SHARE=$(<"$TMP_FILE")
#########################################################################################
# REMOVE SELECTED SHARE
#########################################################################################
# Call the external script to create the share
bash $SMB_TOOLS_PATH/functions/remove_share.sh "$SHARE" "$USERNAME" >"$TMP_OUT" 2>&1
# Display the result
dialog --backtitle "Remove SMB share" \
--title "Result" \
--textbox "$TMP_OUT" 20 60
# Cleanup
rm -f "$TMP_FILE" "$TMP_USERS" "$TMP_OUT" "$TMP_SHARES"