138 lines
4.3 KiB
PHP
138 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace viewer\view\group;
|
|
use \viewer\core\Viewer;
|
|
use \api\core\ModuleRequest;
|
|
use \error\core\Error;
|
|
use \api\core\Authentification;
|
|
|
|
class membersChoice{
|
|
|
|
public static function render($params){
|
|
/* [1] On vérifie le type de groupe (user/machine)
|
|
=========================================================*/
|
|
/* (1) On vérifie les paramètres */
|
|
if( !isset($params['id_cluster']) || !is_numeric($params['id_cluster']) || !isset($params['class']) || !is_numeric($params['class']) )
|
|
return Viewer::$htmlError;
|
|
|
|
/* (2) On récupère le groupe */
|
|
$checktypeRequest = new ModuleRequest('clusterDefault/getById', [
|
|
'id_cluster' => $params['id_cluster'],
|
|
'class' => $params['class']
|
|
]);
|
|
$checktypeResponse = $checktypeRequest->dispatch();
|
|
|
|
/* (3) Si on ne le trouve pas, on retourne une erreur */
|
|
if( $checktypeResponse->error != Error::Success )
|
|
return Viewer::$htmlError;
|
|
|
|
/* (4) On récupère les données du groupe */
|
|
$currentCluster = $checktypeResponse->get('cluster');
|
|
|
|
|
|
/* [2] Init Twig
|
|
=========================================================*/
|
|
$loader = new \Twig_Loader_Filesystem(__BUILD__.'/viewer/view');
|
|
$twig = new \Twig_Environment($loader, []);
|
|
|
|
|
|
/* [3] Store variables
|
|
=========================================================*/
|
|
$variables = [
|
|
'p_id_cluster' => $params['id_cluster'],
|
|
'p_class' => $params['class'],
|
|
'p_name' => $currentCluster['name'],
|
|
'p_theme' => $_SESSION['WAREHOUSE']['theme']
|
|
];
|
|
|
|
/* [4] Store functions
|
|
=========================================================*/
|
|
$twig->addFunction(new \Twig_Function('f_members', function($id_cluster, $class){
|
|
/* [1] On récupère les membres
|
|
=========================================================*/
|
|
|
|
/* (1) On exécute la requête */
|
|
$getmembersRequest = new ModuleRequest('clusterDefault/getMembers', [
|
|
'id_cluster' => $id_cluster,
|
|
'class' => $class
|
|
]);
|
|
$getmembersResponse = $getmembersRequest->dispatch();
|
|
|
|
/* (2) Si erreur, on retourne rien par défaut */
|
|
if( $getmembersResponse->error != Error::Success )
|
|
return [];
|
|
|
|
/* (3) On récupère la liste des UID uniquement */
|
|
$members_ids = [];
|
|
foreach($getmembersResponse->get('members') as $member)
|
|
$members_ids[] = ($class==0) ? $member['id_user'] : $member['id_machine'];
|
|
|
|
|
|
/* [2] On récupère les utilisateurs non membres
|
|
=========================================================*/
|
|
/* (1) On récupère les utilisateurs */
|
|
if( $class == 0 ){
|
|
|
|
/* (2) On exécute la requête */
|
|
$getusersRequest = new ModuleRequest('userDefault/getAll');
|
|
// On recupere la reponse
|
|
$getusersResponse = $getusersRequest->dispatch();
|
|
|
|
/* (3) si erreur, on affiche l'explicitation */
|
|
if( $getusersResponse->error != Error::Success )
|
|
return [];
|
|
|
|
/* (4) On récupère la liste des utilisateurs */
|
|
$users = $getusersResponse->get('users');
|
|
|
|
/* (5) On ajoute s'ils sont dans le groupe ou non */
|
|
foreach($users as $u=>$user)
|
|
$users[$u]['already'] = in_array($user['id_user'], $members_ids);
|
|
return $users;
|
|
|
|
|
|
/* [3] On récupère les machines non membres
|
|
=========================================================*/
|
|
/* (1) On récupère les machines */
|
|
}else{
|
|
|
|
/* (2) On exécute la requête */
|
|
$getmachinesRequest = new ModuleRequest('machineDefault/getAll');
|
|
// On recupere la reponse
|
|
$getmachinesResponse = $getmachinesRequest->dispatch();
|
|
|
|
/* (3) si erreur, on affiche l'explicitation */
|
|
if( $getmachinesResponse->error != Error::Success )
|
|
return [];
|
|
|
|
/* (4) On récupère la liste des machines */
|
|
$machines = $getmachinesResponse->get('machines');
|
|
|
|
/* (5) On ajoute s'ils sont dans le groupe ou non */
|
|
foreach($machines as $u=>$machine)
|
|
$machines[$u]['already'] = in_array($machine['id_machine'], $members_ids);
|
|
|
|
return $machines;
|
|
}
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
/* [5] Build the whole stuff
|
|
=========================================================*/
|
|
return $twig->render('group/membersChoice.twig', [
|
|
'p_class' => $variables['p_class'],
|
|
'p_name' => $variables['p_name'],
|
|
'p_id_cluster' => $variables['p_id_cluster'],
|
|
'p_theme' => $variables['p_theme']
|
|
]);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|