function login() { NDebug::debug('Redirecting ' . $_SERVER['REMOTE_ADDR'] . ' to login to nterchange.', N_DEBUGTYPE_AUTH); $auth = new NAuth(); $auth->start(); $username = $auth->username; $status = $auth->status; $form = new NQuickForm('login_form', 'post', preg_replace('/logout=1[\\&]?/', '', $_SERVER['REQUEST_URI'])); $form->setDefaults(array('username' => $username)); if (isset($_GET['logout']) && $_GET['logout'] == 1) { $form->addElement('cmsalert', 'logout_header', 'You have signed out. Sign back in to continue.'); } else { if ($status < 0 && !empty($username)) { $form->addElement('cmserror', 'login_status', $auth->statusMessage($status)); } else { $form->addElement('cmsalert', 'login_status', 'Please sign in and you will be sent right along.'); } } $form->addElement('text', 'username', 'Username', array('maxlength' => 32, 'style' => 'width:300px;')); $form->addElement('password', 'password', 'Password', array('maxlength' => 32, 'style' => 'width:150px;')); // $form->addElement('checkbox', 'remember', null, 'Remember me for 2 weeks.'); $form->addElement('submit', 'login', 'Sign In'); $referer = isset($_GET['_referer']) ? urlencode($_GET['_referer']) : urlencode('/' . $this->base_dir); $form->addElement('hidden', '_referer', $referer); if ($auth->checkAuth()) { NDebug::debug('Logged ' . $_POST['username'] . ' from ' . $_SERVER['REMOTE_ADDR'] . ' in to nterchange.', N_DEBUGTYPE_AUTH); // Log this in the audit trail. $user_id = $auth->currentUserID(); $audit_trail =& NController::factory('audit_trail'); $audit_trail->insert(array('asset' => 'users', 'asset_id' => $user_id, 'action_taken' => AUDIT_ACTION_LOGIN)); unset($audit_trail); // Redirect to the page requested. header('Location:' . urldecode($referer)); exit; } $content = $form->toHTML(); $this->set(array('MAIN_CONTENT' => $content, 'username' => $username, 'status' => $status)); $this->auto_render = false; $this->render(array('layout' => 'login')); }