/** @return $user User || null Verifies the current session. A User is returned iff the session is valid. */ public function verify() { if (session_status() === PHP_SESSION_NONE) { session_start(); } if (!array_key_exists('userId', $_SESSION) || !array_key_exists('secret', $_SESSION)) { return null; } $userId = $_SESSION['userId']; $secret = $_SESSION['secret']; $user = User::fromUserId($userId); if ($user === null) { return null; } if ($secret === $this->sessionSecret($user)) { return $user; } return null; }
/** @return $user User Returns the User that is associated with an AreaOfInterest. */ public function getUser() { if ($this->user === null) { $this->user = User::fromUserId($this->getUserId()); } return $this->user; }
<?php require_once 'config.php'; if (array_key_exists('userId', $_GET)) { $user = User::fromUserId($_GET['userId']); } else { $user = Config::getUserManager()->verify(); } if (empty($user)) { header('LOCATION: index.php'); } else { $name = $user->getDisplayName(); $avatar = $user->getAvatarUrl(); $last = $user->getLastLogin(); $tasks = $user->getTasksCompleted(); ?> <html lang="en"> <head> <?php require_once 'head.php'; ?> <script src="js/require.js"></script> <script src="js/profile.js"></script> <title>Profile of <?php echo $name; ?> </title> </head> <body><?php require_once 'navbar.php'; ?>