From 40736d1bf236c3cc717521dffec0d41175acfb3e Mon Sep 17 00:00:00 2001 From: root Date: Sun, 25 May 2025 06:06:21 +0000 Subject: [PATCH] Improved gui --- add_smb_user.sh | 15 +++++------- aliases.sh | 7 ------ gui/dialog_share_create.sh | 28 ++++++++++++++++++++++ gui/dialog_user_add.sh | 30 +++++++++++++++++++++++ gui/dialog_user_list.sh | 20 ++++++++++++++++ gui/dialog_user_remove.sh | 26 ++++++++++++++++++++ gui/main.sh | 49 ++++++++++++++++++++++++++++++++++++++ smb_utilities_install.sh | 10 -------- 8 files changed, 159 insertions(+), 26 deletions(-) delete mode 100644 aliases.sh create mode 100755 gui/dialog_share_create.sh create mode 100755 gui/dialog_user_add.sh create mode 100755 gui/dialog_user_list.sh create mode 100755 gui/dialog_user_remove.sh create mode 100755 gui/main.sh diff --git a/add_smb_user.sh b/add_smb_user.sh index 59d8cc7..b9e6b37 100755 --- a/add_smb_user.sh +++ b/add_smb_user.sh @@ -12,13 +12,10 @@ fi USERNAME="$1" PASSWORD="$2" -if [[ -z "$USERNAME" ]]; then - read -p "Enter username: " USERNAME -fi - -if [[ -z "$PASSWORD" ]]; then - read -s -p "Enter password: " PASSWORD - echo +# If no username or password provided, exit with error +if [[ -z "$USERNAME" || -z "$PASSWORD" ]]; then + echo "Usage: $0 " + exit 1 fi # Create system user without extra fields @@ -39,11 +36,11 @@ else echo "Failed to add Samba user." fi - log_file="$SMB_TOOLS_PATH/filebrowser/addusers.txt" if [ -f "$log_file" ]; then echo "$USERNAME:$PASSWORD" >> "$log_file" fi -docker restart filebrowser +# Non-blocking docker restart +docker restart filebrowser /dev/null & \ No newline at end of file diff --git a/aliases.sh b/aliases.sh deleted file mode 100644 index 585ee1e..0000000 --- a/aliases.sh +++ /dev/null @@ -1,7 +0,0 @@ -alias smbtools_user_add=$SMB_TOOLS_PATH/add_smb_user.sh -alias smbtools_user_remove=$SMB_TOOLS_PATH/remove_smb_user.sh -alias smbtools_user_list=$SMB_TOOLS_PATH/list_smb_users.sh - -alias smbtools_share_create=$SMB_TOOLS_PATH/create_share.sh -alias smbtools_share_remove=$SMB_TOOLS_PATH/remove_share.sh -alias smbtools_share_list=$SMB_TOOLS_PATH/list_smb_shares.sh diff --git a/gui/dialog_share_create.sh b/gui/dialog_share_create.sh new file mode 100755 index 0000000..b97f404 --- /dev/null +++ b/gui/dialog_share_create.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +TMP_FILE=$(mktemp) + +# Ask for username +dialog --backtitle "Create SMB share" --inputbox "Enter share name:" 10 40 2>"$TMP_FILE" +SHARE_NAME=$(<"$TMP_FILE") + +# Ask for password (input will be hidden) +dialog --backtitle "Create SMB share" --inputbox "Enter associated username:" 10 40 2>"$TMP_FILE" +USERNAME=$(<"$TMP_FILE") + + + +# 3) Call the external script and capture output +# adjust the path (“../add_smb_user.sh”) as needed +TMP_OUT=$(mktemp) +bash ./../create_user_share.sh "$SHARE_NAME" "$USERNAME" >"$TMP_OUT" 2>&1 + +# 4) Display the result (use --msgbox for short, --textbox for multiline) +dialog --backtitle "Create SMB share" \ + --title "Result" \ + --textbox "$TMP_OUT" 20 60 + +rm -f "$TMP_OUT" + + +rm -f "$TMP_FILE" diff --git a/gui/dialog_user_add.sh b/gui/dialog_user_add.sh new file mode 100755 index 0000000..7f902b9 --- /dev/null +++ b/gui/dialog_user_add.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +TMP_FILE=$(mktemp) + +# Ask for username +dialog --backtitle "Add User" --inputbox "Enter new username:" 10 40 2>"$TMP_FILE" +USERNAME=$(<"$TMP_FILE") + +# Ask for password (input will be hidden) +dialog --backtitle "Add User" --insecure --passwordbox "Enter password for $USERNAME:" 10 40 2>"$TMP_FILE" +PASSWORD=$(<"$TMP_FILE") + + + +# 3) Call the external script and capture output +# adjust the path (“../add_smb_user.sh”) as needed +TMP_OUT=$(mktemp) +bash ./../add_smb_user.sh "$USERNAME" "$PASSWORD" >"$TMP_OUT" 2>&1 + +# 4) Display the result (use --msgbox for short, --textbox for multiline) +dialog --backtitle "Add SMB User" \ + --title "Result" \ + --textbox "$TMP_OUT" 20 60 + +rm -f "$TMP_OUT" + + +# dialog --msgbox "User '$USERNAME' with given password would be created." 8 50 + +rm -f "$TMP_FILE" diff --git a/gui/dialog_user_list.sh b/gui/dialog_user_list.sh new file mode 100755 index 0000000..d0067f6 --- /dev/null +++ b/gui/dialog_user_list.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +TMP_FILE=$(mktemp) + +# 3) Call the external script and capture output +# adjust the path (“../add_smb_user.sh”) as needed +TMP_OUT=$(mktemp) +bash ./../list_smb_users.sh >"$TMP_OUT" 2>&1 + +# 4) Display the result (use --msgbox for short, --textbox for multiline) +dialog --backtitle "SMB Users" \ + --title "SMB Users" \ + --textbox "$TMP_OUT" 20 60 + +rm -f "$TMP_OUT" + + +# dialog --msgbox "User '$USERNAME' with given password would be created." 8 50 + +rm -f "$TMP_FILE" diff --git a/gui/dialog_user_remove.sh b/gui/dialog_user_remove.sh new file mode 100755 index 0000000..4818435 --- /dev/null +++ b/gui/dialog_user_remove.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +TMP_FILE=$(mktemp) + +# Ask for username +dialog --backtitle "Remove SMB User" --inputbox "Enter username to be removed:" 10 40 2>"$TMP_FILE" +USERNAME=$(<"$TMP_FILE") + + + +# 3) Call the external script and capture output +# adjust the path (“../add_smb_user.sh”) as needed +TMP_OUT=$(mktemp) +bash ./../remove_smb_user.sh "$USERNAME" >"$TMP_OUT" 2>&1 + +# 4) Display the result (use --msgbox for short, --textbox for multiline) +dialog --backtitle "Remove SMB User" \ + --title "Result" \ + --textbox "$TMP_OUT" 20 60 + +rm -f "$TMP_OUT" + + +# dialog --msgbox "User '$USERNAME' with given password would be created." 8 50 + +rm -f "$TMP_FILE" diff --git a/gui/main.sh b/gui/main.sh new file mode 100755 index 0000000..67145d0 --- /dev/null +++ b/gui/main.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +TMP_FILE=$(mktemp) +TITLE="System Administration Tool" + +while true; do + dialog --clear \ + --backtitle "$TITLE" \ + --title "Main Menu" \ + --menu "Choose an action:" 15 50 6 \ + 1 "Add User" \ + 2 "Remove User" \ + 3 "List Users" \ + 4 "Create Share" \ + 5 "Remove Share" \ + 6 "Exit" 2>"$TMP_FILE" + + CHOICE=$(<"$TMP_FILE") + + case $CHOICE in + 1) + ./dialog_user_add.sh + ;; + 2) + ./dialog_user_remove.sh + ;; + 3) + ./dialog_user_list.sh + ;; + 4) + ./dialog_share_create.sh + ;; + 5) + dialog --inputbox "Enter share name to remove:" 10 40 2>"$TMP_FILE" + SHARE=$(<"$TMP_FILE") + dialog --msgbox "Share '$SHARE' would be removed." 8 40 + ;; + 6) + break + ;; + *) + dialog --msgbox "Invalid option." 8 30 + ;; + esac +done + +clear +rm -f "$TMP_FILE" +echo "Exited." diff --git a/smb_utilities_install.sh b/smb_utilities_install.sh index fcefeab..4f97fef 100755 --- a/smb_utilities_install.sh +++ b/smb_utilities_install.sh @@ -28,16 +28,6 @@ else echo "Added SMB_TOOLS_PATH to ~/.bashrc" fi -ALIASES_LINE="source $SMB_TOOLS_PATH/aliases.sh" - -# Check if it's already set in .bashrc -if grep -Fxq "$ALIASES_LINE" "$HOME/.bashrc"; then - echo "SmbTools aliases already set" -else - echo "$ALIASES_LINE" >> "$HOME/.bashrc" - echo "Set SmbTools aliases" -fi - source $HOME/.bashrc # Set it for the current script execution too