From 68abf1fb93f7fe133536a7c5e7248aa457aa93db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 15 Aug 2026 01:31:22 +0200 Subject: [PATCH 1/4] Lang --- htdocs/langs/en_US/bills.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 7df8f642140..9d873c03b78 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -314,7 +314,7 @@ SetMode=Set Payment Type SetRevenuStamp=Set revenue stamp RecurringInvoices=Recurring invoices RecurringInvoice=Recurring invoice -RecurringInvoiceSource=Source recurring invoice +RecurringInvoiceSource=Recurring invoice source RepeatableInvoice=Template invoice RepeatableInvoices=Template invoices RecurringInvoicesJob=Generation of recurring invoices (sales invoices) From e7273973e7b998d70d7ad1a0653a09592aae253a Mon Sep 17 00:00:00 2001 From: MDW Date: Sat, 15 Aug 2026 01:58:01 +0200 Subject: [PATCH 2/4] Fix(ci): security access check (#39530) --- htdocs/adherents/class/api_members.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/adherents/class/api_members.class.php b/htdocs/adherents/class/api_members.class.php index 05ddabc1cb6..e52f1d2c991 100644 --- a/htdocs/adherents/class/api_members.class.php +++ b/htdocs/adherents/class/api_members.class.php @@ -3,7 +3,7 @@ * Copyright (C) 2017 Regis Houssin * Copyright (C) 2020 Thibault FOUCART * Copyright (C) 2020-2025 Frédéric France - * Copyright (C) 2024-2025 MDW + * Copyright (C) 2024-2026 MDW * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -384,7 +384,7 @@ class Members extends DolibarrApi // This properties can't be set/modified with API throw new RestException(405, 'The property '.$field." can't be set/modified using the APIs"); } - if (in_array($field, array('user_id') && !DolibarrApiAccess::$user->hasRight('user', 'user', 'creer'))) { + if (in_array($field, array('user_id')) && !DolibarrApiAccess::$user->hasRight('user', 'user', 'creer')) { // This properties can't be set/modified with API without permission user->user->creer throw new RestException(405, 'The property '.$field." can't be set/modified using the APIs without permission user->user->create"); } @@ -438,7 +438,7 @@ class Members extends DolibarrApi // This properties can't be set/modified with API throw new RestException(405, 'The property '.$field." can't be set/modified using the APIs"); } - if (in_array($field, array('user_id') && !DolibarrApiAccess::$user->hasRight('user', 'user', 'creer'))) { + if (in_array($field, array('user_id')) && !DolibarrApiAccess::$user->hasRight('user', 'user', 'creer')) { // This properties can't be set/modified with API without permission user->user->creer throw new RestException(405, 'The property '.$field." can't be set/modified using the APIs without the permission user->user->create"); } From 030c1ea85b002d9e0b954893f9127325f925a4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Cendrier?= <81741011+altairis-noe@users.noreply.github.com> Date: Sat, 15 Aug 2026 02:04:45 +0200 Subject: [PATCH 3/4] FIX: CommonObject::updateExtraField() method should call the corresponding object update trigger (#39526) --- htdocs/fichinter/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index fcaa3787480..5a7dde19cfb 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -898,7 +898,7 @@ if (empty($reshook)) { if (!$error) { // Actions on extra fields - $result = $object->updateExtraField($attribute_name, 'INTERVENTION_MODIFY'); + $result = $object->updateExtraField($attribute_name, 'FICHINTER_MODIFY'); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); $error++; From 0fed3b6d12fb1d27d135c000239318af05d46f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Lukas?= Date: Sat, 15 Aug 2026 02:29:45 +0200 Subject: [PATCH 4/4] FIX Agenda "per user" view does not fire printFieldListFrom hook (#39507) comm/action/index.php (agenda month/week/day view) fires the printFieldListFrom hook right before the WHERE clause of the event query, letting external modules add extra JOIN conditions to the agenda SQL query. comm/action/peruser.php (agenda "per user" view) builds a structurally identical query but never calls this hook - it only fires printFieldListSelect, whose output lands before FROM and can't be used to add a WHERE-equivalent join condition. printFieldListWhere isn't fired in either file, so printFieldListFrom is the only hook point available before WHERE. This adds the same hook call already present in index.php, at the same relative position (after the FROM/JOIN clauses, right before WHERE), so modules can extend the agenda query the same way in both views. Fixes #39506 Co-authored-by: Laurent Destailleur --- htdocs/comm/action/peruser.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 31e2595590d..5323201034b 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -752,6 +752,11 @@ if (($filtert != '-1' && $filtert != '-2') || $usergroup > 0) { } } +// Add table from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + $sql .= " WHERE a.fk_action = ca.id"; $sql .= " AND a.entity IN (".getEntity('agenda').")"; // bookcal is a "virtual view" of agenda