Merge remote-tracking branch 'origin/1.11.x' into 1.11.x

pull/6011/head
Angel Fernando Quiroz Campos 8 months ago
commit 30a7677cf2
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 25
      main/inc/lib/Compilatio.php
  2. 2
      main/inc/lib/glossary.lib.php
  3. 15
      main/inc/local.inc.php
  4. 2
      plugin/azure_active_directory/lang/dutch.php
  5. 2
      plugin/azure_active_directory/lang/english.php
  6. 2
      plugin/azure_active_directory/lang/french.php
  7. 2
      plugin/azure_active_directory/lang/spanish.php
  8. 2
      plugin/azure_active_directory/src/AzureActiveDirectory.php
  9. 8
      plugin/azure_active_directory/src/AzureCommand.php

@ -191,13 +191,26 @@ class Compilatio
$documentInfo = [
'report_url' => $dataDocument['report_url'],
];
if (isset($dataDocument['analyses']['anasim']['state'])) {
$documentInfo['analysis_status'] = $dataDocument['analyses']['anasim']['state'];
// anasim analyse type is applied for services Magister and Copyright
// anasim-premium analyse type is applied for services Magister+ and Copyright+
$anasim = 'anasim';
if (isset($dataDocument['analyses']['anasim-premium'])) {
$anasim = 'anasim-premium';
if (isset($dataDocument['analyses']['anasim'])) {
if (isset($dataDocument['analyses']['anasim']['creation_launch_date']) && isset($dataDocument['analyses']['anasim-premium']['creation_launch_date'])) {
// if the 2 analyses type exist (which could happen technically but would be exceptional) then we present the most recent one.
if ($dataDocument['analyses']['anasim']['creation_launch_date'] > $dataDocument['analyses']['anasim-premium']['creation_launch_date']) {
$anasim = 'anasim';
}
}
}
}
if (isset($dataDocument['light_reports']['anasim']['scores']['global_score_percent'])) {
$documentInfo['report_percent'] = $dataDocument['light_reports']['anasim']['scores']['global_score_percent'];
if (isset($dataDocument['analyses'][$anasim]['state'])) {
$documentInfo['analysis_status'] = $dataDocument['analyses'][$anasim]['state'];
}
if (isset($dataDocument['light_reports'][$anasim]['scores']['global_score_percent'])) {
$documentInfo['report_percent'] = $dataDocument['light_reports'][$anasim]['scores']['global_score_percent'];
}
return $documentInfo;

@ -115,7 +115,7 @@ class GlossaryManager
name LIKE '".Database::escape_string($glossaryName)."' OR
name LIKE '".Database::escape_string($parsed)."'
) AND
session_id IS NULL
(session_id IS NULL OR session_id = 0)
LIMIT 1";
$rs = Database::query($sql);

@ -1250,9 +1250,15 @@ if ($cidReset) {
if (!empty($_SESSION)) {
foreach ($_SESSION as $key => $session_item) {
if (strpos($key, 'lp_autolaunch_') === false) {
continue;
} else {
// Clear session keys related to SortableTable
if (strpos($key, 'table_') === 0 || strpos($key, 'sortable_table_') === 0) {
if (isset($_SESSION[$key])) {
Session::erase($key);
}
}
// Clear session keys related to lp_autolaunch_
if (strpos($key, 'lp_autolaunch_') !== false) {
if (isset($_SESSION[$key])) {
Session::erase($key);
}
@ -1260,6 +1266,9 @@ if ($cidReset) {
}
}
// Clear the general clean_sortable_table flag if it exists
Session::erase('clean_sortable_table');
if (api_get_group_id()) {
Session::erase('_gid');
}

@ -50,3 +50,5 @@ $strings['script_users_delta'] = 'Delta query for users';
$strings['script_users_delta_help'] = 'Get newly created, updated, or deleted users without having to perform a full read of the entire user collection. By default, is <code>No</code>.';
$strings['script_usergroups_delta'] = 'Delta query for usergroups';
$strings['script_usergroups_delta_help'] = 'Get newly created, updated, or deleted groups, including group membership changes, without having to perform a full read of the entire group collection. By default, is <code>No</code>.';
$strings['group_filter_regex'] = 'Group filter RegEx';
$strings['group_filter_regex_help'] = 'Regular expression to filter groups (only matches will be synchronized), e.g. <code>.*-FIL-.*</code> <code>.*-PAR-.*</code> <code>.*(FIL|PAR).*</code> <code>^(FIL|PAR).*</code>';

@ -50,3 +50,5 @@ $strings['script_users_delta'] = 'Delta query for users';
$strings['script_users_delta_help'] = 'Get newly created, updated, or deleted users without having to perform a full read of the entire user collection. By default, is <code>No</code>.';
$strings['script_usergroups_delta'] = 'Delta query for usergroups';
$strings['script_usergroups_delta_help'] = 'Get newly created, updated, or deleted groups, including group membership changes, without having to perform a full read of the entire group collection. By default, is <code>No</code>.';
$strings['group_filter_regex'] = 'Group filter RegEx';
$strings['group_filter_regex_help'] = 'Regular expression to filter groups (only matches will be synchronized), e.g. <code>.*-FIL-.*</code> <code>.*-PAR-.*</code> <code>.*(FIL|PAR).*</code> <code>^(FIL|PAR).*</code>';

@ -50,3 +50,5 @@ $strings['script_users_delta'] = 'Requête delta pour les utilisateurs';
$strings['script_users_delta_help'] = 'Get newly created, updated, or deleted users without having to perform a full read of the entire user collection. By default, is <code>No</code>.';
$strings['script_usergroups_delta'] = 'Requête delta pour les groupes d\'utilisateurs';
$strings['script_usergroups_delta_help'] = 'Get newly created, updated, or deleted groups, including group membership changes, without having to perform a full read of the entire group collection. By default, is <code>No</code>.';
$strings['group_filter_regex'] = 'Group filter RegEx';
$strings['group_filter_regex_help'] = 'Regular expression to filter groups (only matches will be synchronized), e.g. <code>.*-FIL-.*</code> <code>.*-PAR-.*</code> <code>.*(FIL|PAR).*</code> <code>^(FIL|PAR).*</code>';

@ -50,3 +50,5 @@ $strings['script_users_delta'] = 'Consula delta para usuarios';
$strings['script_users_delta_help'] = 'Obtiene usuarios recién creados, actualizados o eliminados sin tener que realizar una lectura completa de toda la colección de usuarios. De forma predeterminada, es <code>No</code>.';
$strings['script_usergroups_delta'] = 'Consulta delta para grupos de usuarios';
$strings['script_usergroups_delta_help'] = 'Obtiene grupos recién creados, actualizados o eliminados, incluidos los cambios de membresía del grupo, sin tener que realizar una lectura completa de toda la colección de grupos. De forma predeterminada, es <code>No</code>';
$strings['group_filter_regex'] = 'Group filter RegEx';
$strings['group_filter_regex_help'] = 'Expresión regular para filtrar grupos (solo las coincidencias serán sincronizadas), p.ej. <code>.*-FIL-.*</code> <code>.*-PAR-.*</code> <code>.*(FIL|PAR).*</code> <code>^(FIL|PAR).*</code>';

@ -33,6 +33,7 @@ class AzureActiveDirectory extends Plugin
public const SETTING_DEACTIVATE_NONEXISTING_USERS = 'deactivate_nonexisting_users';
public const SETTING_GET_USERS_DELTA = 'script_users_delta';
public const SETTING_GET_USERGROUPS_DELTA = 'script_usergroups_delta';
public const SETTING_GROUP_FILTER = 'group_filter_regex';
public const URL_TYPE_AUTHORIZE = 'login';
public const URL_TYPE_LOGOUT = 'logout';
@ -66,6 +67,7 @@ class AzureActiveDirectory extends Plugin
self::SETTING_DEACTIVATE_NONEXISTING_USERS => 'boolean',
self::SETTING_GET_USERS_DELTA => 'boolean',
self::SETTING_GET_USERGROUPS_DELTA => 'boolean',
self::SETTING_GROUP_FILTER => 'text',
];
parent::__construct('2.5', 'Angel Fernando Quiroz Campos, Yannick Warnier', $settings);

@ -121,6 +121,8 @@ abstract class AzureCommand
*/
protected function getAzureGroups(): Generator
{
$groupFilter = $this->plugin->get(AzureActiveDirectory::SETTING_GROUP_FILTER);
$groupFields = [
'id',
'displayName',
@ -161,6 +163,12 @@ abstract class AzureCommand
$azureGroupsInfo = $azureGroupsRequest['value'] ?? [];
foreach ($azureGroupsInfo as $azureGroupInfo) {
if (!empty($groupFilter) &&
!preg_match("/$groupFilter/", $azureGroupInfo['displayName'])
) {
continue;
}
yield $azureGroupInfo;
}

Loading…
Cancel
Save