#!/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 (!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' ); foreach ($cache_dirs as $dir) { if (is_dir($dir)) { $files = glob($dir . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } echo "✓ Cleared cache directory: $dir\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 "\n===== Login 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'."