1560759c51
After live testing on the real server, three follow-up issues surfaced: - PhpMyAdminSso granted the temporary SSO MySQL role access to every database the account owns, not just the one the "Zaloguj do bazy" button was clicked for, so phpMyAdmin showed all databases. Extract determineGrantTargets() and scope the GRANT to only the requested database; also set phpMyAdmin's only_db from the SSO session so the UI itself only shows that database. - phpMyAdmin's LogoutURL pointed at da_login.php with no ticket, which always produced "Missing or invalid phpMyAdmin login ticket." on logout. Add a DIRECTADMIN_PANEL_PORT setting (default 2222) and point LogoutURL at the plugin's own database list (/CMD_PLUGINS/alt-mysql/index.html) instead. - The create-database form kept echoing back the just-submitted values after a successful creation, forcing manual clearing before creating the next database. Clear the relevant $_POST keys once creation succeeds so the form resets while still preserving sticky values on validation failure. Bump version to 1.2.14 and rebuild the release archive.
56 lines
2.1 KiB
Bash
56 lines
2.1 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
PLUGIN_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
fail() {
|
|
echo "FAIL: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
case "$(basename "$PLUGIN_DIR")" in
|
|
alt-mysql|src) ;;
|
|
*) fail "plugin directory name is neither alt-mysql nor src" ;;
|
|
esac
|
|
grep -Fxq "name=alt-mysql" "$PLUGIN_DIR/plugin.conf" || fail "plugin.conf name is not alt-mysql"
|
|
grep -Fxq "id=alt-mysql" "$PLUGIN_DIR/plugin.conf" || fail "plugin.conf id is not alt-mysql"
|
|
grep -Fxq "version=1.2.14" "$PLUGIN_DIR/plugin.conf" || fail "plugin.conf version is not 1.2.14"
|
|
grep -Fq "return '/CMD_PLUGINS/alt-mysql';" "$PLUGIN_DIR/exec/lib/AppContext.php" \
|
|
|| fail "AppContext base URL is not alt-mysql"
|
|
grep -Fq "\$pluginId = 'alt-mysql';" "$PLUGIN_DIR/exec/lib/DirectAdminUser.php" \
|
|
|| fail "DirectAdmin plugin allow/deny id is not alt-mysql"
|
|
|
|
[ -x "$PLUGIN_DIR/scripts/install_db.sh" ] || fail "install_db.sh is not executable in scripts/"
|
|
[ ! -e "$PLUGIN_DIR/scripts/install-alt-mariadb.sh" ] || fail "install-alt-mariadb.sh still exists in plugin scripts/"
|
|
[ ! -e "$PLUGIN_DIR/../mysql-installer/install_db.sh" ] || fail "install_db.sh exists outside plugin scripts/"
|
|
[ ! -e "$PLUGIN_DIR/../mysql-installer/install-alt-mariadb.sh" ] || fail "install-alt-mariadb.sh still exists outside plugin scripts/"
|
|
|
|
BAD_REFS="$(
|
|
old_plugin_path="/usr/local/directadmin/plugins/"'mysql'
|
|
old_cmd_path="/CMD_PLUGINS/"'mysql'
|
|
find "$PLUGIN_DIR" -type f \
|
|
! -path '*/tests/plugin_identity_test.sh' \
|
|
! -path '*/data/*' \
|
|
-exec grep -HnE "$old_plugin_path|$old_cmd_path" {} + || true
|
|
)"
|
|
[ -z "$BAD_REFS" ] || {
|
|
printf '%s\n' "$BAD_REFS" >&2
|
|
fail "old DirectAdmin plugin path references remain"
|
|
}
|
|
|
|
LEGACY_REFS="$(
|
|
legacy_sudoers="/etc/sudoers.d/directadmin-"'mysql'"-plugin"
|
|
legacy_cron="/etc/cron.d/"'mysql'"-jobs"
|
|
legacy_csf="/etc/csf/"'mysql'"-plugin.allow"
|
|
find "$PLUGIN_DIR" -type f \
|
|
! -path '*/tests/plugin_identity_test.sh' \
|
|
! -path '*/data/*' \
|
|
-exec grep -HnE "$legacy_sudoers|$legacy_cron|$legacy_csf" {} + || true
|
|
)"
|
|
[ -z "$LEGACY_REFS" ] || {
|
|
printf '%s\n' "$LEGACY_REFS" >&2
|
|
fail "legacy mysql plugin artifact references remain"
|
|
}
|
|
|
|
echo "plugin_identity_test: OK"
|