/** * Create a User * * @param Request $request [optional] create user from current Request */ public function __construct(Request $request = null) { self::$request = $request; $this->registry = Registry::getInstance(); if ($request != "") { // user attributes $this->username = $request->getSessionData("username"); $this->role = $request->getSessionData("role"); $this->ip_address = $request->getClientIp(); $this->admin = $request->getSessionData('user_admin'); // local ip range from config $this->ip_range = $this->registry->getConfig("LOCAL_IP_RANGE", false, null); // temporarily authenticate users if ($this->username == "") { // on campus if ($this->isInLocalIpRange() == true) { $this->username = self::genRandomUsername(self::LOCAL); $this->role = self::LOCAL; } else { $this->username = self::genRandomUsername(self::GUEST); $this->role = self::GUEST; } $request->setSessionData("username", $this->username); $request->setSessionData("role", $this->role); } } }