예제 #1
0
 /**
  * Login method
  * @param String pUsername
  * @param String pPassword
  */
 function LogIn($pUsername, $pPassword)
 {
     // username and password are stored in the database
     global $cUserNameFieldType, $cPasswordFieldType, $cUserNameField, $cPasswordField, $cDisplayNameField;
     $logged = false;
     $strUsername = (string) $pUsername;
     $strPassword = (string) $pPassword;
     $loginSet = ProjectSettings::getForLogin();
     $cipherer = RunnerCipherer::getForLogin($loginSet);
     $sUsername = $strUsername;
     $sPassword = $strPassword;
     if ($cipherer->isFieldEncrypted($cUserNameField)) {
         $strUsername = $cipherer->MakeDBValue($cUserNameField, $strUsername, "", true);
     } else {
         if (NeedQuotes($cUserNameFieldType)) {
             $strUsername = $this->connection->prepareString($strUsername);
         } else {
             $strUsername = 0 + $strUsername;
         }
     }
     if ($cipherer->isFieldEncrypted($cPasswordField)) {
         $strPassword = $cipherer->MakeDBValue($cPasswordField, $strPassword, "", true);
     } else {
         if (NeedQuotes($cPasswordFieldType)) {
             $strPassword = $this->connection->prepareString($strPassword);
         } else {
             $strPassword = 0 + $strPassword;
         }
     }
     if ($loginSet) {
         if (!$this->pSet->isCaseInsensitiveUsername()) {
             $where = $this->getFieldSQLDecrypt($cUserNameField) . "=" . $strUsername . " and " . $this->getFieldSQLDecrypt($cPasswordField) . "=" . $strPassword;
         } else {
             $where = $this->connection->upper($this->getFieldSQLDecrypt($cUserNameField)) . "=" . $this->pSet->getCaseSensitiveUsername($strUsername) . " and " . $this->getFieldSQLDecrypt($cPasswordField) . "=" . $strPassword;
         }
         $tempSQLQuery = $loginSet->GetTableData(".sqlquery");
         $tempSQLQuery->addWhere($where);
         $strSQL = $tempSQLQuery->toSql();
     } else {
         $strSQL = "select * from " . $this->connection->addTableWrappers("DashboardUsers") . " where " . $this->connection->addFieldWrappers($cUserNameField) . "=" . $strUsername . " and " . $this->connection->addFieldWrappers($cPasswordField) . "=" . $strPassword;
     }
     $data = $cipherer->DecryptFetchedArray($this->connection->query($strSQL)->fetchAssoc());
     if ($data) {
         if ($this->pSet->getCaseSensitiveUsername(@$data[$cUserNameField]) == $this->pSet->getCaseSensitiveUsername($sUsername) && @$data[$cPasswordField] == $sPassword) {
             $logged = true;
             $pDisplayUsername = $data[$cDisplayNameField] != '' ? $data[$cDisplayNameField] : $sUsername;
         }
     }
     if ($logged && $this->isCaptchaOk) {
         DoLogin(false, $pUsername, $pDisplayUsername, "", ACCESS_LEVEL_USER, $pPassword, $this);
         SetAuthSessionData($pUsername, $data, $this->fromFacebook, $pPassword, $this);
         return true;
     }
     if ($this->auditObj) {
         $this->auditObj->LogLoginFailed($pUsername);
         $this->auditObj->LoginUnsuccessful($pUsername);
     }
     return false;
 }
예제 #2
0
 protected function assignCipherer()
 {
     $this->cipherer = RunnerCipherer::getForLogin();
 }
예제 #3
0
<?php

@ini_set("display_errors", "1");
@ini_set("display_startup_errors", "1");
require_once "include/dbcommon.php";
require_once 'classes/remindpwdpage.php';
require_once 'include/xtempl.php';
require_once getabspath("classes/cipherer.php");
$reminded = false;
$sentMailResults = array();
$cipherer = RunnerCipherer::getForLogin();
$xt = new Xtempl();
$sessPrefix = 'remind';
$id = postvalue("id") !== "" ? postvalue("id") : 1;
$cEmailField = "email";
$layout = new TLayout("remind5", "CityBlueWave", "MobileBlueWave");
$layout->version = 2;
$layout->blocks["top"] = array();
$layout->containers["fields"] = array();
$layout->container_properties["fields"] = array();
$layout->containers["fields"][] = array("name" => "remindheader", "block" => "remindheader", "substyle" => 2);
$layout->containers["fields"][] = array("name" => "message", "block" => "message_block", "substyle" => 1);
$layout->containers["fields"][] = array("name" => "remindfields", "block" => "", "substyle" => 1);
$layout->containers["fields"][] = array("name" => "remindbuttons", "block" => "remindbuttons", "substyle" => 2);
$layout->skins["fields"] = "fields";
$layout->blocks["top"][] = "fields";
$page_layouts["remind"] = $layout;
$layout->skinsparams = array();
$layout->skinsparams["empty"] = array("button" => "button1");
$layout->skinsparams["menu"] = array("button" => "button1");
$layout->skinsparams["hmenu"] = array("button" => "button1");