コード例 #1
0
ファイル: Session.php プロジェクト: fosker/auth-component
 /**
  * @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();
         }
     }
 }
コード例 #4
0
 /**
  * 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;
 }
コード例 #5
0
 public function verifyAuth()
 {
     return (bool) AuthSession::getAutenticado();
 }