TRUE, ); public function action_login() { // Make sure we are called with a valid oauth plugin $oo = ORM::factory('Oauth',array('name'=>$this->request->param('id'))); if (! $oo->loaded() OR ! $oo->status) HTTP::redirect('login'); $auth = Auth::instance($oo); if (! $auth->logged_in()) HTTP::redirect($auth->login_url()); $aoo = $oo->account_oauth->where('userid','=',$auth->user_id())->find(); // If we have an ID, we have been linked, redirect to login if ($aoo->loaded() AND $auth->login($aoo->account,$auth->user_id(),$auth)) return $this->login(); // We need to link the ID Session::instance()->set('login-no-oauth',TRUE); Style::factory() ->type('file') ->data('media/theme/baseadmin/css/pages/login.css'); $this->template->content = View::factory('oauth/link') ->set('type',$oo->name); $this->template->shownavbar = FALSE; } public function action_link() { // Make sure we are called with a valid oauth plugin $oo = ORM::factory('Oauth',array('name'=>$this->request->param('id'))); if (! $oo->loaded() OR ! $oo->status) HTTP::redirect('login'); // Since we have logged in, get our user details $ao = Auth::instance()->get_user(); $auth = Auth::instance($oo); if (! $auth->logged_in()) HTTP::redirect('login'); if ($auth->login($ao,$auth->user_id(),$auth)) return $this->login(); } /** * When our login is complete and satisified, we execute here */ private function login() { // Redirect to the user account if ($redir = Session::instance()->get('afterlogin')) { Session::instance()->delete('afterlogin'); HTTP::redirect($redir); } else HTTP::redirect(URL::link('user','welcome/index')); } } ?>