$cookieVal) { // Check for SAML cookies using regex patterns foreach ($cookieRegexList as $regex) { if (preg_match("#$regex#ui", $cookieKey)) { setcookie($cookieKey, '', [ 'Expires' => time() - 3600, 'Path' => '/', 'SameSite' => 'Lax', 'HttpOnly' => true ]); } } } // Clear ALL cookies foreach ($_COOKIE as $cookieName => $cookieValue) { // Clear with domain setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); // Also try without domain (for cookies set without domain) setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); // Try with parent domain for cross-domain cookies if (substr_count($_SERVER['HTTP_HOST'], '.') > 1) { $parentDomain = substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')); setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'domain' => $parentDomain, 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); } } // Redirect to Microsoft logout URL $logoutUrl = 'https://login.microsoftonline.com/18843e6e-1846-456c-a05c-500f0aee12f6/oauth2/logout'; header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header('Location: ' . $logoutUrl); exit; } try { include_once(((strpos($t4_config['phar'], '.phar') !== false) ? 'phar://' : '').$_SERVER['DOCUMENT_ROOT'].$t4_config['phar'].'/vendor/autoload.php'); if (!class_exists('\AccessControl\Core\Config')) { throw new \Exception('AccessControl Library is not loaded correctly'); } if (!empty($t4_config['config'])) { AccessControl\Core\Config::setJSON($_SERVER['DOCUMENT_ROOT'].$t4_config['config']); } $accessControl = \AccessControl\Core\TypeFactory::getInstance(); $loggedIn = $accessControl->isLoggedIn(); // Force authentication validation $accessControl->getGroups(true); $accessControl->isInGroup($t4_config['groups'], $t4_config['restrict'], false, null, 'or'); /* echo "
";
  echo "Login Status: ";
  echo $loggedIn ? "isLoggedIn" : "isNotLoggedIn";
  echo "\n\n";

  echo "User Groups:\n";
  print_r($accessControl->getGroups(true));
  echo "\n";

  echo "Is in Group:\n";
  var_export($accessControl->isInGroup(
      $t4_config['groups'],
      $t4_config['restrict'],
      false,
      null,
      'or'
  ));
  echo "
"; */ } catch (Exception $e) { echo ''; } ?> Profiles | University of Chester

Andy Elliot

Andy Elliot

"Always ask questions and try to learn areas outside of the lecturer’s materials. It will help you down the line!"

How did your degree at the University of Chester prepare you for your current role?

It gave me a solid foundation in the technical aspects of the role but also gave me confidence in myself as a developer and programmer. I had a wide breadth of knowledge from advanced programming paradigms and the software development lifecycle to the fundamentals of artificial intelligence and network infrastructure.

Having that knowledge behind me not only showed that I was well educated, but that I could adapt to any role, had passion for all things Computer Science, and above all was a hard worker - all valuable traits to a potential employer!

What do you feel are the top transferable skills that you use in your role?

  • Communication
  • Creative thinking
  • Problem solving
  • Teamwork
  • Being open to criticism