id_admin && sha1(c::crypt()->encrypt($_SERVER['PHP_AUTH_PW'])) == $admin->pass) { // we have a valid login c::admin($admin); $_SESSION['admin'] = true; } $this->user($admin); } } public function postInit() { if ($this->user()->id_admin) { c::admin($this->user()); $ghost = $_GET['_ghost']; if (!$ghost) { $ghost = $this->session()->get('_ghost'); } if ($this->user()->permission()->check(['global','ghost'])) { if ($ghost && $ghost != 'ME') { $u = new Admin($ghost); if ($u->id_admin) { $this->user($u); $this->session()->set('_ghost',$u->id_admin); } } elseif ($ghost == 'ME') { $this->session()->set('_ghost',null); } } else { if ($ghost) { $this->session()->set('_ghost',null); } } } else { $this->user(new Admin); } } public function setUser($user) { $this->_user = $user; $this->session()->id_user = $user->id_user; $this->session()->date_active = date('Y-m-d H:i:s'); $this->session()->generateAndSaveToken(); setcookie('token', $this->session()->token, (new DateTime('3000-01-01'))->getTimestamp(), '/'); } public function doAuth($type, $id) { $auth = Crunchbutton_User_Auth::byTypeId($type,$id); if ($auth->active && $auth->user()->active) { $this->_user = $auth->user(); $this->session()->id_user = $this->user()->id_user; $this->session()->id_user_auth = $auth->id_user_auth; $this->session()->save(); return true; } return false; } public function doAuthByLocalUser($params) { $auth = Admin_Auth::localLogin($params['email'], $params['password']); if ($auth->active) { c::admin($auth); $this->user($auth); $this->session()->id_admin = $this->user()->id_admin; $this->session()->date_active = date('Y-m-d H:i:s'); $this->session()->generateAndSaveToken(); setcookie('token', $this->session()->token, (new DateTime('3000-01-01'))->getTimestamp(), '/'); return true; } return false; } public function user($user = null) { if (isset($user)) { $this->_user = $user; } elseif (!isset($this->_user)) { $this->_user = $this->userObject(); } return $this->_user; } public function userObject($params = null) { if ($params) { return new Crunchbutton_Admin($params); } else { return new Crunchbutton_Admin; } } }