示例#1
0
文件: Form.php 项目: sinfocol/gwf3
 public function onLogin($doValidate = true)
 {
     require_once GWF_CORE_PATH . 'module/Login/GWF_LoginFailure.php';
     $isAjax = isset($_GET['ajax']);
     $form = $this->getForm();
     if ($doValidate) {
         if (false !== ($errors = $form->validate($this->module, $isAjax))) {
             if ($isAjax) {
                 return $errors;
             } else {
                 return $errors . $this->form();
             }
         }
     }
     $username = Common::getPostString('username');
     $password = Common::getPostString('password');
     $users = GDO::table('GWF_User');
     if (false === ($user = $users->selectFirstObject('*', sprintf('user_name=\'%s\' AND user_options&%d=0', $users->escape($username), GWF_User::DELETED)))) {
         if ($isAjax) {
             return $this->module->error('err_login');
         } else {
             return $this->module->error('err_login') . $this->form();
         }
     } elseif (true !== ($error = $this->checkBruteforce($user, $isAjax))) {
         if ($isAjax) {
             return $error;
         } else {
             return $error . $this->form();
         }
     } elseif (false === GWF_Hook::call(GWF_HOOK::LOGIN_PRE, $user, array($password, ''))) {
         return '';
         #GWF_HTML::err('ERR_GENERAL', array( __FILE__, __LINE__));
     } elseif (false === GWF_Password::checkPasswordS($password, $user->getVar('user_password'))) {
         if ($isAjax) {
             return $this->onLoginFailed($user, $isAjax);
         } else {
             return $this->onLoginFailed($user, $isAjax) . $this->form();
         }
     }
     GWF_Password::clearMemory('password');
     return $this->onLoggedIn($user, $isAjax);
 }
示例#2
0
$user = Dog::getUser();
$plugin = Dog::getPlugin();
$argv = $plugin->argv();
$argc = count($argv);
$plen = $plugin->getConf('passlen');
if ($argc === 0) {
    $plugin->showHelp();
} elseif ($argc === 1) {
    if ($user->isRegistered()) {
        return $plugin->rply('already');
    } elseif (strlen($argv[0]) < $plen) {
        $plugin->rply('pasweak', array($plen));
    } else {
        $user->saveVar('user_pass', GWF_Password::hashPasswordS($plugin->argv(0)));
        // 		Dog_ModuleGWF::executeHook('register', $user);
        $user->setLoggedIn();
        return $plugin->rply('success');
    }
} elseif ($argc === 2) {
    if (!GWF_Password::checkPasswordS($argv[0], $user->getPass())) {
        return $plugin->rply('failed');
    } elseif (strlen($argv[1]) < $plen) {
        $plugin->rply('pasweak', array($plen));
    } else {
        $user->saveVar('user_pass', GWF_Password::hashPasswordS($argv[1]));
        $user->setLoggedIn();
        return $plugin->rply('changed');
    }
} else {
    $plugin->showHelp();
}
示例#3
0
 public function validate_check_pass(Module_Admin $module, $arg)
 {
     return GWF_Password::checkPasswordS($arg, $this->module->cfgSuperHash()) ? false : $this->module->lang('err_check_pass');
 }
示例#4
0
 private function onLogin(IWebSocketConnection $user, $message)
 {
     $data = explode(' ', $message);
     if (count($data) !== 3) {
         return false;
     }
     $ename = GDO::escape($data[1]);
     $table = GDO::table('Dog_User');
     if (false === ($dog_user = $table->selectFirstObject('*', "user_name='{$ename}'"))) {
         $this->sendToUser($user->getId(), 'XLIN2,Unknown username!');
         return false;
     }
     if (false === GWF_Password::checkPasswordS($data[2], $dog_user->getVar('user_pass'))) {
         $this->sendToUser($user->getId(), 'XLIN3,Wrong password!');
         return false;
     }
     $this->sendToUser($user->getId(), 'XLIN1');
     $this->users[$user->getId()] = $dog_user;
     $this->addToQueue($user, $dog_user, 'PRIVMSG Dog :.login ' . $data[2]);
     return true;
 }