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_IMG_EXTS = array('jpg', 'jpeg', 'gif', 'png');
|
||||||
public static $UPLOAD_DOC_EXTS = array('jpg', 'jpeg', 'gif', 'png', 'doc', 'ppt', 'pdf', 'xls', 'docx', 'pptx', 'xlsx');
|
public static $UPLOAD_DOC_EXTS = array('jpg', 'jpeg', 'gif', 'png', 'doc', 'ppt', 'pdf', 'xls', 'docx', 'pptx', 'xlsx');
|
||||||
const ID_SEPARATOR = '_';
|
const ID_SEPARATOR = '_';
|
||||||
|
const SYSTEM_USER_ID = 1;
|
||||||
|
|
||||||
//Database constant
|
//Database constant
|
||||||
const USER_TABLE = 'users';
|
const USER_TABLE = 'users';
|
||||||
@@ -193,7 +194,7 @@ class Databap extends PhpObject
|
|||||||
* Constructor
|
* Constructor
|
||||||
* @param ClassManagement $oClassManagement
|
* @param ClassManagement $oClassManagement
|
||||||
*/
|
*/
|
||||||
function __construct($oClassManagement)
|
function __construct($oClassManagement, $sLanguage=self::LANG_FR)
|
||||||
{
|
{
|
||||||
parent::__construct(__CLASS__, Settings::DEBUG);
|
parent::__construct(__CLASS__, Settings::DEBUG);
|
||||||
$this->oClassManagement = $oClassManagement;
|
$this->oClassManagement = $oClassManagement;
|
||||||
@@ -215,14 +216,16 @@ class Databap extends PhpObject
|
|||||||
mb_http_input(Settings::TEXT_ENC);
|
mb_http_input(Settings::TEXT_ENC);
|
||||||
mb_language('uni');
|
mb_language('uni');
|
||||||
mb_regex_encoding(Settings::TEXT_ENC);
|
mb_regex_encoding(Settings::TEXT_ENC);
|
||||||
|
|
||||||
|
//Databap Settings
|
||||||
|
$this->setUserId(0);
|
||||||
|
$this->sLanguage = $sLanguage;
|
||||||
|
|
||||||
//Passing settings down to mySQL
|
//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);
|
$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();
|
if($this->oMySql->sDbState == MySqlManager::DB_NO_DATA && Settings::DEBUG==true) $this->install();
|
||||||
|
|
||||||
//Init other variables
|
//Init Search Engine
|
||||||
$this->setUserId(0);
|
|
||||||
$this->sLanguage = self::LANG_FR;
|
|
||||||
$this->oSearchEngine = new SearchEngine($this->oMySql);
|
$this->oSearchEngine = new SearchEngine($this->oMySql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +358,7 @@ class Databap extends PhpObject
|
|||||||
$sOptionValueIdCol = MySqlManager::getId(self::OPTVAL_TABLE);
|
$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_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::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_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_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));
|
$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::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));
|
$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
|
//Install default users : system, admin and test
|
||||||
$iAdminId = $this->addUser('françois', 'lutran', 'planeum', 'francois@lutran.fr', self::CLEARANCE_ADMIN);
|
$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');
|
$this->addUser('test', 'test', 'test', 'test@test.com');
|
||||||
|
|
||||||
//Write the SAP blog parser bash script to main folder
|
//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)
|
private function setUserId($iUserId)
|
||||||
@@ -579,8 +584,7 @@ class Databap extends PhpObject
|
|||||||
foreach($asArticles as $asArticle)
|
foreach($asArticles as $asArticle)
|
||||||
{
|
{
|
||||||
$iArticleId = $this->oMySql->selectValue(self::ART_TABLE, MySqlManager::getId(self::ART_TABLE), array('title'=>$asArticle['title']));
|
$iArticleId = $this->oMySql->selectValue(self::ART_TABLE, MySqlManager::getId(self::ART_TABLE), array('title'=>$asArticle['title']));
|
||||||
|
if(!$iArticleId)
|
||||||
if($iArticleId==0)
|
|
||||||
{
|
{
|
||||||
$iArticleId = $this->oMySql->insertRow(self::ART_TABLE, $asArticle);
|
$iArticleId = $this->oMySql->insertRow(self::ART_TABLE, $asArticle);
|
||||||
$this->addMessage($iArticleId, self::MESSAGE_ARTICLE, self::DEFAULT_CHAN_ID);
|
$this->addMessage($iArticleId, self::MESSAGE_ARTICLE, self::DEFAULT_CHAN_ID);
|
||||||
@@ -753,7 +757,7 @@ class Databap extends PhpObject
|
|||||||
return $oNote->getNote();
|
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);
|
$sFirstName = mb_strtolower($sFirstName);
|
||||||
$sLastName = mb_strtolower($sLastName);
|
$sLastName = mb_strtolower($sLastName);
|
||||||
@@ -770,19 +774,15 @@ class Databap extends PhpObject
|
|||||||
'pass'=>$this->oAuth->HashPassword(self::getLoginToken($sCompany)),
|
'pass'=>$this->oAuth->HashPassword(self::getLoginToken($sCompany)),
|
||||||
'clearance'=>$iClearance,
|
'clearance'=>$iClearance,
|
||||||
'led'=>'0000-00-00 00:00:00');
|
'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);
|
$iUserId = $this->oMySql->insertRow(self::USER_TABLE, $asInfo);
|
||||||
|
|
||||||
//Options & default values
|
//Options & default values
|
||||||
$this->setOptions(array(self::OPT_NICKNAME=>self::getNickNameFormat($sFirstName), self::OPT_EMAIL=>$sEmail), true, $iUserId);
|
$sNickName = self::getNickNameFormat($sFirstName);
|
||||||
|
$this->setOptions(array(self::OPT_NICKNAME=>$sNickName, 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);
|
|
||||||
|
|
||||||
//Spread the word
|
//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;
|
return $iUserId;
|
||||||
}
|
}
|
||||||
@@ -1317,7 +1317,7 @@ class Databap extends PhpObject
|
|||||||
|
|
||||||
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
||||||
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
||||||
|
|
||||||
$asInfo = array('select' => array($sOptNameIdCol, $sOptValueTextCol),
|
$asInfo = array('select' => array($sOptNameIdCol, $sOptValueTextCol),
|
||||||
'from' => self::OPTVAL_TABLE,
|
'from' => self::OPTVAL_TABLE,
|
||||||
'constraint'=> array('default_value'=>true, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"),
|
'constraint'=> array('default_value'=>true, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"),
|
||||||
@@ -1347,7 +1347,7 @@ class Databap extends PhpObject
|
|||||||
|
|
||||||
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds);
|
||||||
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions());
|
||||||
|
|
||||||
$asUserinfo = array('select' => array($sOptIdCol, $sOptNameIdColOptTable, $sOptValueIdColOptTable, $sOptValueTextCol),
|
$asUserinfo = array('select' => array($sOptIdCol, $sOptNameIdColOptTable, $sOptValueIdColOptTable, $sOptValueTextCol),
|
||||||
'from' => self::OPT_TABLE,
|
'from' => self::OPT_TABLE,
|
||||||
'join' => array(self::OPTVAL_TABLE=>MySqlManager::getId(self::OPTVAL_TABLE)),
|
'join' => array(self::OPTVAL_TABLE=>MySqlManager::getId(self::OPTVAL_TABLE)),
|
||||||
@@ -1449,7 +1449,7 @@ class Databap extends PhpObject
|
|||||||
//Update option values table
|
//Update option values table
|
||||||
if($asOption['type']==self::OPT_TEXT)
|
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);
|
if($sUserValueId==$sDefaultValueId) $sNewValueId = $this->oMySql->insertRow(self::OPTVAL_TABLE, $asData);
|
||||||
else $sNewValueId = $this->oMySql->updateRow(self::OPTVAL_TABLE, $sUserValueId, array($sOptValueTextCol=>$sNewValue));
|
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'];
|
$asProfile['history'][$sKey]['title'] = $asInfo['title'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(array_key_exists('history', $asProfile)) krsort($asProfile['history']);
|
||||||
krsort($asProfile['history']);
|
|
||||||
return $this->jsonExport($asProfile);
|
return $this->jsonExport($asProfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1953,13 +1953,14 @@ class Databap extends PhpObject
|
|||||||
return $bSuccess;
|
return $bSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function addMessage($sMessage, $sType, $iChanId)
|
private function addMessage($sMessage, $sType, $iChanId, $iUserId=0)
|
||||||
{
|
{
|
||||||
$bResult = false;
|
$bResult = false;
|
||||||
|
$iUserId = ($iUserId>0)?$iUserId:$this->getUserId();
|
||||||
if($iChanId>0)
|
if($iChanId>0)
|
||||||
{
|
{
|
||||||
$asInsert = array( MySqlManager::getId(self::USER_TABLE) => $this->getUserId(),
|
$asInsert = array( MySqlManager::getId(self::USER_TABLE) => $iUserId,
|
||||||
'nickname' => $this->getChatNickNames($this->getUserId()),
|
'nickname' => $this->getChatNickNames($iUserId),
|
||||||
MySqlManager::getId(self::CHAN_TABLE) => $iChanId,
|
MySqlManager::getId(self::CHAN_TABLE) => $iChanId,
|
||||||
MySqlManager::getText(self::MSG_TABLE) => $sMessage,
|
MySqlManager::getText(self::MSG_TABLE) => $sMessage,
|
||||||
'type' => $sType,
|
'type' => $sType,
|
||||||
@@ -2205,6 +2206,7 @@ class Databap extends PhpObject
|
|||||||
|
|
||||||
private function getChatNickNames($iUserId=0)
|
private function getChatNickNames($iUserId=0)
|
||||||
{
|
{
|
||||||
|
//TODO use $this->getUserOptionValue();
|
||||||
$sUserIdCol = MySqlManager::getId(self::USER_TABLE);
|
$sUserIdCol = MySqlManager::getId(self::USER_TABLE);
|
||||||
$sNicknameCol = MySqlManager::getText(self::OPTVAL_TABLE);
|
$sNicknameCol = MySqlManager::getText(self::OPTVAL_TABLE);
|
||||||
$sOptionNameId = MySqlManager::getFullColumnName(self::OPT_TABLE, MySqlManager::getId(self::OPTNAME_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);
|
if(!$iUserId) $iUserId = $this->oMySql->selectValue(self::USER_TABLE, $sUserTableId, $asInvConsts);
|
||||||
|
|
||||||
//Check Pass
|
//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
|
//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],
|
$asConstraints = array( $sUserTableId=>$_COOKIE[self::USER_COOKIE_ID],
|
||||||
'auth_cookie'=>$_COOKIE[self::USER_COOKIE_PASS],
|
'auth_cookie'=>$_COOKIE[self::USER_COOKIE_PASS],
|
||||||
'active'=>self::MEMBER_ACTIVE);
|
'active'=>self::MEMBER_ACTIVE);
|
||||||
|
|
||||||
$asUserInfo = $this->oMySql->selectRow(self::USER_TABLE, $asConstraints, array($sUserTableId, 'led'));
|
$asUserInfo = $this->oMySql->selectRow(self::USER_TABLE, $asConstraints, array($sUserTableId, 'led'));
|
||||||
$iUserId = $asUserInfo[$sUserTableId];
|
if(!empty($asUserInfo))
|
||||||
|
{
|
||||||
//Reset pass once a day
|
$iUserId = $asUserInfo[$sUserTableId];
|
||||||
$bResetPass = (mb_substr($asUserInfo['led'], 0, 10) != date(Databap::DATE_SQL_FORMAT));
|
|
||||||
|
//Reset pass once a day
|
||||||
|
$bResetPass = (mb_substr($asUserInfo['led'], 0, 10) != date(Databap::DATE_SQL_FORMAT));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Login using Token (limited access)
|
//Login using Token (limited access)
|
||||||
|
|||||||
2
todo
2
todo
@@ -2,6 +2,8 @@ Todo
|
|||||||
----
|
----
|
||||||
|
|
||||||
Internal:
|
Internal:
|
||||||
|
- put old messages back into new ones
|
||||||
|
- modify sap_website_parser.sh avec données de databot
|
||||||
- independant code/procedure/article/table/document php classes ?
|
- independant code/procedure/article/table/document php classes ?
|
||||||
- Admin param page
|
- Admin param page
|
||||||
- Independant Option Class + delete 'option' column in options table
|
- Independant Option Class + delete 'option' column in options table
|
||||||
|
|||||||
Reference in New Issue
Block a user