Magic Box v1.0 + bugfix sorting connected names in chat

This commit is contained in:
2015-05-23 23:39:33 +02:00
parent aabffca2f7
commit b557ded1a6
11 changed files with 90 additions and 37 deletions

View File

@@ -398,14 +398,15 @@ class Databap extends PhpObject
$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=".self::SYSTEM_USER_ID.'_'.str_replace('$', '\$', $this->generateExternalAccessToken(self::SYSTEM_USER_ID)));
$this->updateWebCrawler();
}
public function updateWebCrawler()
{
$sContent = "#!/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));
@file_put_contents('sap_website_parser.sh', $sContent);
return $sContent;
$bSuccess = !(file_put_contents('sap_website_parser.sh', $sContent)===false);
$sDesc = $bSuccess?'Fichier écrit avec succès':'Erreur lors de l\'écriture du fichier à la racine de l\'application. Vérifier les droits sur ce dossier';
return $this->getJsonPostResult($bSuccess, $sDesc);
}
public function goLive()
@@ -1456,7 +1457,13 @@ class Databap extends PhpObject
$asAdminOptions = array();
if($this->checkUserClearance(self::CLEARANCE_ADMIN))
{
$asAdminOptions['companies'] = $this->oMySql->selectList(self::COMP_TABLE);
//Companies
$asAdminOptions['companies'] = array_map(array('self', 'getCompanyFormat'), $this->oMySql->selectList(self::COMP_TABLE));
//User Names
$asFirstNames = $this->oMySql->selectList(self::USER_TABLE, 'first_name');
$asLastNames = $this->oMySql->selectList(self::USER_TABLE, 'last_name');
foreach($asLastNames as $iUserId=>$sLastName) $asAdminOptions['users'][$iUserId] = self::getNameFormat($asFirstNames[$iUserId], $sLastName);
}
return $this->jsonExport(array('admin'=>$asAdminOptions, 'options'=>$asSelectedOptions));
}
@@ -2282,19 +2289,22 @@ class Databap extends PhpObject
$asConnectedUsers = $asUserOptions = array();
foreach($asUserChannels as $asUser)
{
$sChanId = $asUser[MySqlManager::getId(self::CHAN_TABLE)];
$iChanId = $asUser[MySqlManager::getId(self::CHAN_TABLE)];
$iUserId = $asUser[$iUserIdCol];
if(!array_key_exists($iUserId, $asUserOptions)) $asUserOptions[$iUserId] = $this->getUserOptions(array(self::OPT_NICKNAME, self::OPT_STATUS), $iUserId);
$sNickName = self::getNickNameFormat($asUserOptions[$iUserId][self::OPT_NICKNAME][MySqlManager::getText(self::OPTVAL_TABLE)]);
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['id_user'] = $iUserId;
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['name'] = self::getNameFormat($asUser['first_name'], $asUser['last_name']);
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['company'] = self::getCompanyFormat($asUser['company']);
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['status'] = $asUserOptions[$iUserId][self::OPT_STATUS][MySqlManager::getText(self::OPTVAL_TABLE)];
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['logo'] = $asUser['logo'];
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['nickname'] = $sNickName;
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['last_activity'] = array_key_exists($iUserId, $asLastMsg)?self::getDateFormat($asLastMsg[$iUserId], self::TIME_FORMAT):'';
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['ping'] = self::getDateFormat($asUser['led'], self::TIME_FORMAT);
$asConnectedUsers[$sChanId][$sNickName.$iUserId]['afk'] = $asUser['afk'];
$asConnectedUsers[$iChanId][] = array
(
'id_user' => $iUserId,
'name' => self::getNameFormat($asUser['first_name'], $asUser['last_name']),
'company' => self::getCompanyFormat($asUser['company']),
'status' => $asUserOptions[$iUserId][self::OPT_STATUS][MySqlManager::getText(self::OPTVAL_TABLE)],
'logo' => $asUser['logo'],
'nickname' => $sNickName,
'last_activity' => array_key_exists($iUserId, $asLastMsg)?self::getDateFormat($asLastMsg[$iUserId], self::TIME_FORMAT):'',
'ping' => self::getDateFormat($asUser['led'], self::TIME_FORMAT),
'afk' => $asUser['afk']
);
}
return $bJson?$this->jsonExport($asConnectedUsers):$asConnectedUsers;
@@ -2608,6 +2618,8 @@ class Databap extends PhpObject
public function resetPass($iUserId)
{
$bSuccess = false;
$sDesc = '';
if($iUserId>0)
{
$sUserIdCol = MySqlManager::getId(self::USER_TABLE, true);
@@ -2616,16 +2628,21 @@ class Databap extends PhpObject
'join'=> array(self::COMP_TABLE=>MySqlManager::getId(self::COMP_TABLE)),
'constraint'=>array($sUserIdCol=>$iUserId));
$asUsers = $this->oMySql->selectRows($asInfo);
foreach($asUsers as $asUser)
if(empty($asUsers)) $sDesc = 'Aucun utilisateur trouvé (id='.$iUserId.')';
else
{
$sToken = $this->oAuth->HashPassword(self::getLoginToken($asUser[MySqlManager::getText(self::COMP_TABLE)]));
$iUserId = $asUser[MySqlManager::getId(self::USER_TABLE)];
$this->oMySql->updateRow(self::USER_TABLE, $iUserId, array('pass'=>$sToken));
foreach($asUsers as $asUser)
{
$sToken = $this->oAuth->HashPassword(self::getLoginToken($asUser[MySqlManager::getText(self::COMP_TABLE)]));
$iUserId = $asUser[MySqlManager::getId(self::USER_TABLE)];
$this->oMySql->updateRow(self::USER_TABLE, $iUserId, array('pass'=>$sToken));
$bSuccess = true;
$sDesc = 'Mot de passe réinitialisé';
}
}
}
else return 'KO';
return 'OK';
else $sDesc = 'Aucun id reçu';
return $this->getJsonPostResult($bSuccess, $sDesc);
}
private function getExternalAccessPass($iUserId)