Add files via upload

main
Quentin Marchand 2 months ago committed by GitHub
parent 84f5b6ae87
commit aeca4b5572
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 7
      api_lemon_pleiade/api_lemon_pleiade.links.menu.yml
  2. 7
      api_lemon_pleiade/api_lemon_pleiade.routing.yml
  3. 100
      api_lemon_pleiade/js/add_submenu.js
  4. 3
      api_lemon_pleiade/src/Controller/PleiadeAjaxController.php
  5. 104
      api_pastell_pleiade/src/Controller/PleiadeAjaxPastellController.php
  6. 5
      api_pastell_pleiade/src/Form/PleiadePastellDocLotsForm.php

@ -5,10 +5,3 @@ api_lemon_pleiade.admin:
route_name: api_lemon_pleiade.settings
weight: 1
pleiade.group.admin:
title: 'Pléiade'
route_name: system.admin_config_pleiade
parent: system.admin_config
description: 'Pléiade Configuration'
weight: -999

@ -32,10 +32,3 @@ api_lemon_pleiade.reset_password:
requirements:
_permission: 'access content'
system.admin_config_pleiade:
path: '/admin/config/pleiade'
defaults:
_controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
_title: 'Pléiade'
requirements:
_permission: 'access administration pages'

@ -6,34 +6,34 @@
if (!drupalSettings.path.currentPath.includes("admin") && drupalSettings.api_lemon_pleiade.field_lemon_myapps_url && drupalSettings.api_lemon_pleiade.field_lemon_url) {
setTimeout(function () {
once("APIlemonSubMenuBehavior", "body", context).forEach(function () {
function getCookie(name) {
// Récupérer tous les cookies
const cookies = document.cookie.split(';');
// Parcourir chaque cookie
for (let cookie of cookies) {
// Diviser le nom et la valeur du cookie
const [cookieName, cookieValue] = cookie.split('=');
// Supprimer les espaces blancs avant et après le nom du cookie
const trimmedCookieName = cookieName.trim();
// Vérifier si le nom du cookie correspond à celui recherché
if (trimmedCookieName === name) {
// Retourner la valeur du cookie
return cookieValue;
}
// Diviser le nom et la valeur du cookie
const [cookieName, cookieValue] = cookie.split('=');
// Supprimer les espaces blancs avant et après le nom du cookie
const trimmedCookieName = cookieName.trim();
// Vérifier si le nom du cookie correspond à celui recherché
if (trimmedCookieName === name) {
// Retourner la valeur du cookie
return cookieValue;
}
}
// Retourner null si le cookie n'est pas trouvé
return null;
}
}
var elementsIds = ['urbanisme', 'relation_usager', 'profil_acheteur', 'demat_rh'];
const userGroupsTempstore = decodeURIComponent(getCookie('groups'));
var site;
if (drupalSettings.api_user_pleiade.user_info.field_site_internet.length > 0) {
var site = drupalSettings.api_user_pleiade.user_info.field_site_internet[0].uri
}
@ -42,7 +42,7 @@
elementsIds.forEach(function (elementId) {
var menuElement = document.getElementById(elementId);
var nouvelElement, liens = "";
switch (elementId) {
case 'relation_usager':
@ -89,7 +89,7 @@
nouvelElement.innerHTML = liens
if (menuElement) {
menuElement.insertAdjacentElement('afterend', nouvelElement);
} break;
@ -104,8 +104,8 @@
<span class="hide-menu px-2">Gérer les marchés</span></a>'
}
nouvelElement.innerHTML = liens
if (menuElement) {
if (menuElement) {
menuElement.insertAdjacentElement('afterend', nouvelElement);
} break;
case 'demat_rh':
@ -131,52 +131,52 @@
var menu_doc_a_signer = document.getElementById('signature_electronique');
var menu_a_remplir_idelibre = "";
var menu_a_remplir_idelibre_html = "";
var nouvelElement = document.createElement('div');
nouvelElement.classList.add('sub_menu_eadmin');
nouvelElement.classList.add('collapse');
nouvelElement.setAttribute('id', 'collapseconvocations');
if (!document.getElementById('collapseconvocations')) {
console.log('pasmenu');
if (userGroupsTempstore.includes('idelibre')) {
menu_a_remplir_idelibre += '\
console.log('pasmenu');
if (userGroupsTempstore.includes('idelibre')) {
menu_a_remplir_idelibre += '\
<a class="waves-effect waves-dark" title="Gérer les séances" target="_blank" href="https://idelibre.ecollectivites.fr" aria-expanded="false">\
<span class="hide-menu px-2">Gérer/Voir les séances</span></a>';
}
}
} else {
console.log('menu');
var collapseConvocations = document.getElementById('collapseconvocations');
if (userGroupsTempstore.includes('idelibre')) {
// menu_a_remplir_idelibre += collapseConvocations.innerHTML;
menu_a_remplir_idelibre += '\
console.log('menu');
var collapseConvocations = document.getElementById('collapseconvocations');
if (userGroupsTempstore.includes('idelibre')) {
// menu_a_remplir_idelibre += collapseConvocations.innerHTML;
menu_a_remplir_idelibre += '\
<a class="waves-effect waves-dark" title="Gérer les séances" target="_blank" href="https://idelibre.ecollectivites.fr" aria-expanded="false">\
<span class="hide-menu px-2">Gérer/Voir les séances</span></a>';
}
}
}
nouvelElement.innerHTML = menu_a_remplir_idelibre;
if (menu_convocations) {
menu_convocations.insertAdjacentElement('afterend', nouvelElement);
menu_convocations.insertAdjacentElement('afterend', nouvelElement);
}
if ((!userGroupsTempstore.includes('pastell') || !userGroupsTempstore.includes('pastell-docasigner'))) {
var a_traiter = ''
var menu_doc_a_signer = document.getElementById('signature_electronique')
var menu_a_remplir = ""
var nouvelElement = document.createElement('div');
nouvelElement.classList.add('sub_menu_eadmin');
nouvelElement.classList.add('collapse');
nouvelElement.setAttribute('id', 'collapsesignature_electronique');
menu_a_remplir += '\
if (((!userGroupsTempstore.includes('pastell') || !userGroupsTempstore.includes('pastell-docasigner')) && (userGroupsTempstore.includes('opensign')))) {
var a_traiter = ''
var menu_doc_a_signer = document.getElementById('signature_electronique')
var menu_a_remplir = ""
var nouvelElement = document.createElement('div');
nouvelElement.classList.add('sub_menu_eadmin');
nouvelElement.classList.add('collapse');
nouvelElement.setAttribute('id', 'collapsesignature_electronique');
menu_a_remplir += '\
<a class="waves-effect waves-dark" title="Gérer les signatures à la volée" target="_blank" href="https://sign.ecollectivites.fr" aria-expanded="false">\
<span class="hide-menu px-2">Gérer les signatures à la volée</span></a>'
nouvelElement.innerHTML = menu_a_remplir
if (menu_doc_a_signer) {
menu_doc_a_signer.insertAdjacentElement('afterend', nouvelElement);
}
}
nouvelElement.innerHTML = menu_a_remplir
if (menu_doc_a_signer) {
menu_doc_a_signer.insertAdjacentElement('afterend', nouvelElement);
}
}
}); // fin once
}, 5000);
}

@ -38,6 +38,7 @@ class PleiadeAjaxController extends ControllerBase
$return['groupes'] = '';
$groupArray = explode(";", $return["groups"]);
foreach ($groupArray as $group) {
$group = str_replace(' ', '', $group);
if (!empty($group)) {
$dpt = explode("|", $group);
@ -46,7 +47,7 @@ class PleiadeAjaxController extends ControllerBase
if($dpt[1] != null){
$return['groupes'] .= ' dpt-'.$dpt[1].',';
$return['groupes'] .= 'dpt-'.$dpt[1].',';
setcookie('departement', $dpt[1], time() + 36000, '/');
setcookie('collectivite', $dpt[0], time() + 3600, '/');
}

@ -15,32 +15,100 @@ use Drupal\user\PrivateTempStoreFactory;
class PleiadeAjaxPastellController extends ControllerBase
{
public function pastell_entities_query(Request $request)
{
$return = []; //our variable to fill with data returned by Pastell
$tempstoreGroup = \Drupal::service('tempstore.private')->get('api_lemon_pleiade');
$storedGroups = $tempstoreGroup->get('groups');
// public function pastell_entities_query(Request $request)
// {
// $return = []; //our variable to fill with data returned by Pastell
// $tempstoreGroup = \Drupal::service('tempstore.private')->get('api_lemon_pleiade');
// $storedGroups = $tempstoreGroup->get('groups');
if (is_string($storedGroups) && strpos($storedGroups, 'pastell') !== false) {
// if (is_string($storedGroups) && strpos($storedGroups, 'pastell') !== false) {
$pastelldataApi = new ApiPleiadeManager();
$return = $pastelldataApi->searchMyEntities();
$tempstore = \Drupal::service('tempstore.private')->get('api_pastell_pleiade');
$tempstore->set('entites', $return);
if($return != null){
return new JsonResponse(json_encode($return), 200, [], true);
// $pastelldataApi = new ApiPleiadeManager();
// $return = $pastelldataApi->searchMyEntities();
// $tempstore = \Drupal::service('tempstore.private')->get('api_pastell_pleiade');
// $tempstore->set('entites', $return);
// if($return != null){
// return new JsonResponse(json_encode($return), 200, [], true);
// }
// else
// {
// \Drupal::logger('api_pastell_pleiade')->error('Aucune entitée Pastell');
// return new JsonResponse(json_encode('null'), 200, [], true);
// }
// } else {
// \Drupal::logger('api_pastell_pleiade')->debug('pas dans le groupe pastell');
// return new JsonResponse(json_encode(''), 200, [], true);
// }
// }
public function pastell_entities_query(Request $request)
{
$return = []; // Variable à remplir avec les données retournées par Pastell
$tempstoreGroup = \Drupal::service('tempstore.private')->get('api_lemon_pleiade');
$storedGroups = $tempstoreGroup->get('groups');
$current_user = \Drupal::currentUser();
// Obtenir l'entité utilisateur.
$user = \Drupal\user\Entity\User::load($current_user->id());
$users = get_all_users();
$role_user = [];
$isAdmin = false;
// Récupérer les rôles de l'utilisateur actuel
foreach ($users as $user_pastell) {
if ($user->getAccountName() == $user_pastell->login) {
$role_user = get_roles_user($user_pastell->id_u);
// Vérifier si l'utilisateur a le rôle "admin"
foreach ($role_user as $role) {
if ($role->role === 'admin') {
$isAdmin = true;
break;
}
}
else
{
\Drupal::logger('api_pastell_pleiade')->error('Aucune entitée Pastell');
return new JsonResponse(json_encode('null'), 200, [], true);
break; // Stopper la boucle une fois que l'utilisateur est trouvé
}
}
if (is_string($storedGroups) && strpos($storedGroups, 'pastell') !== false) {
$pastelldataApi = new ApiPleiadeManager();
$entities = $pastelldataApi->searchMyEntities();
if ($isAdmin) {
$filteredEntities = $entities;
} else {
$filteredEntities = [];
// Filtrer les entités en fonction des rôles de l'utilisateur
foreach ($entities as $entity) {
foreach ($role_user as $role) {
if ($role->id_e == $entity['id_e'] && $role->role !== 'aucun droit') {
$filteredEntities[] = $entity;
break; // Stopper la boucle interne dès qu'un rôle valide est trouvé pour cette entité
}
}
}
}
$tempstore = \Drupal::service('tempstore.private')->get('api_pastell_pleiade');
$tempstore->set('entites', $filteredEntities);
if (!empty($filteredEntities)) {
return new JsonResponse(json_encode($filteredEntities), 200, [], true);
} else {
\Drupal::logger('api_pastell_pleiade')->debug('pas dans le groupe pastell');
return new JsonResponse(json_encode(''), 200, [], true);
\Drupal::logger('api_pastell_pleiade')->error('Aucune entité Pastell avec des droits valides trouvée');
return new JsonResponse(json_encode('null'), 200, [], true);
}
} else {
\Drupal::logger('api_pastell_pleiade')->debug('pas dans le groupe pastell');
return new JsonResponse(json_encode(''), 200, [], true);
}
}
public function pastell_flux_query(Request $request)
{

@ -143,7 +143,8 @@ class PleiadePastellDocLotsForm extends ConfigFormBase
$nomfic = preg_replace('/[^A-Za-z0-9\-]/', '', $nomfic); // Removes special chars.
$urlfic = ($file[0]->get('uri')->getValue()[0]['value']);
list($year, $month, $day) = explode('-', $form['datelimite']['#value']);
$ged = $form['ged']['#value'];
$ged = $form['ged']['#value'];
\Drupal::logger('api_pastell_pleiade')->info('Sous-type pârapheur: @cookie', ['@cookie' => $sstype]);
$batch['operations'][] = array('_ecv_docs_lots', array($id_e, $nomfic, $urlfic, $year, $month, $day, $ged, $sstype, $data = array()));
$batch['finished'] = 'ecv_batch_lot_finished';
} // fin if file
@ -151,4 +152,4 @@ class PleiadePastellDocLotsForm extends ConfigFormBase
batch_set($batch);
}
}
}

Loading…
Cancel
Save