#!/bin/bash # Exit on error set -e # Source environment variables if [ -f ".env" ]; then source .env else echo "Error: .env file not found. Please create it with the required variables." exit 1 fi echo "===== Fixing Login Issues via PHP =====" # Create a PHP script to fix login issues echo "Creating PHP script to fix login issues..." sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && cat > fix-login-issues.php << 'EOF' ID); echo \"Password reset for test_trainer\n\"; // Clear user sessions \$sessions = WP_Session_Tokens::get_instance(\$user->ID); \$sessions->destroy_all(); echo \"All sessions cleared for test_trainer\n\"; // Verify role \$user_meta = get_userdata(\$user->ID); if (!\$user_meta->roles || !in_array('hvac_trainer', \$user_meta->roles)) { \$user->add_role('hvac_trainer'); echo \"Added hvac_trainer role\n\"; } else { echo \"User already has hvac_trainer role\n\"; } // Make sure user has the right capabilities if (!user_can(\$user->ID, 'view_hvac_dashboard')) { \$role = get_role('hvac_trainer'); if (\$role) { \$role->add_cap('view_hvac_dashboard', true); echo \"Added view_hvac_dashboard capability to hvac_trainer role\n\"; } } else { echo \"User already has view_hvac_dashboard capability\n\"; } } else { echo \"test_trainer user not found\n\"; } // 4. Clear Breeze cache echo \"4. Clearing Breeze cache...\n\"; if (function_exists('breeze_cache_flush')) { breeze_cache_flush(); echo \"Cache cleared via function\n\"; } else { // Try manually clearing cache directories \$cache_dirs = array( WP_CONTENT_DIR . '/cache/breeze', WP_CONTENT_DIR . '/uploads/breeze/css', WP_CONTENT_DIR . '/uploads/breeze/js' ); \$cleared = false; foreach (\$cache_dirs as \$dir) { if (is_dir(\$dir)) { \$files = glob(\$dir . '/*'); if (\$files) { foreach (\$files as \$file) { if (is_file(\$file)) { @unlink(\$file); } } } echo \"Cleared cache directory: \$dir\n\"; \$cleared = true; } } if (!\$cleared) { echo \"No cache directories found to clear\n\"; } } // 5. Check Breeze settings echo \"5. Checking Breeze settings...\n\"; \$breeze_basic = get_option('breeze_basic_settings'); if (\$breeze_basic && is_array(\$breeze_basic)) { // Make sure cache is disabled for logged-in users \$breeze_advanced = get_option('breeze_advanced_settings'); if (\$breeze_advanced && is_array(\$breeze_advanced)) { if (!isset(\$breeze_advanced['breeze-disable-admin']) || \$breeze_advanced['breeze-disable-admin'] != '1') { \$breeze_advanced['breeze-disable-admin'] = '1'; update_option('breeze_advanced_settings', \$breeze_advanced); echo \"Updated Breeze to disable cache for logged-in users\n\"; } else { echo \"Breeze already disables cache for logged-in users\n\"; } } // Add login pages to no-cache list \$no_cache_pages = isset(\$breeze_basic['no-cache-pages']) ? \$breeze_basic['no-cache-pages'] : ''; \$pages_to_add = array('/community-login/', '/wp-login.php', '/hvac-dashboard/'); \$updated = false; foreach (\$pages_to_add as \$page) { if (strpos(\$no_cache_pages, \$page) === false) { \$no_cache_pages .= (!empty(\$no_cache_pages) ? ', ' : '') . \$page; \$updated = true; } } if (\$updated) { \$breeze_basic['no-cache-pages'] = \$no_cache_pages; update_option('breeze_basic_settings', \$breeze_basic); echo \"Added login pages to Breeze no-cache list\n\"; } else { echo \"Login pages already in Breeze no-cache list\n\"; } } else { echo \"Breeze settings not found\n\"; } echo \"\nLogin Issues Fixed\n\"; echo \"You should now be able to log in with test_trainer / test_password\n\"; // Return login URLs for testing \$login_url = site_url('/community-login/'); \$dashboard_url = site_url('/hvac-dashboard/'); echo \"\nTest URLs:\n\"; echo \"Login: \$login_url\n\"; echo \"Dashboard: \$dashboard_url\n\"; EOF" # Execute the PHP script echo "Executing login fix script..." sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && php fix-login-issues.php" # Clean up sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && rm fix-login-issues.php" echo -e "\n===== Login Fixes Applied =====" echo "The login issues for the test_trainer user should now be resolved." echo "Please try logging in with username 'test_trainer' and password 'test_password'."