magic box: v1.0
This commit is contained in:
101
inc/databap.php
101
inc/databap.php
@@ -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)
|
||||
|
||||
11
index.php
11
index.php
@@ -51,6 +51,11 @@ $iMessageId = isset($_GET['message_id'])?$_GET['message_id']:0;
|
||||
$oItemId = isset($_REQUEST['id'])?$_REQUEST['id']:0;
|
||||
$sSystem = isset($_POST['system'])?$_POST['system']:'';
|
||||
$bSimul = isset($_POST['simul'])?$_POST['simul']:false;
|
||||
$sLastName = isset($_POST['last_name'])?$_POST['last_name']:'';
|
||||
$sFirstName = isset($_POST['first_name'])?$_POST['first_name']:'';
|
||||
$sEmail = isset($_POST['email'])?$_POST['email']:'';
|
||||
$sCompany = isset($_POST['company'])?$_POST['company']:'';
|
||||
|
||||
$sResult = '';
|
||||
|
||||
//Launching application
|
||||
@@ -192,8 +197,10 @@ if($bUserOk && $sAction!=Databap::EXT_ACCESS)
|
||||
switch($sAction)
|
||||
{
|
||||
case 'add_user':
|
||||
$asInfo = explode('-', strtolower($oUser));
|
||||
$sResult = 'User added. Id='.$oDatabap->addUser($asInfo[0], $asInfo[1], $asInfo[2], array_key_exists(3, $asInfo)?$asInfo[3]:'');
|
||||
$sResult = $oDatabap->addUser($sFirstName, $sLastName, $oItemId, $sEmail);
|
||||
break;
|
||||
case 'add_company':
|
||||
$sResult = $oDatabap->addCompany($sCompany);
|
||||
break;
|
||||
case 'reset_pass':
|
||||
$sResult = $oDatabap->resetPass($oUser);
|
||||
|
||||
3
jquery/databap.js
vendored
3
jquery/databap.js
vendored
@@ -716,6 +716,9 @@ function Databap()
|
||||
if(sClass=='error' && sMsg=='') sMsg = 'Aïe ! Une erreur inconnue est suvenue';
|
||||
else if(sClass=='error' && $.inArray(sMsg, self.consts.errors.system)!=-1) sMsg = 'Une erreur interne est survenue. Merci de contacter l\'admin';
|
||||
|
||||
if(sClass==self.consts.error) sClass = 'error';
|
||||
if(sClass==self.consts.success) sClass = 'success';
|
||||
|
||||
//clean box
|
||||
$Box = $('#title_feedback');
|
||||
if(bClean) $Box.empty();
|
||||
|
||||
@@ -20,10 +20,18 @@
|
||||
<h2><i class="fa fa-c-changelog fa-inline"></i>Boite magique</h2>
|
||||
<div id="add_user" class="magic_box tiny_round">
|
||||
<h3><i class="fa fa-inline fa-c-profile"></i>Ajouter un user</h3>
|
||||
<p><input type="text" class="tiny_round" id="first_name" name="first_name" /></p>
|
||||
<p><input type="text" class="tiny_round" id="last_name" name="last_name" /></p>
|
||||
<p><input type="text" class="tiny_round" id="email" name="email" /></p>
|
||||
<p id="companies"></p>
|
||||
<form id="form_add_user" name="form_add_user">
|
||||
<p><input type="text" class="tiny_round" id="first_name" name="first_name" /></p>
|
||||
<p><input type="text" class="tiny_round" id="last_name" name="last_name" /></p>
|
||||
<p><input type="text" class="tiny_round" id="email" name="email" /></p>
|
||||
<p id="companies"></p>
|
||||
</form>
|
||||
</div>
|
||||
<div id="add_company" class="magic_box tiny_round">
|
||||
<h3><i class="fa fa-inline fa-c-company"></i>Ajouter une entreprise</h3>
|
||||
<form id="form_add_company" name="form_add_company">
|
||||
<p><input type="text" class="tiny_round" id="company" name="company" /></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,14 +84,35 @@ function initAdminPanel(asAdmin)
|
||||
//Add user
|
||||
$('#first_name').addDefaultValue('Prénom');
|
||||
$('#last_name').addDefaultValue('Nom');
|
||||
addSelect($('#companies'), asAdmin.companies);
|
||||
addSelect($('#companies'), asAdmin.companies, 0, 'id');
|
||||
$('#email').addDefaultValue('Email');
|
||||
$('#add_user').addButton('ok', 'Créer', function(){}, 'submit_new_user', 'heavy inverse');
|
||||
$('#add_user').addButton('ok', 'Créer', function(){submitAdmin('add_user');}, 'submit_new_user', 'heavy inverse');
|
||||
|
||||
//Add company
|
||||
$('#company').addDefaultValue('Entreprise');
|
||||
$('#add_company').addButton('ok', 'Créer', function(){submitAdmin('add_company', true);}, 'submit_new_user', 'heavy inverse');
|
||||
|
||||
//Show panel
|
||||
$('#admin').show();
|
||||
}
|
||||
|
||||
function submitAdmin(sAction, bReboot)
|
||||
{
|
||||
bReboot = bReboot || false;
|
||||
databap.saveForm
|
||||
(
|
||||
sAction,
|
||||
databap.getMainElem('#form_'+sAction),
|
||||
function(oData)
|
||||
{
|
||||
databap.feedback(oData.result, oData.desc);
|
||||
if(oData.result==self.consts.success && bReboot) location.reload();
|
||||
},
|
||||
true,
|
||||
'json'
|
||||
);
|
||||
}
|
||||
|
||||
function addSelect($Box, asOptions, sSelectedValue, sSelectId, sSelectClass)
|
||||
{
|
||||
sSelectedValue = sSelectedValue || 0;
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1127,6 +1127,7 @@
|
||||
#options #admin {
|
||||
clear:both;
|
||||
width:calc(100% - 20px);
|
||||
padding-bottom:0;
|
||||
}
|
||||
|
||||
#options #admin .magic_box {
|
||||
@@ -1134,6 +1135,10 @@
|
||||
padding:5px 10px 10px;
|
||||
background:$col_main_4;
|
||||
float:left;
|
||||
margin: 0 10px 10px 0;
|
||||
}
|
||||
#options #admin .magic_box:last-child {
|
||||
margin-right:0;
|
||||
}
|
||||
|
||||
#options #admin .magic_box h3 {
|
||||
|
||||
Reference in New Issue
Block a user