static function login() { core::reg('run-naked',true); $realm= core::config('cms-realm'); if (!$realm) { $realm= strtolower($_SERVER['HTTP_HOST']); if (substr($realm,0,4)=='www.') $realm= substr($realm,4); $realm= 'ConKit@'.$realm; } if (!isset($_SERVER['PHP_AUTH_USER'])) core::halt(401,$realm); $exp= (isset($_COOKIE['conkit_cms_exp']) ? $_COOKIE['conkit_cms_exp'] : null); if ($_SERVER['PHP_AUTH_USER']===$exp) { setcookie('conkit_cms_exp','',0,'/'); core::halt(401,$realm); } $loginHandler= core::config('cms-user-check'); if (!$loginHandler) $res= cms::loginCheck($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); else $res= call_user_func($loginHandler,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); if ($res!==false) { if (!$loginHandler) $res= core::reqSession('.cms-admin', array_merge(array('name'=>$_SERVER['PHP_AUTH_USER']),core::$config['cms-users'][$_SERVER['PHP_AUTH_USER']])); elseif (is_array($res)) $res= array_merge(array('name'=>$_SERVER['PHP_AUTH_USER'],'password'=>$_SERVER['PHP_AUTH_PW']),$res); else $res= array('name'=>$_SERVER['PHP_AUTH_USER'],'password'=>$_SERVER['PHP_AUTH_PW'],'attr'=>$res); core::reqSession('.cms-admin', $res); core::halt(302,urldecode(core::req('cms-request'))); } else core::halt(401,$realm); }