$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

Thomas Haughton

Thomas Haughton

"Practice and hone your skills in your spare time, find something interesting and teach yourself."

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

The course taught me some of the necessary technical skills needed to perform my role, the most important being programming and database related modules.

I think the experiential learning module was the most useful to me. It was much more aligned to the things I do in my role and how my office environment operates. It gave me a real insight into what I could expect from a job in industry.

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

  • Programming
  • Databases
  • Presentation skills
  • Time management
  • Good documentation skills