|
@@ -78,6 +78,9 @@ if command -v git >/dev/null 2>&1; then
|
|
|
HAS_GIT=true
|
|
HAS_GIT=true
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
+# Selected DB target for user/role and imports
|
|
|
|
|
+DB_TARGET=""
|
|
|
|
|
+
|
|
|
TMP_FILE="$(mktemp)"
|
|
TMP_FILE="$(mktemp)"
|
|
|
CHOICE_FILE="$(mktemp)"
|
|
CHOICE_FILE="$(mktemp)"
|
|
|
trap 'rm -f "$TMP_FILE" "$CHOICE_FILE"' EXIT
|
|
trap 'rm -f "$TMP_FILE" "$CHOICE_FILE"' EXIT
|
|
@@ -124,6 +127,60 @@ DEPLOYMENT_TYPE="$DEPLOYMENT_TYPE"
|
|
|
EOF
|
|
EOF
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+choose_db_target() {
|
|
|
|
|
+ local prompt native_available
|
|
|
|
|
+ prompt="${1:-Select where to run the DB operation}"
|
|
|
|
|
+ native_available=false
|
|
|
|
|
+ if $IS_DEBIAN_NATIVE && [[ -n "$MYSQL_CLIENT" ]]; then
|
|
|
|
|
+ native_available=true
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ if $HAS_PODMAN && $native_available; then
|
|
|
|
|
+ $DIALOG --menu "$prompt" 14 70 2 \
|
|
|
|
|
+ podman "Podman container: $BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
+ native "Native MariaDB/MySQL (using $MYSQL_CLIENT)" 2>"$CHOICE_FILE" || return 1
|
|
|
|
|
+ cat "$CHOICE_FILE"
|
|
|
|
|
+ return 0
|
|
|
|
|
+ elif $HAS_PODMAN; then
|
|
|
|
|
+ echo "podman"
|
|
|
|
|
+ return 0
|
|
|
|
|
+ elif $native_available; then
|
|
|
|
|
+ echo "native"
|
|
|
|
|
+ return 0
|
|
|
|
|
+ else
|
|
|
|
|
+ "$DIALOG" --msgbox "No database target available.\n\nNative is only supported on Debian 12/13 with a MariaDB/MySQL client.\nInstall podman or meet the native requirements." 12 74
|
|
|
|
|
+ return 1
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+db_query() {
|
|
|
|
|
+ local sql="$1"; local target="${2:-$DB_TARGET}"
|
|
|
|
|
+ if [[ -z "$target" ]]; then
|
|
|
|
|
+ echo "DB target not set" >&2; return 1
|
|
|
|
|
+ fi
|
|
|
|
|
+ if [[ "$target" == "podman" ]]; then
|
|
|
|
|
+ podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
+ mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
+ -e "$sql" -s -N
|
|
|
|
|
+ else
|
|
|
|
|
+ "$MYSQL_CLIENT" -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
+ -e "$sql" -s -N
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+db_exec_sql() {
|
|
|
|
|
+ local sql="$1"; local target="${2:-$DB_TARGET}"
|
|
|
|
|
+ if [[ -z "$target" ]]; then
|
|
|
|
|
+ echo "DB target not set" >&2; return 1
|
|
|
|
|
+ fi
|
|
|
|
|
+ if [[ "$target" == "podman" ]]; then
|
|
|
|
|
+ echo "$sql" | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
+ mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME"
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "$sql" | "$MYSQL_CLIENT" -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
show_capabilities_screen() {
|
|
show_capabilities_screen() {
|
|
|
local cf
|
|
local cf
|
|
|
cf="$(mktemp)"
|
|
cf="$(mktemp)"
|
|
@@ -360,6 +417,9 @@ configure_and_run_native_db() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
import_schema_and_seed() {
|
|
import_schema_and_seed() {
|
|
|
|
|
+ local target
|
|
|
|
|
+ target=$(choose_db_target "Where should the import be applied?") || return
|
|
|
|
|
+
|
|
|
local import_type schema_file full_dump_file
|
|
local import_type schema_file full_dump_file
|
|
|
schema_file="$WORK_DIR/backend/database/schema/beepzone-schema-dump.sql"
|
|
schema_file="$WORK_DIR/backend/database/schema/beepzone-schema-dump.sql"
|
|
|
full_dump_file="$WORK_DIR/backend/database/dev/beepzone-full-dump.sql"
|
|
full_dump_file="$WORK_DIR/backend/database/dev/beepzone-full-dump.sql"
|
|
@@ -382,19 +442,34 @@ import_schema_and_seed() {
|
|
|
|
|
|
|
|
$DIALOG --yesno "import full database dump from:\n$full_dump_file\n\nThis will DROP and recreate the database.\n\nYou Sure?" 12 70 || return
|
|
$DIALOG --yesno "import full database dump from:\n$full_dump_file\n\nThis will DROP and recreate the database.\n\nYou Sure?" 12 70 || return
|
|
|
|
|
|
|
|
- {
|
|
|
|
|
- echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
- echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
- echo "USE \`$DB_NAME\`;"
|
|
|
|
|
- echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
- cat "$full_dump_file"
|
|
|
|
|
- echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
- } | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Fuck" --msgbox "full dump import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if [[ "$target" == "podman" ]]; then
|
|
|
|
|
+ {
|
|
|
|
|
+ echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
+ echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
+ echo "USE \`$DB_NAME\`;"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
+ cat "$full_dump_file"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
+ } | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
+ mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Fuck" --msgbox "full dump import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
+ echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
+ echo "USE \`$DB_NAME\`;"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
+ cat "$full_dump_file"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
+ } | "$MYSQL_CLIENT" -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Fuck" --msgbox "full dump import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ fi
|
|
|
|
|
|
|
|
DEPLOYMENT_TYPE="dev"
|
|
DEPLOYMENT_TYPE="dev"
|
|
|
save_env
|
|
save_env
|
|
@@ -409,19 +484,34 @@ import_schema_and_seed() {
|
|
|
|
|
|
|
|
$DIALOG --yesno "import clean schema from:\n$schema_file\n\nThis will DROP and recreate the database.\n\nProceed?" 12 70 || return
|
|
$DIALOG --yesno "import clean schema from:\n$schema_file\n\nThis will DROP and recreate the database.\n\nProceed?" 12 70 || return
|
|
|
|
|
|
|
|
- {
|
|
|
|
|
- echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
- echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
- echo "USE \`$DB_NAME\`;"
|
|
|
|
|
- echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
- cat "$schema_file"
|
|
|
|
|
- echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
- } | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Error" --msgbox "schema import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if [[ "$target" == "podman" ]]; then
|
|
|
|
|
+ {
|
|
|
|
|
+ echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
+ echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
+ echo "USE \`$DB_NAME\`;"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
+ cat "$schema_file"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
+ } | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
+ mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "schema import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ echo "DROP DATABASE IF EXISTS \`$DB_NAME\`;"
|
|
|
|
|
+ echo "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;"
|
|
|
|
|
+ echo "USE \`$DB_NAME\`;"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=0;"
|
|
|
|
|
+ cat "$schema_file"
|
|
|
|
|
+ echo "SET FOREIGN_KEY_CHECKS=1;"
|
|
|
|
|
+ } | "$MYSQL_CLIENT" -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -30 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "schema import failed.\n\nError:\n${error_log}" 22 76
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ fi
|
|
|
|
|
|
|
|
DEPLOYMENT_TYPE="clean"
|
|
DEPLOYMENT_TYPE="clean"
|
|
|
save_env
|
|
save_env
|
|
@@ -430,6 +520,8 @@ import_schema_and_seed() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
manage_users_and_roles() {
|
|
manage_users_and_roles() {
|
|
|
|
|
+ DB_TARGET=$(choose_db_target "Apply user/role management to which database?") || return
|
|
|
|
|
+
|
|
|
while true; do
|
|
while true; do
|
|
|
$DIALOG --clear \
|
|
$DIALOG --clear \
|
|
|
--title "Manage Users & Roles" \
|
|
--title "Manage Users & Roles" \
|
|
@@ -481,11 +573,10 @@ create_role() {
|
|
|
|
|
|
|
|
local sql="INSERT INTO roles (name, power) VALUES ('$name', $power);"
|
|
local sql="INSERT INTO roles (name, power) VALUES ('$name', $power);"
|
|
|
|
|
|
|
|
- echo "$sql" | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Error" --msgbox "Failed to create role.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
- return 1
|
|
|
|
|
|
|
+ db_exec_sql "$sql" "$DB_TARGET" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "Failed to create role.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
+ return 1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$DIALOG --msgbox "Role '$name' created successfully!" 8 50
|
|
$DIALOG --msgbox "Role '$name' created successfully!" 8 50
|
|
@@ -494,11 +585,9 @@ create_role() {
|
|
|
delete_role() {
|
|
delete_role() {
|
|
|
# Fetch roles from the database
|
|
# Fetch roles from the database
|
|
|
local roles_list
|
|
local roles_list
|
|
|
- roles_list=$(podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
- -e "SELECT id, name, power FROM roles ORDER BY power DESC;" -s -N 2>>"$LOG_FILE") || {
|
|
|
|
|
- $DIALOG --msgbox "Failed to fetch roles from database." 10 60
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ roles_list=$(db_query "SELECT id, name, power FROM roles ORDER BY power DESC;" "$DB_TARGET" 2>>"$LOG_FILE") || {
|
|
|
|
|
+ $DIALOG --msgbox "Failed to fetch roles from database." 10 60
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Build role selection menu
|
|
# Build role selection menu
|
|
@@ -523,9 +612,7 @@ delete_role() {
|
|
|
|
|
|
|
|
# Check if any users are using this role
|
|
# Check if any users are using this role
|
|
|
local user_count
|
|
local user_count
|
|
|
- user_count=$(podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
- -e "SELECT COUNT(*) FROM users WHERE role_id = $selected_role_id;" -s -N 2>>"$LOG_FILE")
|
|
|
|
|
|
|
+ user_count=$(db_query "SELECT COUNT(*) FROM users WHERE role_id = $selected_role_id;" "$DB_TARGET" 2>>"$LOG_FILE")
|
|
|
|
|
|
|
|
if [[ "$user_count" -gt 0 ]]; then
|
|
if [[ "$user_count" -gt 0 ]]; then
|
|
|
$DIALOG --msgbox "Cannot delete role '$selected_role_name'.\n$user_count user(s) are currently assigned this role." 10 60
|
|
$DIALOG --msgbox "Cannot delete role '$selected_role_name'.\n$user_count user(s) are currently assigned this role." 10 60
|
|
@@ -538,11 +625,10 @@ delete_role() {
|
|
|
# Delete role
|
|
# Delete role
|
|
|
local sql="DELETE FROM roles WHERE id = $selected_role_id;"
|
|
local sql="DELETE FROM roles WHERE id = $selected_role_id;"
|
|
|
|
|
|
|
|
- echo "$sql" | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Error" --msgbox "Failed to delete role.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ db_exec_sql "$sql" "$DB_TARGET" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "Failed to delete role.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$DIALOG --msgbox "Role '$selected_role_name' deleted successfully!" 8 60
|
|
$DIALOG --msgbox "Role '$selected_role_name' deleted successfully!" 8 60
|
|
@@ -551,11 +637,9 @@ delete_role() {
|
|
|
create_user() {
|
|
create_user() {
|
|
|
# Get available roles
|
|
# Get available roles
|
|
|
local roles_list
|
|
local roles_list
|
|
|
- roles_list=$(podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
- -e "SELECT id, name, power FROM roles ORDER BY power DESC;" -s -N 2>>"$LOG_FILE") || {
|
|
|
|
|
- $DIALOG --msgbox "Failed to fetch roles from database.\nEnsure schema is imported and roles exist." 10 60
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ roles_list=$(db_query "SELECT id, name, power FROM roles ORDER BY power DESC;" "$DB_TARGET" 2>>"$LOG_FILE") || {
|
|
|
|
|
+ $DIALOG --msgbox "Failed to fetch roles from database.\nEnsure schema is imported and roles exist." 10 60
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Build role selection menu
|
|
# Build role selection menu
|
|
@@ -621,11 +705,10 @@ create_user() {
|
|
|
[[ -n "$phone" ]] && sql+="'$phone'" || sql+="NULL"
|
|
[[ -n "$phone" ]] && sql+="'$phone'" || sql+="NULL"
|
|
|
sql+=", 1);"
|
|
sql+=", 1);"
|
|
|
|
|
|
|
|
- echo "$sql" | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Error" --msgbox "Failed to create user.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ db_exec_sql "$sql" "$DB_TARGET" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "Failed to create user.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$DIALOG --msgbox "User '$username' created successfully!" 8 60
|
|
$DIALOG --msgbox "User '$username' created successfully!" 8 60
|
|
@@ -634,11 +717,9 @@ create_user() {
|
|
|
delete_user() {
|
|
delete_user() {
|
|
|
# Fetch users from the database
|
|
# Fetch users from the database
|
|
|
local users_list
|
|
local users_list
|
|
|
- users_list=$(podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" \
|
|
|
|
|
- -e "SELECT id, username, name FROM users ORDER BY id;" -s -N 2>>"$LOG_FILE") || {
|
|
|
|
|
- $DIALOG --msgbox "Failed to fetch users from database." 10 60
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ users_list=$(db_query "SELECT id, username, name FROM users ORDER BY id;" "$DB_TARGET" 2>>"$LOG_FILE") || {
|
|
|
|
|
+ $DIALOG --msgbox "Failed to fetch users from database." 10 60
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Build user selection menu
|
|
# Build user selection menu
|
|
@@ -667,11 +748,10 @@ delete_user() {
|
|
|
# Delete user
|
|
# Delete user
|
|
|
local sql="DELETE FROM users WHERE id = $selected_user_id;"
|
|
local sql="DELETE FROM users WHERE id = $selected_user_id;"
|
|
|
|
|
|
|
|
- echo "$sql" | podman exec -i "$BEEPZONE_DB_CONTAINER_NAME" \
|
|
|
|
|
- mariadb -h"$DB_HOST" -P"$DB_PORT" -uroot -p"$DB_ROOT_PASSWORD" "$DB_NAME" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
- error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
- $DIALOG --title "Error" --msgbox "Failed to delete user.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ db_exec_sql "$sql" "$DB_TARGET" >>"$LOG_FILE" 2>&1 || {
|
|
|
|
|
+ error_log=$(tail -20 "$LOG_FILE")
|
|
|
|
|
+ $DIALOG --title "Error" --msgbox "Failed to delete user.\n\nError:\n${error_log}" 20 76
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$DIALOG --msgbox "User '$selected_username' deleted successfully!" 8 60
|
|
$DIALOG --msgbox "User '$selected_username' deleted successfully!" 8 60
|