multiple fixes on install()
This commit is contained in:
@@ -22,6 +22,7 @@ class Databap extends PhpObject
|
||||
public static $UPLOAD_IMG_EXTS = array('jpg', 'jpeg', 'gif', 'png');
|
||||
public static $UPLOAD_DOC_EXTS = array('jpg', 'jpeg', 'gif', 'png', 'doc', 'ppt', 'pdf', 'xls', 'docx', 'pptx', 'xlsx');
|
||||
const ID_SEPARATOR = '_';
|
||||
const SYSTEM_USER_ID = 1;
|
||||
|
||||
//Database constant
|
||||
const USER_TABLE = 'users';
|
||||
@@ -193,7 +194,7 @@ class Databap extends PhpObject
|
||||
* Constructor
|
||||
* @param ClassManagement $oClassManagement
|
||||
*/
|
||||
function __construct($oClassManagement)
|
||||
function __construct($oClassManagement, $sLanguage=self::LANG_FR)
|
||||
{
|
||||
parent::__construct(__CLASS__, Settings::DEBUG);
|
||||
$this->oClassManagement = $oClassManagement;
|
||||
@@ -215,14 +216,16 @@ class Databap extends PhpObject
|
||||
mb_http_input(Settings::TEXT_ENC);
|
||||
mb_language('uni');
|
||||
mb_regex_encoding(Settings::TEXT_ENC);
|
||||
|
||||
//Databap Settings
|
||||
$this->setUserId(0);
|
||||
$this->sLanguage = $sLanguage;
|
||||
|
||||
//Passing settings down to mySQL
|
||||
$this->oMySql = new MySqlManager(Settings::DB_SERVER, Settings::DB_LOGIN, Settings::DB_PASS, Settings::DB_NAME, self::getSqlOptions(), Settings::DB_ENC);
|
||||
if($this->oMySql->sDbState == MySqlManager::DB_NO_DATA && Settings::DEBUG==true) $this->install();
|
||||
|
||||
//Init other variables
|
||||
$this->setUserId(0);
|
||||
$this->sLanguage = self::LANG_FR;
|
||||
//Init Search Engine
|
||||
$this->oSearchEngine = new SearchEngine($this->oMySql);
|
||||
}
|
||||
|
||||
@@ -355,7 +358,7 @@ class Databap extends PhpObject
|
||||
$sOptionValueIdCol = MySqlManager::getId(self::OPTVAL_TABLE);
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_NICKNAME, $sOptionNameCol=>'pseudo du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BG, $sOptionNameCol=>'couleur de fond', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::POT_BG_2, $sOptionNameCol=>'couleur de fond 2', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BG_2, $sOptionNameCol=>'couleur de fond 2', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BG_3, $sOptionNameCol=>'couleur de fond 3', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_HOVER, $sOptionNameCol=>'couleur de survol', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
$this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_IMAGE_CHAT, $sOptionNameCol=>'image du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR));
|
||||
@@ -387,12 +390,14 @@ class Databap extends PhpObject
|
||||
$this->oMySql->insertRow(self::CHAN_TABLE, array('safe_name'=>self::getChanSafeName(self::ALL_CHAN_TEXT), MySqlManager::getText(self::CHAN_TABLE)=>self::ALL_CHAN_TEXT));
|
||||
$this->oMySql->insertRow(self::CHAN_TABLE, array('safe_name'=>self::getChanSafeName(self::DEFAULT_CHAN), MySqlManager::getText(self::CHAN_TABLE)=>self::DEFAULT_CHAN));
|
||||
|
||||
//Install default users : admin and test
|
||||
$iAdminId = $this->addUser('françois', 'lutran', 'planeum', 'francois@lutran.fr', self::CLEARANCE_ADMIN);
|
||||
//Install default users : system, admin and test
|
||||
$iSystemId = $this->addUser('databap', 'bot', 'ovh', 'databap@botnet.com', self::CLEARANCE_ADMIN, self::SYSTEM_USER_ID);
|
||||
$this->setOptions(array(self::OPT_NICKNAME=>'Databot'), true, $iSystemId);
|
||||
$this->addUser('françois', 'lutran', 'planeum', 'francois@lutran.fr', self::CLEARANCE_ADMIN);
|
||||
$this->addUser('test', 'test', 'test', 'test@test.com');
|
||||
|
||||
//Write the SAP blog parser bash script to main folder
|
||||
@file_put_contents('sap_website_parser.sh', "#!/bin/bash\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".$iAdminId.'_'.str_replace('$', '\$', $this->generateExternalAccessToken($iAdminId)));
|
||||
@file_put_contents('sap_website_parser.sh', "#!/bin/bash\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".$iSystemId.'_'.str_replace('$', '\$', $this->generateExternalAccessToken($iSystemId)));
|
||||
}
|
||||
|
||||
private function setUserId($iUserId)
|
||||
@@ -579,8 +584,7 @@ class Databap extends PhpObject
|
||||
foreach($asArticles as $asArticle)
|
||||
{
|
||||
$iArticleId = $this->oMySql->selectValue(self::ART_TABLE, MySqlManager::getId(self::ART_TABLE), array('title'=>$asArticle['title']));
|
||||
|
||||
if($iArticleId==0)
|
||||
if(!$iArticleId)
|
||||
{
|
||||
$iArticleId = $this->oMySql->insertRow(self::ART_TABLE, $asArticle);
|
||||
$this->addMessage($iArticleId, self::MESSAGE_ARTICLE, self::DEFAULT_CHAN_ID);
|
||||
@@ -753,7 +757,7 @@ class Databap extends PhpObject
|
||||
return $oNote->getNote();
|
||||
}
|
||||
|
||||
public function addUser($sFirstName, $sLastName, $sCompany, $sEmail='', $iClearance=self::CLEARANCE_MEMBER)
|
||||
public function addUser($sFirstName, $sLastName, $sCompany, $sEmail='', $iClearance=self::CLEARANCE_MEMBER, $iUserId=0)
|
||||
{
|
||||
$sFirstName = mb_strtolower($sFirstName);
|
||||
$sLastName = mb_strtolower($sLastName);
|
||||
@@ -770,19 +774,15 @@ class Databap extends PhpObject
|
||||
'pass'=>$this->oAuth->HashPassword(self::getLoginToken($sCompany)),
|
||||
'clearance'=>$iClearance,
|
||||
'led'=>'0000-00-00 00:00:00');
|
||||
if($iUserId>0) $asInfo[MySqlManager::getId(self::USER_TABLE)] = $iUserId;
|
||||
$iUserId = $this->oMySql->insertRow(self::USER_TABLE, $asInfo);
|
||||
|
||||
//Options & default values
|
||||
$this->setOptions(array(self::OPT_NICKNAME=>self::getNickNameFormat($sFirstName), self::OPT_EMAIL=>$sEmail), true, $iUserId);
|
||||
|
||||
$asInfo = array('select' => array($sOptNameIdCol, $sOptValueTextCol),
|
||||
'from' => self::OPTVAL_TABLE,
|
||||
'constraint'=> array('default_value'=>true, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"),
|
||||
'constOpe' => array('default_value'=>"=", $sOptNameIdCol=>" IN "),
|
||||
'constVar' => true);
|
||||
$sNickName = self::getNickNameFormat($sFirstName);
|
||||
$this->setOptions(array(self::OPT_NICKNAME=>$sNickName, self::OPT_EMAIL=>$sEmail), true, $iUserId);
|
||||
|
||||
//Spread the word
|
||||
$this->addMessage('Nouvel utilisateur: '.self::getNameFormat($sFirstName, $sLastName).' !', self::MESSAGE_NEWS, self::DEFAULT_CHAN_ID);
|
||||
if($iUserId!=self::SYSTEM_USER_ID) $this->addMessage('Nouvel utilisateur: '.self::getNameFormat($sFirstName, $sLastName).' ! Son petit nom sur le chat est '.$sNickName, self::MESSAGE_NEWS, self::DEFAULT_CHAN_ID, self::SYSTEM_USER_ID);
|
||||
|
||||
return $iUserId;
|
||||
}
|
||||
@@ -1317,7 +1317,7 @@ class Databap extends PhpObject
|
||||
|
||||
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
||||
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
||||
|
||||
|
||||
$asInfo = array('select' => array($sOptNameIdCol, $sOptValueTextCol),
|
||||
'from' => self::OPTVAL_TABLE,
|
||||
'constraint'=> array('default_value'=>true, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"),
|
||||
@@ -1347,7 +1347,7 @@ class Databap extends PhpObject
|
||||
|
||||
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
||||
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
||||
|
||||
|
||||
$asUserinfo = array('select' => array($sOptIdCol, $sOptNameIdColOptTable, $sOptValueIdColOptTable, $sOptValueTextCol),
|
||||
'from' => self::OPT_TABLE,
|
||||
'join' => array(self::OPTVAL_TABLE=>MySqlManager::getId(self::OPTVAL_TABLE)),
|
||||
@@ -1449,7 +1449,7 @@ class Databap extends PhpObject
|
||||
//Update option values table
|
||||
if($asOption['type']==self::OPT_TEXT)
|
||||
{
|
||||
$asData = array($sOptNameIdCol=>$sOptNameId, $sOptValueTextCol=>$sNewValue, 'language'=>self::LANG_FR);
|
||||
$asData = array($sOptNameIdCol=>$sOptNameId, $sOptValueTextCol=>$sNewValue, 'language'=>$this->sLanguage);
|
||||
if($sUserValueId==$sDefaultValueId) $sNewValueId = $this->oMySql->insertRow(self::OPTVAL_TABLE, $asData);
|
||||
else $sNewValueId = $this->oMySql->updateRow(self::OPTVAL_TABLE, $sUserValueId, array($sOptValueTextCol=>$sNewValue));
|
||||
}
|
||||
@@ -1530,8 +1530,8 @@ class Databap extends PhpObject
|
||||
$asProfile['history'][$sKey]['title'] = $asInfo['title'];
|
||||
}
|
||||
}
|
||||
|
||||
krsort($asProfile['history']);
|
||||
if(array_key_exists('history', $asProfile)) krsort($asProfile['history']);
|
||||
|
||||
return $this->jsonExport($asProfile);
|
||||
}
|
||||
|
||||
@@ -1953,13 +1953,14 @@ class Databap extends PhpObject
|
||||
return $bSuccess;
|
||||
}
|
||||
|
||||
private function addMessage($sMessage, $sType, $iChanId)
|
||||
private function addMessage($sMessage, $sType, $iChanId, $iUserId=0)
|
||||
{
|
||||
$bResult = false;
|
||||
$iUserId = ($iUserId>0)?$iUserId:$this->getUserId();
|
||||
if($iChanId>0)
|
||||
{
|
||||
$asInsert = array( MySqlManager::getId(self::USER_TABLE) => $this->getUserId(),
|
||||
'nickname' => $this->getChatNickNames($this->getUserId()),
|
||||
$asInsert = array( MySqlManager::getId(self::USER_TABLE) => $iUserId,
|
||||
'nickname' => $this->getChatNickNames($iUserId),
|
||||
MySqlManager::getId(self::CHAN_TABLE) => $iChanId,
|
||||
MySqlManager::getText(self::MSG_TABLE) => $sMessage,
|
||||
'type' => $sType,
|
||||
@@ -2205,6 +2206,7 @@ class Databap extends PhpObject
|
||||
|
||||
private function getChatNickNames($iUserId=0)
|
||||
{
|
||||
//TODO use $this->getUserOptionValue();
|
||||
$sUserIdCol = MySqlManager::getId(self::USER_TABLE);
|
||||
$sNicknameCol = MySqlManager::getText(self::OPTVAL_TABLE);
|
||||
$sOptionNameId = MySqlManager::getFullColumnName(self::OPT_TABLE, MySqlManager::getId(self::OPTNAME_TABLE));
|
||||
@@ -2439,20 +2441,23 @@ class Databap extends PhpObject
|
||||
if(!$iUserId) $iUserId = $this->oMySql->selectValue(self::USER_TABLE, $sUserTableId, $asInvConsts);
|
||||
|
||||
//Check Pass
|
||||
if(!$this->oAuth->CheckPassword($sPassToken, $this->oMySql->selectValue(self::USER_TABLE, 'pass', $iUserId))) $iUserId = 0;
|
||||
if($iUserId==self::SYSTEM_USER_ID || !$this->oAuth->CheckPassword($sPassToken, $this->oMySql->selectValue(self::USER_TABLE, 'pass', $iUserId))) $iUserId = 0;
|
||||
}
|
||||
//auto login by cookie
|
||||
elseif(isset($_COOKIE[self::USER_COOKIE_ID]))
|
||||
elseif(isset($_COOKIE[self::USER_COOKIE_ID]) && $_COOKIE[self::USER_COOKIE_ID]!=self::SYSTEM_USER_ID)
|
||||
{
|
||||
$asConstraints = array( $sUserTableId=>$_COOKIE[self::USER_COOKIE_ID],
|
||||
'auth_cookie'=>$_COOKIE[self::USER_COOKIE_PASS],
|
||||
'active'=>self::MEMBER_ACTIVE);
|
||||
|
||||
$asUserInfo = $this->oMySql->selectRow(self::USER_TABLE, $asConstraints, array($sUserTableId, 'led'));
|
||||
$iUserId = $asUserInfo[$sUserTableId];
|
||||
|
||||
//Reset pass once a day
|
||||
$bResetPass = (mb_substr($asUserInfo['led'], 0, 10) != date(Databap::DATE_SQL_FORMAT));
|
||||
if(!empty($asUserInfo))
|
||||
{
|
||||
$iUserId = $asUserInfo[$sUserTableId];
|
||||
|
||||
//Reset pass once a day
|
||||
$bResetPass = (mb_substr($asUserInfo['led'], 0, 10) != date(Databap::DATE_SQL_FORMAT));
|
||||
}
|
||||
}
|
||||
}
|
||||
//Login using Token (limited access)
|
||||
|
||||
Reference in New Issue
Block a user