Enhance statistics retrieval by adding user role checks for Thanato users in PageController and MenuStatisticService

This commit is contained in:
Narindra ezway 2025-03-12 16:48:11 +03:00
parent 5591a27d82
commit c1cb86b5ce
4 changed files with 56 additions and 39 deletions

View File

@ -1982,7 +1982,10 @@ class PageController extends Controller {
* @NoCSRFRequired
*/
public function getStats(){
$result = $this->menuStatisticService->getStats($this->idNextcloud);
$isThanato = in_array(UserGroupConstant::THANATOS_GROUP_NAME,$this->groups);
$isAdmin = in_array(UserGroupConstant::ADMIN_GROUP_NAME,$this->groups);
$isUserThanatoOnly = $isThanato && !$isAdmin;
$result = $this->menuStatisticService->getStats($this->idNextcloud,$isUserThanatoOnly);
return json_encode($result);
}

View File

@ -1575,9 +1575,24 @@ class Bdd {
/**
* Number defunt
*/
public function numberDefunt($idNextcloud){
$sql = "SELECT count(*) as c from ".$this->tableprefix."defunt;";
return $this->execSQL($sql, array());
public function numberDefunt($idNextcloud,$isUserThanatoOnly = false){
$defuntCount = 0;
if($isUserThanatoOnly == false){
$sql = "SELECT count(*) as c from ".$this->tableprefix."defunt;";
$defuntCountBythanato = $this->execSQLNoJsonReturn($sql, array());
if(!empty($defuntCountBythanato)){
$defuntCount = $defuntCountBythanato[0]['c'];
}
}
else{
$thanato = $this->getThanatoByUserUuid($idNextcloud);
if($thanato != null){
$thanatoId = $thanato["id"];
$defuntsIdRelatedToThanato = $this->getDefuntIdsRelatedToThanato($thanatoId);
$defuntCount = count($defuntsIdRelatedToThanato);
}
}
return $defuntCount;
}
/**

View File

@ -58,10 +58,10 @@ class MenuStatisticService {
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getStats($idNextCloud){
public function getStats($idNextCloud,$isUserThanatoOnly = false){
$res = array();
$res['client'] = json_decode($this->gestionBdd->numberClient($idNextCloud))[0]->c;
$res['defunt'] = json_decode($this->gestionBdd->numberDefunt($idNextCloud))[0]->c;
$res['defunt'] = $this->gestionBdd->numberDefunt($idNextCloud,$isUserThanatoOnly);
$res['thanato'] = json_decode($this->gestionBdd->numberThanato($idNextCloud))[0]->c;
$res['devis'] = json_decode($this->gestionBdd->numberDevis($idNextCloud))[0]->c;
$res['lieu'] = json_decode($this->gestionBdd->numberLieu($idNextCloud))[0]->c;

View File

@ -1,5 +1,6 @@
<?php
$currentUserIsAdmin = (isset($_['groups']) && in_array('admin', $_['groups']));
$currentUserIsAdmin = (isset($_['groups']) && in_array(OCA\Gestion\Constants\UserGroupConstant::ADMIN_GROUP_NAME, $_['groups']));
?>
<ul class="app-navigation">
<li class="app-navigation-entry"><span class="navmarg"></span><b><?php p($l->t('Manage')); ?></b></li>
@ -24,22 +25,22 @@ $currentUserIsAdmin = (isset($_['groups']) && in_array('admin', $_['groups']));
</ul>
</div>
</li>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-toggle-pictures"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['lieu']); ?>">
<?php p($l->t('Lieux')); ?>
</a>
<div class="app-navigation-entry-utils-submenu">
<ul>
<li class="app-navigation-entry-utils-counter">
<span id="statslieu">
<div class="loader"></div>
</span>
</li>
</ul>
</div>
</li>
<?php if ($currentUserIsAdmin): ?>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-toggle-pictures"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['lieu']); ?>">
<?php p($l->t('Lieux')); ?>
</a>
<div class="app-navigation-entry-utils-submenu">
<ul>
<li class="app-navigation-entry-utils-counter">
<span id="statslieu">
<div class="loader"></div>
</span>
</li>
</ul>
</div>
</li>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-category-integration"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['produit']); ?>">
@ -98,23 +99,21 @@ $currentUserIsAdmin = (isset($_['groups']) && in_array('admin', $_['groups']));
</ul>
</div>
</li>
<?php endif; ?>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-template-add"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['devis']); ?>">
<?php p($l->t('Quotes')); ?>
</a>
<div class="app-navigation-entry-utils-submenu">
<ul>
<li class="app-navigation-entry-utils-counter">
<span id="statsdevis">
<div class="loader"></div>
</span>
</li>
</ul>
</div>
</li>
<?php if ($currentUserIsAdmin): ?>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-template-add"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['devis']); ?>">
<?php p($l->t('Quotes')); ?>
</a>
<div class="app-navigation-entry-utils-submenu">
<ul>
<li class="app-navigation-entry-utils-counter">
<span id="statsdevis">
<div class="loader"></div>
</span>
</li>
</ul>
</div>
</li>
<li class="app-navigation-entry-submenu">
<span class="navmarg icon-toggle-pictures"></span>
<a class="a-entry-submenu" href="<?php echo ($_['url']['facture']); ?>">