$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

Kyle Thomas

Computer Science BSc (Hons)

Kyle Thomas

"Don’t be worried if you don’t know how to solve a problem. Google and Stack Overflow become your best friends."

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

It helped prepare me with a wide range of skills that were transferable to most IT sectors.

Having a BSc in Computer Science meant I didn’t have to be specialised and opened doors to almost everything.

What support did you receive during your degree?

Careers & Employability were really helpful when it came to writing my CV and approaching companies.

The most support was from the Informatics Centre, which gave me training and additional knowledge on my placement module. I learnt how to manage client expectations and lead a team. I also felt very welcome throughout the course and was able to drop in to the Informatics Centre office if I needed any help.

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

  • Leadership
  • Project management
  • Source control
  • Researching
  • Time management