예제 #1
0
 /**
  * Checks if a session is active.
  *
  * @param   string   role name
  * @param   array    collection of role names
  * @return  boolean
  */
 public function logged_in($role = NULL)
 {
     //               if (FB::get_loggedin_user() == FALSE)
     //               {
     //                   $this->logout(TRUE, FALSE);
     //                   return FALSE;
     //               }
     if (isset($this->_user)) {
         // Let the parent handle roles...
         return parent::logged_in($role);
     } else {
         $user = $this->session->get($this->config['session_key']);
         $user = !isset($user) ? $user : Sprig::factory('User', $user)->load();
         if (is_object($user) and $user->loaded()) {
             $this->_user = $user;
             return parent::logged_in($role);
         }
     }
     // Attempt auto login
     if ($this->auto_login()) {
         // Success, get the user back out of the session
         $user = $this->session->get($this->config['session_key']);
         $user = !isset($user) ? $user : Sprig::factory('User', $user)->load();
         if (is_object($user) and $user->loaded()) {
             $this->_user = $user;
             return parent::logged_in($role);
         }
     }
     if ($this->facebook_login($user) == FALSE) {
         return FALSE;
     }
     // Let the parent handle roles...
     return parent::logged_in($role);
 }