magic box: v1.0

This commit is contained in:
2015-04-27 21:35:05 +02:00
parent 27f5b44934
commit 19d36ce795
7 changed files with 125 additions and 42 deletions

View File

@@ -112,6 +112,8 @@ class Databap extends PhpObject
'article'=>self::MESSAGE_ARTICLE,
'news'=>self::MESSAGE_NEWS);
const DEFAULT_COMPANY_LOGO = 'logo_unknown_24.png';
const ADMIN_COMPANY_LOGO = 'logo_planeum_24.png';
const SYSTEM_COMPANY_LOGO = 'logo_ovh_24.png';
const ALL_CHAN_ID = 1;
const ALL_CHAN_TEXT = 'A.l.l_C.h.a.n_I.n.c.l.u.d.e.d';
const DEFAULT_CHAN_ID = 2;
@@ -388,13 +390,15 @@ class Databap extends PhpObject
$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 : 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');
$iSystemCompanyId = $this->addCompany('ovh', self::SYSTEM_COMPANY_LOGO, false);
$this->addUser('databap', 'bot', $iSystemCompanyId, 'databap@botnet.com', self::CLEARANCE_ADMIN, self::SYSTEM_USER_ID, false);
$this->setOptions(array(self::OPT_NICKNAME=>'Databot'), true, self::SYSTEM_USER_ID);
$iAdminCompanyId = $this->addCompany('planeum', self::ADMIN_COMPANY_LOGO, false);
$this->addUser('françois', 'lutran', $iAdminCompanyId, 'francois@lutran.fr', self::CLEARANCE_ADMIN, 0, false);
$this->addUser('test', 'test', $iAdminCompanyId, 'test@test.com', self::CLEARANCE_MEMBER, 0, false);
//Write the SAP blog parser bash script to main folder
@file_put_contents('sap_website_parser.sh', "#!/bin/bash\n\ncd /var/www\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".$iSystemId.'_'.str_replace('$', '\$', $this->generateExternalAccessToken($iSystemId)));
@file_put_contents('sap_website_parser.sh', "#!/bin/bash\n\ncd /var/www\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".self::SYSTEM_USER_ID.'_'.str_replace('$', '\$', $this->generateExternalAccessToken(self::SYSTEM_USER_ID)));
}
public function goLive()
@@ -470,6 +474,7 @@ class Databap extends PhpObject
public function getLogonPage($bFirstConn)
{
$oPage = new Mask('logon');
$oPage->setTag('text_enc', Settings::TEXT_ENC);
$oPage->setTag('feedback', $bFirstConn?'':'Données incorrectes');
$oPage->setTag('version', self::VERSION);
$oPage->setTag('name_pass_sep', self::NAME_PASS_SEP);
@@ -762,34 +767,68 @@ class Databap extends PhpObject
return $oNote->getNote();
}
public function addUser($sFirstName, $sLastName, $sCompany, $sEmail='', $iClearance=self::CLEARANCE_MEMBER, $iUserId=0)
public function addUser($sFirstName, $sLastName, $iCompanyId, $sEmail='', $iClearance=self::CLEARANCE_MEMBER, $iUserId=0, $bExt=true)
{
$sFirstName = mb_strtolower($sFirstName);
$sLastName = mb_strtolower($sLastName);
$sCompany = mb_strtolower($sCompany);
$sEmail = mb_strtolower($sEmail);
//Checking company existency in company table
$sCompanyTextCol = MySqlManager::getText(self::COMP_TABLE);
$iCompanyId = $this->oMySql->selectInsert(self::COMP_TABLE, array($sCompanyTextCol=>$sCompany, 'logo'=>self::DEFAULT_COMPANY_LOGO), array($sCompanyTextCol));
$asInfo = array('first_name'=>$sFirstName,
'last_name'=>$sLastName,
'active'=>self::MEMBER_ACTIVE,
MySqlManager::getId(self::COMP_TABLE)=>$iCompanyId,
'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
$sNickName = self::getNickNameFormat($sFirstName);
$this->setOptions(array(self::OPT_NICKNAME=>$sNickName, self::OPT_EMAIL=>$sEmail), true, $iUserId);
$sFirstName = trim(mb_strtolower($sFirstName));
$sLastName = trim(mb_strtolower($sLastName));
$sEmail = trim(mb_strtolower($sEmail));
//Spread the word
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);
//Get Company
$sCompany = $this->oMySql->selectValue(self::COMP_TABLE, MySqlManager::getText(self::COMP_TABLE), $iCompanyId);
return $iUserId;
if(!$sCompany) $sDesc = 'ID entreprise inconnu : '.$iCompanyId;
else
{
//Checking company existency in company table
$asInfo = array('first_name'=>$sFirstName,
'last_name'=>$sLastName,
'active'=>self::MEMBER_ACTIVE,
MySqlManager::getId(self::COMP_TABLE)=>$iCompanyId,
'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);
$bSuccess = ($iUserId>0);
if($bSuccess)
{
//Options & default values
$sNickName = self::getNickNameFormat($sFirstName);
$this->setOptions(array(self::OPT_NICKNAME=>$sNickName, self::OPT_EMAIL=>$sEmail), true, $iUserId);
//Spread the word
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);
$sDesc = 'Utilisateur '.$iUserId.' ajouté avec succès';
}
else $sDesc = 'Erreur lors de l\'ajout de l\'utilisateur '.$sFirstName.' '.$sLastName.' (company : '.$sCompany.')';
}
return $bExt?$this->getJsonPostResult($bSuccess, $sDesc):$iUserId;
}
public function addCompany($sCompany, $sLogo='', $bExt=true)
{
$sCompany = trim(mb_strtolower($sCompany));
$sLogo = $sLogo==''?self::DEFAULT_COMPANY_LOGO:$sLogo;
$iCompanyId = 0;
$bSuccess = false;
$sDesc = '';
if($sCompany!='')
{
$sCompanyTextCol = MySqlManager::getText(self::COMP_TABLE);
$iCompanyId = $this->oMySql->selectInsert(self::COMP_TABLE, array($sCompanyTextCol=>$sCompany, 'logo'=>$sLogo), array($sCompanyTextCol));
if($iCompanyId>0)
{
$bSuccess = true;
$sDesc = 'Entreprise '.$iCompanyId.' créée';
}
else $sDesc = 'Erreur lors de la création de l\'entreprise '.$sCompany;
}
else $sDesc = 'Nom d\'entreprise vide';
return $bExt?$this->getJsonPostResult($bSuccess, $sDesc):$iCompanyId;
}
public function buildCompleteIndex()
@@ -973,7 +1012,7 @@ class Databap extends PhpObject
$this->oSearchEngine->buildIndex($iDbDocId, self::DOC_TYPE);
//TODO add error handling
return $this->getJsonPostResult(self::SUCCESS, '', array('doc_id'=>$iDbDocId));
return $this->getJsonPostResult(true, '', array('doc_id'=>$iDbDocId));
}
public function getDoc($iDocId)