/** * @return Session */ public static function getSession() { if (!isset(self::$instance)) { self::$instance = new self(); } self::$instance->startSession(); return self::$instance; }
function getSessionFromRequest() { $adminAccessToken = Config::inst()->get('AuthSession', 'adminAccessToken'); $accessToken = $this->getAccessTokenFromRequest(); if ($adminAccessToken && $adminAccessToken === $accessToken) { return AuthSession::find_admin_session_by_accesstoken($adminAccessToken); } return AuthSession::find_by_accesstoken($accessToken); }
function sessions() { if (!$this->isValidApiSession()) { return $this->sendInvalidApiSession(); } if ($this->request->isGET()) { return $this->sendData(array("count" => AuthSession::get()->filter(array("MemberID" => $this->restfulSession->Member()->ID))->Count())); } else { if ($this->request->isDELETE()) { AuthSession::get()->filter(array("MemberID" => $this->restfulSession->Member()->ID))->removeAll(); return $this->sendSuccessfulDelete(); } } }
/** * We create / get a valid session by a defined accesstoken */ static function find_admin_session_by_accesstoken($token) { $session = self::find_by_accesstoken($token); if (!$session) { if (!(strlen(trim($token)) > 6)) { return user_error('admin authtoken must be at least 6 chars long'); } $session = AuthSession::create(array("UID" => $token)); $session->write(); } if (!$session->Member() || !$session->Member()->inGroup('ADMIN')) { // we need to attach an admin user to session to fulfill a valid session datao object with admin privileges $admin = Permission::get_members_by_permission('ADMIN')->First(); $session->Member = $admin; $session->MemberID = $admin->ID; $session->write(); } if (!$session->isValid()) { // renew session $session->setValidInMinutesFromNow(302400); $session->write(); } return $session; }
public function verifyAuth() { return (bool) AuthSession::getAutenticado(); }