Your message dated Sat, 22 Jul 2023 13:19:43 +0000
with message-id <e1qncwn-005rtc...@coccia.debian.org>
and subject line Released with 12.1
has caused the Debian Bug report #1040949,
regarding bookworm-pu: package gosa/2.8~git20230203.10abe45+dfsg-1+deb12u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1040949: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040949
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: g...@packages.debian.org
Control: affects -1 + src:gosa

GOsa²'s PHP 8.2 support was rather poor at the release time of Debian 12.
This update will amend various issues found while testing GOsa² with
Debian Edu.

[ Reason ]
Various issues could be resolved:

  * deprecation warnings
  * missing smarty template file
  * broken debug support

[ Impact ]
Only GOsa² users will be affected by this upload.

[ Tests ]
Manual tests on Debian Edu TJENER system.

[ Risks ]
Introduction of regressions in GOsa² in Debian 12.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

+  [ Mike Gabriel ]
+  * debian/patches:
+    + Add 1003_php-deprecations.patch. Silence various PHP 8.2 deprecation
+      warnings. (Closes: #1038682).
+
+  [ Daniel Teichmann ]
+  * debian/patches:
+    + Add 1004_missing_templates.patch. (Closes: #1039697)
+    + Update 1002_php82-allow-dynamic-properties.patch: Tolerate dyn. prop. for
+      ALL PHP classes. (Closes: #1039894)
+    + Add 1005_preg_replace_deprecation.patch.
+    + Add 1006_fix-overflow-debug-print_a-func.patch. (Closes: #1040839)


[ Other info ]
This might not be the last pu of GOsa² to bookworm. But various noises
should be reduced after this update has landed. We also work with
upstream on amending the patched issues there.
diff -Nru gosa-2.8~git20230203.10abe45+dfsg/debian/changelog 
gosa-2.8~git20230203.10abe45+dfsg/debian/changelog
--- gosa-2.8~git20230203.10abe45+dfsg/debian/changelog  2023-02-06 
20:43:44.000000000 +0100
+++ gosa-2.8~git20230203.10abe45+dfsg/debian/changelog  2023-07-12 
23:12:05.000000000 +0200
@@ -1,3 +1,20 @@
+gosa (2.8~git20230203.10abe45+dfsg-1+deb12u1) bookworm; urgency=medium
+
+  [ Mike Gabriel ]
+  * debian/patches:
+    + Add 1003_php-deprecations.patch. Silence various PHP 8.2 deprecation
+      warnings. (Closes: #1038682).
+
+  [ Daniel Teichmann ]
+  * debian/patches:
+    + Add 1004_missing_templates.patch. (Closes: #1039697)
+    + Update 1002_php82-allow-dynamic-properties.patch: Tolerate dyn. prop. for
+      ALL PHP classes. (Closes: #1039894)
+    + Add 1005_preg_replace_deprecation.patch.
+    + Add 1006_fix-overflow-debug-print_a-func.patch. (Closes: #1040839)
+
+ -- Mike Gabriel <sunwea...@debian.org>  Wed, 12 Jul 2023 23:12:05 +0200
+
 gosa (2.8~git20230203.10abe45+dfsg-1) unstable; urgency=medium
 
   * New upstream Git snapshot.
diff -Nru 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1002_php82-allow-dynamic-properties.patch
 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1002_php82-allow-dynamic-properties.patch
--- 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1002_php82-allow-dynamic-properties.patch
  2023-01-21 20:42:25.000000000 +0100
+++ 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1002_php82-allow-dynamic-properties.patch
  2023-07-12 23:10:08.000000000 +0200
@@ -1,6 +1,200 @@
-Description: Tolerate dynamic properties in managepws class, deprecated in PHP 
8.2
-Author: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
-
+Description: Tolerate dynamic properties in all classes, deprecated in PHP 8.2
+Author: Daniel Teichmann <daniel.teichm...@das-netzwerkteam.de>
+ 
+--- a/include/class_CopyPasteHandler.inc
++++ b/include/class_CopyPasteHandler.inc
+@@ -22,6 +22,7 @@
+ 
+ define("LDAP_DUMP_PATH","/var/cache/gosa/tmp");
+ 
++#[\AllowDynamicProperties]
+ class CopyPasteHandler {
+ 
+   var $config;
+--- a/include/class_GOsaRegistration.inc
++++ b/include/class_GOsaRegistration.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class GOsaRegistration 
+ {
+     
+--- a/include/class_ItemSelector.inc
++++ b/include/class_ItemSelector.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class ItemSelector {
+ 
+     public $base;
+--- a/include/class_SnapShotDialog.inc
++++ b/include/class_SnapShotDialog.inc
+@@ -21,6 +21,7 @@
+  */
+ 
+ /* Snap shot dialog class */
++#[\AllowDynamicProperties]
+ class SnapShotDialog extends plugin
+ {
+     var $config;
+--- a/include/class_SnapshotHandler.inc
++++ b/include/class_SnapshotHandler.inc
+@@ -21,6 +21,7 @@
+  */
+ 
+ 
++#[\AllowDynamicProperties]
+ class SnapshotHandler {
+ 
+   var $config;
+--- a/include/class_acl.inc
++++ b/include/class_acl.inc
+@@ -21,6 +21,8 @@
+  */
+ 
+ /*! \brief ACL management plugin */
++
++#[\AllowDynamicProperties]
+ class acl extends plugin
+ {
+     /* Definitions */
+--- a/include/class_baseSelector.inc
++++ b/include/class_baseSelector.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class baseSelector
+ {
+     private $base;
+--- a/include/class_certificate.inc
++++ b/include/class_certificate.inc
+@@ -26,6 +26,7 @@
+ define("PEM","pem");
+ define("DER","der");
+ 
++#[\AllowDynamicProperties]
+ class certificate 
+ {
+   /* vars */
+--- a/include/class_config.inc
++++ b/include/class_config.inc
+@@ -27,6 +27,7 @@
+  * gosa configuration file.
+  */
+ 
++#[\AllowDynamicProperties]
+ class config  {
+ 
+     /* XML parser */
+--- a/include/class_configRegistry.inc
++++ b/include/class_configRegistry.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class configRegistry{
+ 
+     public $config = NULL;
+@@ -573,7 +574,7 @@
+     }
+ }
+ 
+-
++#[\AllowDynamicProperties]
+ class gosaProperty
+ {
+     protected $name = "";
+--- a/include/class_core.inc
++++ b/include/class_core.inc
+@@ -106,6 +106,7 @@
+  */
+ 
+ 
++#[\AllowDynamicProperties]
+ class all extends plugin {
+     static function plInfo()
+     {
+@@ -122,6 +123,7 @@
+     }
+ }
+ 
++#[\AllowDynamicProperties]
+ class core extends plugin {
+ 
+     static function getPropertyValues($class,$name,$value,$type)
+--- a/include/class_departmentSortIterator.inc
++++ b/include/class_departmentSortIterator.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class departmentSortIterator implements Iterator {
+   private $data;
+ 
+--- a/include/class_filter.inc
++++ b/include/class_filter.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class filter
+ {
+     public $searches = [];
+--- a/include/class_filterLDAP.inc
++++ b/include/class_filterLDAP.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterLDAP {
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= array(""))
+--- a/include/class_filterNOACL.inc
++++ b/include/class_filterNOACL.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterNOACL extends filterLDAPBlacklist{
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= array(""))
+--- a/include/class_jsonRPC.inc
++++ b/include/class_jsonRPC.inc
+@@ -1,6 +1,7 @@
+ <?php
+ 
+ 
++#[\AllowDynamicProperties]
+ class jsonRPC {
+ 
+     private $curlHandler = NULL;
+--- a/include/class_ldap.inc
++++ b/include/class_ldap.inc
+@@ -28,6 +28,7 @@
+ define("INSERT_OK",10000);
+ define("SPECIALS_OVERRIDE", TRUE);
+ 
++#[\AllowDynamicProperties]
+ class LDAP
+ {
+     public static $characterMap = NULL;
+--- a/include/class_ldapMultiplexer.inc
++++ b/include/class_ldapMultiplexer.inc
+@@ -21,6 +21,7 @@
+  */
+ 
+ 
++#[\AllowDynamicProperties]
+ class ldapMultiplexer {
+ 
+   /* Internal stuff */
 --- a/include/class_listing.inc
 +++ b/include/class_listing.inc
 @@ -20,6 +20,7 @@
@@ -11,6 +205,16 @@
  class listing
  {
      public $xmlData;
+--- a/include/class_listingSortIterator.inc
++++ b/include/class_listingSortIterator.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class listingSortIterator implements Iterator {
+   private $data;
+ 
 --- a/include/class_management.inc
 +++ b/include/class_management.inc
 @@ -20,6 +20,7 @@
@@ -21,6 +225,75 @@
  class management
  {
      // Public
+--- a/include/class_msg_dialog.inc
++++ b/include/class_msg_dialog.inc
+@@ -27,6 +27,7 @@
+ define("OK_CANCEL_DIALOG"     , 10005);
+ define("FATAL_ERROR_DIALOG"   , 10006);
+ 
++#[\AllowDynamicProperties]
+ class msg_dialog
+ {
+     private $s_Title  = "Undefined";
+--- a/include/class_multi_plug.inc
++++ b/include/class_multi_plug.inc
+@@ -121,6 +121,7 @@
+     2. All given objects specified by '$dn' will be initialized and the 
collected
+      data from the dummy object will be populated to them.
+  */
++#[\AllowDynamicProperties]
+ class multi_plug
+ {
+   /* Tab handler for each given dn entry */
+--- a/include/class_pathNavigator.inc
++++ b/include/class_pathNavigator.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class pathNavigator
+ {
+     public static function registerPlugin($class, $title = '')
+--- a/include/class_plugin.inc
++++ b/include/class_plugin.inc
+@@ -30,6 +30,7 @@
+   within this class. Extend your plugins from this class.
+  */
+ 
++#[\AllowDynamicProperties]
+ class plugin
+ {
+   /*! \brief    The title shown in path menu while this plugin is visible.
+--- a/include/class_pluglist.inc
++++ b/include/class_pluglist.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class pluglist
+ {
+     // The id of the last registered plugin id
+--- a/include/class_releaseSelector.inc
++++ b/include/class_releaseSelector.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class releaseSelector {
+ 
+     public $base;
+--- a/include/class_remoteObject.inc
++++ b/include/class_remoteObject.inc
+@@ -6,6 +6,7 @@
+  *           on the server using RPC calls.
+  *          Properties will bestored directly (directStorage=TRUE) or when 
commit() is called.
+  */
++#[\AllowDynamicProperties]
+ class remoteObject
+ {
+     private $rpcHandle;
 --- a/include/class_session.inc
 +++ b/include/class_session.inc
 @@ -20,6 +20,7 @@
@@ -31,3 +304,1060 @@
  class session {
  
      public static function get_session_size()
+--- a/include/class_socketClient.inc
++++ b/include/class_socketClient.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class Socket_Client
+ {
+   private $host       = "";
+--- a/include/class_sortableListing.inc
++++ b/include/class_sortableListing.inc
+@@ -24,6 +24,7 @@
+ define('LIST_MARKED', 1);
+ define('LIST_DISABLED', 2);
+ 
++#[\AllowDynamicProperties]
+ class sortableListing
+ {
+     private $header= null;
+--- a/include/class_stats.inc
++++ b/include/class_stats.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class stats 
+ {
+ 
+--- a/include/class_tabs.inc
++++ b/include/class_tabs.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class tabs
+ {
+   var $dn;
+--- a/include/class_userFilter.inc
++++ b/include/class_userFilter.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class userFilter extends plugin
+ {
+     public $pathTitle= "Filter";
+--- a/include/class_userFilterEditor.inc
++++ b/include/class_userFilterEditor.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class userFilterEditor extends plugin 
+ {
+     public $pathTitle= "Edit";
+--- a/include/class_userinfo.inc
++++ b/include/class_userinfo.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class userinfo
+ {
+   var $dn;
+--- a/include/exporter/class_csvExporter.inc
++++ b/include/exporter/class_csvExporter.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class csvExporter
+ {
+   var $result;
+--- a/include/exporter/class_pdfExporter.inc
++++ b/include/exporter/class_pdfExporter.inc
+@@ -10,6 +10,7 @@
+   include('class_PDF.inc');
+ }
+ 
++#[\AllowDynamicProperties]
+ class pdfExporter
+ {
+   var $result;
+--- a/include/functions_debug.inc
++++ b/include/functions_debug.inc
+@@ -65,6 +65,7 @@
+ ** Stephan Pirson (Saibot)
+ ************************************************/
+ 
++#[\AllowDynamicProperties]
+ class Print_a_class {
+       
+       # this can be changed to FALSE if you don't like the fancy string 
formatting
+--- a/include/functions_helpviewer.inc
++++ b/include/functions_helpviewer.inc
+@@ -21,6 +21,7 @@
+  */
+ 
+ /* Simple class to parse the xml help file */
++#[\AllowDynamicProperties]
+ class parseXml
+ {
+   var $parser;
+--- a/include/password-methods/class_password-methods-clear.inc
++++ b/include/password-methods/class_password-methods-clear.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodClear extends passwordMethod
+ {
+   var $lockable = FALSE;
+--- a/include/password-methods/class_password-methods-crypt.inc
++++ b/include/password-methods/class_password-methods-crypt.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodCrypt extends passwordMethod
+ {
+   function __construct($config)
+--- a/include/password-methods/class_password-methods-md5.inc
++++ b/include/password-methods/class_password-methods-md5.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodMd5 extends passwordMethod
+ {
+       function __construct($config)  
+--- a/include/password-methods/class_password-methods-remote.inc
++++ b/include/password-methods/class_password-methods-remote.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodRemote extends passwordMethod
+ {
+   var $dn  = "";
+--- a/include/password-methods/class_password-methods-sasl.inc
++++ b/include/password-methods/class_password-methods-sasl.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodsasl extends passwordMethod
+ {
+   var $dn  = "";
+--- a/include/password-methods/class_password-methods-sha.inc
++++ b/include/password-methods/class_password-methods-sha.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodsha extends passwordMethod
+ {
+   function __construct($config)
+--- a/include/password-methods/class_password-methods-smd5.inc
++++ b/include/password-methods/class_password-methods-smd5.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodsmd5 extends passwordMethod
+ {
+   function __construct($config)
+--- a/include/password-methods/class_password-methods-ssha.inc
++++ b/include/password-methods/class_password-methods-ssha.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethodssha extends passwordMethod
+ {
+   function __construct($config)
+--- a/include/password-methods/class_password-methods.inc
++++ b/include/password-methods/class_password-methods.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class passwordMethod
+ {
+     var $config = false;
+--- a/include/utils/class_msgPool.inc
++++ b/include/utils/class_msgPool.inc
+@@ -7,6 +7,7 @@
+ define ("LDAP_AUTH",   6);
+ 
+ /*! \brief Some common needed messages */ 
++#[\AllowDynamicProperties]
+ class msgPool
+ {
+ 
+--- a/include/utils/class_tests.inc
++++ b/include/utils/class_tests.inc
+@@ -31,6 +31,7 @@
+  * The functions need to be handled with care, because they are not as strict
+  * as one might expect.
+  */ 
++#[\AllowDynamicProperties]
+ class tests {
+ 
+   /*! \brief Test if the given string is a phone number */
+--- a/include/utils/class_timezone.inc
++++ b/include/utils/class_timezone.inc
+@@ -18,6 +18,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class timezone {
+ 
+   /* This function returns the offset for the default timezone. 
+--- a/include/utils/class_xml.inc
++++ b/include/utils/class_xml.inc
+@@ -19,6 +19,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class xml {
+ 
+   static function validate($file, $schema) {
+--- a/include/utils/excel/class.writeexcel_biffwriter.inc.php
++++ b/include/utils/excel/class.writeexcel_biffwriter.inc.php
+@@ -24,6 +24,7 @@
+  * Spreadsheet::WriteExcel was written by John McNamara, jmcnam...@cpan.org
+  */
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_biffwriter {
+     var $byte_order;
+     var $BIFF_version;
+--- a/include/utils/excel/class.writeexcel_format.inc.php
++++ b/include/utils/excel/class.writeexcel_format.inc.php
+@@ -24,6 +24,7 @@
+  * Spreadsheet::WriteExcel was written by John McNamara, jmcnam...@cpan.org
+  */
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_format {
+ 
+     var $_xf_index;
+--- a/include/utils/excel/class.writeexcel_formula.inc.php
++++ b/include/utils/excel/class.writeexcel_formula.inc.php
+@@ -66,6 +66,7 @@
+     // @const SPREADSHEET_EXCEL_WRITER_NE token identifier for character "<>"
+ 
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_formula {
+ 
+ 
###############################################################################
+--- a/include/utils/excel/class.writeexcel_olewriter.inc.php
++++ b/include/utils/excel/class.writeexcel_olewriter.inc.php
+@@ -24,6 +24,7 @@
+  * Spreadsheet::WriteExcel was written by John McNamara, jmcnam...@cpan.org
+  */
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_olewriter {
+     var $_OLEfilename;
+     var $_OLEtmpfilename; /* ABR */
+--- a/include/utils/excel/class.writeexcel_workbook.inc.php
++++ b/include/utils/excel/class.writeexcel_workbook.inc.php
+@@ -29,6 +29,7 @@
+ require_once "class.writeexcel_formula.inc.php";
+ require_once "class.writeexcel_olewriter.inc.php";
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_workbook extends writeexcel_biffwriter {
+ 
+     var $_filename;
+--- a/include/utils/excel/class.writeexcel_worksheet.inc.php
++++ b/include/utils/excel/class.writeexcel_worksheet.inc.php
+@@ -26,6 +26,7 @@
+ 
+ require_once "class.writeexcel_biffwriter.inc.php";
+ 
++#[\AllowDynamicProperties]
+ class writeexcel_worksheet extends writeexcel_biffwriter {
+ 
+     var $_name;
+--- a/plugins/addons/dyngroup/class_DynamicLdapGroup.inc
++++ b/plugins/addons/dyngroup/class_DynamicLdapGroup.inc
+@@ -25,6 +25,7 @@
+  * @author Thomas Chemineau - thomas.chemineau<at>gmail.com
+  * @version 0.01
+  */
++#[\AllowDynamicProperties]
+ class DynamicLdapGroup extends plugin
+ {
+ 
+--- a/plugins/addons/propertyEditor/class_commandVerifier.inc
++++ b/plugins/addons/propertyEditor/class_commandVerifier.inc
+@@ -1,4 +1,5 @@
+ <?php
++#[\AllowDynamicProperties]
+ class commandVerifier
+ {
+     private $property = NULL;
+--- a/plugins/addons/propertyEditor/class_filterProperties.inc
++++ b/plugins/addons/propertyEditor/class_filterProperties.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterCONFIGPROPERTIES {
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= "")
+--- a/plugins/addons/propertyEditor/class_propertyEditor.inc
++++ b/plugins/addons/propertyEditor/class_propertyEditor.inc
+@@ -1,6 +1,7 @@
+ <?php
+ 
+ 
++#[\AllowDynamicProperties]
+ class propertyEditor extends management
+ {
+     var $plHeadline     = "Preferences";
+--- a/plugins/addons/propertyEditor/migration/class_migrateRDN.inc
++++ b/plugins/addons/propertyEditor/migration/class_migrateRDN.inc
+@@ -2,6 +2,7 @@
+ 
+ 
+ 
++#[\AllowDynamicProperties]
+ class migrateRDN implements propertyMigration
+ {
+     protected $property = NULL;
+--- a/plugins/admin/acl/class_aclManagement.inc
++++ b/plugins/admin/acl/class_aclManagement.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class aclManagement extends management
+ {
+   var $plHeadline     = "Access control";
+--- a/plugins/admin/acl/class_aclRole.inc
++++ b/plugins/admin/acl/class_aclRole.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class aclrole extends acl
+ {
+   /* Definitions */
+--- a/plugins/admin/acl/class_filterACL.inc
++++ b/plugins/admin/acl/class_filterACL.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterACL {
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= "")
+--- a/plugins/admin/acl/migration/class_migrate_aclRoleRDN.inc
++++ b/plugins/admin/acl/migration/class_migrate_aclRoleRDN.inc
+@@ -1,4 +1,5 @@
+ <?php 
++#[\AllowDynamicProperties]
+ class migrate_aclRoleRDN extends migrateRDN implements propertyMigration
+ {
+       protected $filter = "(&(objectClass=gosaRole)%s)";
+--- a/plugins/admin/acl/tabs_acl.inc
++++ b/plugins/admin/acl/tabs_acl.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class acltab extends tabs
+ {
+ 
+--- a/plugins/admin/acl/tabs_acl_role.inc
++++ b/plugins/admin/acl/tabs_acl_role.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class aclroletab extends tabs
+ {
+ 
+--- a/plugins/admin/departments/class_countryGeneric.inc
++++ b/plugins/admin/departments/class_countryGeneric.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class country extends department
+ {
+     /* attribute list for save action */
+--- a/plugins/admin/departments/class_dcObject.inc
++++ b/plugins/admin/departments/class_dcObject.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class dcObject extends department
+ {
+     /* attribute list for save action */
+--- a/plugins/admin/departments/class_department.inc
++++ b/plugins/admin/departments/class_department.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class department extends plugin
+ {
+     /* department attributes */
+--- a/plugins/admin/departments/class_departmentManagement.inc
++++ b/plugins/admin/departments/class_departmentManagement.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class departmentManagement extends management
+ {
+   var $plHeadline     = "Directory structure";
+--- a/plugins/admin/departments/class_domain.inc
++++ b/plugins/admin/departments/class_domain.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class domain extends department
+ {
+     /* attribute list for save action */
+--- a/plugins/admin/departments/class_filterDEPARTMENT.inc
++++ b/plugins/admin/departments/class_filterDEPARTMENT.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterDEPARTMENT {
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= array(""))
+--- a/plugins/admin/departments/class_localityGeneric.inc
++++ b/plugins/admin/departments/class_localityGeneric.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class locality extends department
+ {
+     /* attribute list for save action */
+--- a/plugins/admin/departments/class_organizationGeneric.inc
++++ b/plugins/admin/departments/class_organizationGeneric.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class organization extends department
+ {
+     /* attribute list for save action */
+--- a/plugins/admin/departments/tabs_department.inc
++++ b/plugins/admin/departments/tabs_department.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class deptabs extends tabs
+ {
+   var $base= "";
+--- a/plugins/admin/groups/class_filterGroupLDAP.inc
++++ b/plugins/admin/groups/class_filterGroupLDAP.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterGroupLDAP {
+ 
+     static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= "")
+--- a/plugins/admin/groups/class_group.inc
++++ b/plugins/admin/groups/class_group.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */ 
+ 
++#[\AllowDynamicProperties]
+ class group extends plugin
+ {
+     // Group attributes
+--- a/plugins/admin/groups/class_groupManagement.inc
++++ b/plugins/admin/groups/class_groupManagement.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class groupManagement extends management
+ {
+     public $plHeadline     = "Groups";
+--- a/plugins/admin/groups/migration/class_migrate_groupRDN.inc
++++ b/plugins/admin/groups/migration/class_migrate_groupRDN.inc
+@@ -1,4 +1,5 @@
+ <?php 
++#[\AllowDynamicProperties]
+ class migrate_groupRDN extends migrateRDN implements propertyMigration
+ {
+     protected $filter = "(&(objectClass=posixGroup)%s)";
+--- a/plugins/admin/groups/singleUserSelect/class_singleUserSelect.inc
++++ b/plugins/admin/groups/singleUserSelect/class_singleUserSelect.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class singleUserSelect extends management
+ {
+ 
+--- a/plugins/admin/groups/tabs_group.inc
++++ b/plugins/admin/groups/tabs_group.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class grouptabs extends tabs
+ {
+ 
+--- a/plugins/admin/groups/userGroupSelect/class_userGroupSelect.inc
++++ b/plugins/admin/groups/userGroupSelect/class_userGroupSelect.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class userGroupSelect extends management
+ {
+     // Tab definition 
+--- a/plugins/admin/groups/userSelect/class_userSelect.inc
++++ b/plugins/admin/groups/userSelect/class_userSelect.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class userSelect extends management
+ {
+     public $plHeadline = "User selection";
+--- a/plugins/admin/ogroups/class_ogroup.inc
++++ b/plugins/admin/ogroups/class_ogroup.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class ogroup extends plugin
+ {
+     public $typeToClass = array(
+--- a/plugins/admin/ogroups/class_ogroupManagement.inc
++++ b/plugins/admin/ogroups/class_ogroupManagement.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class ogroupManagement extends management
+ {
+     var $plHeadline     = "Object groups";
+--- a/plugins/admin/ogroups/migration/class_migrate_ogroupRDN.inc
++++ b/plugins/admin/ogroups/migration/class_migrate_ogroupRDN.inc
+@@ -1,4 +1,5 @@
+ <?php 
++#[\AllowDynamicProperties]
+ class migrate_ogroupRDN extends migrateRDN implements propertyMigration
+ {
+     protected $filter = "(&(objectClass=gosaGroupOfNames)%s)";
+--- 
a/plugins/admin/ogroups/objectSelect/class_filterLDAPDepartmentBlacklist.inc
++++ 
b/plugins/admin/ogroups/objectSelect/class_filterLDAPDepartmentBlacklist.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterLDAPDepartmentBlacklist  extends filterLDAPBlacklist{
+ 
+     static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= "")
+--- a/plugins/admin/ogroups/objectSelect/class_objectSelect.inc
++++ b/plugins/admin/ogroups/objectSelect/class_objectSelect.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class objectSelect extends management
+ {
+     // Tab definition 
+--- a/plugins/admin/ogroups/tabs_ogroups.inc
++++ b/plugins/admin/ogroups/tabs_ogroups.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class ogrouptabs extends tabs
+ {
+     var $base= "";
+--- a/plugins/admin/users/class_userManagement.inc
++++ b/plugins/admin/users/class_userManagement.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class userManagement extends management
+ {
+     var $plHeadline     = "Users";
+--- a/plugins/admin/users/migration/class_migrate_userRDN.inc
++++ b/plugins/admin/users/migration/class_migrate_userRDN.inc
+@@ -1,4 +1,5 @@
+ <?php 
++#[\AllowDynamicProperties]
+ class migrate_userRDN extends migrateRDN implements propertyMigration
+ {
+     protected $filter = 
'(&(objectClass=gosaAccount)(!(&(objectClass=sambaSamAccount)(uid=*$)))%s)';
+--- a/plugins/admin/users/tabs_user.inc
++++ b/plugins/admin/users/tabs_user.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class usertabs extends tabs
+ {
+   var $base;
+--- a/plugins/generic/dashBoard/Register/class_RegistrationDialog.inc
++++ b/plugins/generic/dashBoard/Register/class_RegistrationDialog.inc
+@@ -6,6 +6,7 @@
+  *
+  */
+ 
++#[\AllowDynamicProperties]
+ class RegistrationDialog extends plugin
+ {
+     protected $selectedRegistrationType = "registrate";
+--- a/plugins/generic/dashBoard/class_dashBoard.inc
++++ b/plugins/generic/dashBoard/class_dashBoard.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class dashBoard extends plugin
+ {
+     var $plHeadline = 'Dash board';
+--- a/plugins/generic/dashBoard/class_rssReader.inc
++++ b/plugins/generic/dashBoard/class_rssReader.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class rssReader{
+ 
+     public static $attributes = array( 
+--- a/plugins/generic/dashBoard/dbChannelStatus/class_dbChannelStatus.inc
++++ b/plugins/generic/dashBoard/dbChannelStatus/class_dbChannelStatus.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class dbChannelStatus extends plugin
+ {
+     function __construct($config)
+--- a/plugins/generic/dashBoard/dbInformation/class_dbInformation.inc
++++ b/plugins/generic/dashBoard/dbInformation/class_dbInformation.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class dbInformation extends plugin
+ {
+     function __construct($config)
+--- a/plugins/generic/dashBoard/dbNotifications/class_dbNotifications.inc
++++ b/plugins/generic/dashBoard/dbNotifications/class_dbNotifications.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class dbNotifications extends plugin
+ {
+     function __construct($config)
+--- a/plugins/generic/dashBoard/dbPluginStatus/class_dbPluginStatus.inc
++++ b/plugins/generic/dashBoard/dbPluginStatus/class_dbPluginStatus.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class dbPluginStatus extends plugin
+ {
+ 
+--- a/plugins/generic/infoPage/class_infoPage.inc
++++ b/plugins/generic/infoPage/class_infoPage.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class infoPage extends plugin
+ {
+     private $ui;
+--- a/plugins/generic/references/class_aclResolver.inc
++++ b/plugins/generic/references/class_aclResolver.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class aclResolver
+ {
+     private $classMapping = array();
+--- a/plugins/generic/references/class_ldifViewer.inc
++++ b/plugins/generic/references/class_ldifViewer.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class ldifViewer extends plugin
+ {
+     private $ldif;
+--- a/plugins/generic/references/class_reference.inc
++++ b/plugins/generic/references/class_reference.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class reference extends plugin
+ {
+     var $attributes= array('uid','modifyTimestamp');
+--- a/plugins/generic/statistics/chartClasses/class_actionSelectChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_actionSelectChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class actionSelectChart extends statChart
+ {
+     protected $title = 'Action count per plugin';
+--- a/plugins/generic/statistics/chartClasses/class_categoryActionOverTime.inc
++++ b/plugins/generic/statistics/chartClasses/class_categoryActionOverTime.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class categoryActionsOverTime extends statChart
+ {
+     protected $title = 'Plugin usage over time';
+--- a/plugins/generic/statistics/chartClasses/class_cpuLoadChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_cpuLoadChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class cpuLoadChart extends memoryUsageChart
+ {
+     protected $title = 'CPU load';
+--- a/plugins/generic/statistics/chartClasses/class_durationTimeChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_durationTimeChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class durationTimeChart extends memoryUsageChart
+ {
+     protected $title = 'Plugin duration';
+--- a/plugins/generic/statistics/chartClasses/class_memoryUsageChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_memoryUsageChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class memoryUsageChart extends statChart
+ {
+     protected $title = 'Memory usage';
+--- a/plugins/generic/statistics/chartClasses/class_objectCountChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_objectCountChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class objectCountChart extends statChart
+ {
+     protected $title = 'Object count';
+--- a/plugins/generic/statistics/chartClasses/class_passwordChangeChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_passwordChangeChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class passwordChangeChart extends statChart
+ {
+     protected $title = 'Password changes';
+--- a/plugins/generic/statistics/chartClasses/class_pieChart1.inc
++++ b/plugins/generic/statistics/chartClasses/class_pieChart1.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class pieChart1 extends statChart
+ {
+     protected $title = 'Plugin usage';
+--- a/plugins/generic/statistics/chartClasses/class_pieChart2.inc
++++ b/plugins/generic/statistics/chartClasses/class_pieChart2.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class pieChart2 extends pieChart1
+ {
+     protected $title = 'Action usage';
+--- a/plugins/generic/statistics/chartClasses/class_renderTimeChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_renderTimeChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class renderTimeChart extends memoryUsageChart
+ {
+     protected $title = 'Render time';
+--- a/plugins/generic/statistics/chartClasses/class_statChart.inc
++++ b/plugins/generic/statistics/chartClasses/class_statChart.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class statChart{
+ 
+     // Graph data
+--- a/plugins/generic/statistics/class_statistics.inc
++++ b/plugins/generic/statistics/class_statistics.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class statistics extends plugin
+ {
+     var $plHeadline = 'Statistics';
+--- a/plugins/generic/welcome/class_welcome.inc
++++ b/plugins/generic/welcome/class_welcome.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class welcome extends plugin
+ {
+    var $plHeadline      = "Back to main menu";
+--- a/plugins/personal/generic/class_user.inc
++++ b/plugins/personal/generic/class_user.inc
+@@ -31,6 +31,7 @@
+   from/to the LDAP. It does syntax checking and displays the formulars 
required.
+  */
+ 
++#[\AllowDynamicProperties]
+ class user extends plugin
+ {
+   /* Definitions */
+--- a/plugins/personal/myaccount/MyAccountTabs.inc
++++ b/plugins/personal/myaccount/MyAccountTabs.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class MyAccountTabs extends tabs
+ {
+   var $password_change_needed = FALSE;
+--- a/plugins/personal/myaccount/class_MyAccount.inc
++++ b/plugins/personal/myaccount/class_MyAccount.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class MyAccount extends plugin
+ {
+   var $plHeadline= "My account";
+--- a/plugins/personal/password/class_password.inc
++++ b/plugins/personal/password/class_password.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class password extends plugin
+ {
+     /* Definitions */
+--- a/plugins/personal/posix/class_posixAccount.inc
++++ b/plugins/personal/posix/class_posixAccount.inc
+@@ -31,6 +31,7 @@
+   does syntax checking and displays the formulars required.
+  */
+ 
++#[\AllowDynamicProperties]
+ class posixAccount extends plugin
+ {
+   /* Definitions */
+--- a/plugins/personal/posix/groupSelect/class_filterLDAPBlacklist.inc
++++ b/plugins/personal/posix/groupSelect/class_filterLDAPBlacklist.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class filterLDAPBlacklist {
+ 
+   static function query($base, $scope, $filter, $attributes, $category, 
$objectStorage= "")
+--- a/plugins/personal/posix/groupSelect/class_groupSelect.inc
++++ b/plugins/personal/posix/groupSelect/class_groupSelect.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class groupSelect extends management
+ {
+ 
+--- a/plugins/personal/posix/trustModeDialog/class_trustModeDialog.inc
++++ b/plugins/personal/posix/trustModeDialog/class_trustModeDialog.inc
+@@ -1,5 +1,6 @@
+ <?php
+ 
++#[\AllowDynamicProperties]
+ class trustModeDialog extends plugin 
+ {
+     public $attributes  = array("accessTo","trustModel");
+--- a/plugins/personal/posix/trustSelect/class_trustSelect.inc
++++ b/plugins/personal/posix/trustSelect/class_trustSelect.inc
+@@ -20,6 +20,7 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
++#[\AllowDynamicProperties]
+ class trustSelect extends management
+ {
+ 
+--- a/setup/class_setup.inc
++++ b/setup/class_setup.inc
+@@ -23,6 +23,7 @@
+ require_once("class_setupStep.inc");
+ 
+ 
++#[\AllowDynamicProperties]
+ class setup
+ {
+     var $i_steps  = 9;  // Number of setup steps
+--- a/setup/class_setupStep.inc
++++ b/setup/class_setupStep.inc
+@@ -20,6 +20,7 @@
+ */
+ 
+ 
++#[\AllowDynamicProperties]
+ class setup_step extends plugin
+ {
+   var $s_title      = "Still undefined";
+--- a/setup/class_setupStep_Checks.inc
++++ b/setup/class_setupStep_Checks.inc
+@@ -20,6 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#[\AllowDynamicProperties]
+ class Step_Checks extends setup_step
+ {
+   var $basic_checks = array();
+--- a/setup/class_setupStep_Finish.inc
++++ b/setup/class_setupStep_Finish.inc
+@@ -20,6 +20,7 @@
+  */
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_Finish extends setup_step
+ {
+   var $gosa_conf_contrib   = "/gosa.conf";
+--- a/setup/class_setupStep_Language.inc
++++ b/setup/class_setupStep_Language.inc
+@@ -20,6 +20,7 @@
+ */
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_Language extends setup_step
+ {
+   var $lang_selected  = "";       /* Language selected from select box  */
+--- a/setup/class_setupStep_Ldap.inc
++++ b/setup/class_setupStep_Ldap.inc
+@@ -20,6 +20,7 @@
+ */
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_Ldap extends setup_step
+ {
+   var $connection = "ldap://localhost:389";;
+--- a/setup/class_setupStep_License.inc
++++ b/setup/class_setupStep_License.inc
+@@ -20,6 +20,7 @@
+ */
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_License extends setup_step
+ {
+   var $license_found  = false;
+--- a/setup/class_setupStep_Migrate.inc
++++ b/setup/class_setupStep_Migrate.inc
+@@ -22,6 +22,7 @@
+ 
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_Migrate extends setup_step
+ {
+     var $header_image   = "images/setup/migrate.png";
+--- a/setup/class_setupStep_Schema.inc
++++ b/setup/class_setupStep_Schema.inc
+@@ -20,6 +20,7 @@
+ */
+ 
+ 
++#[\AllowDynamicProperties]
+ class Step_Schema extends setup_step
+ {
+     var $checked = array();
+--- a/setup/class_setupStep_Welcome.inc
++++ b/setup/class_setupStep_Welcome.inc
+@@ -19,7 +19,7 @@
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
+-
++#[\AllowDynamicProperties]
+ class Step_Welcome  extends setup_step
+ {
+   var $languages      = array();
diff -Nru 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1003_php-deprecations.patch 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1003_php-deprecations.patch
--- 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1003_php-deprecations.patch    
    1970-01-01 01:00:00.000000000 +0100
+++ 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1003_php-deprecations.patch    
    2023-07-12 23:10:08.000000000 +0200
@@ -0,0 +1,60 @@
+Description: Silence various PHP 8.2 deprecation warnings.
+Author: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+
+--- a/include/class_acl.inc
++++ b/include/class_acl.inc
+@@ -1213,7 +1213,7 @@
+ 
+                 switch ($this->theme) {
+                     case 'classic':
+-                        $display .= "   <td style='border-top:1px solid 
#A0A0A0;${rb}width:".(int)(100/$cols)."%'>
++                        $display .= "   <td style='border-top:1px solid 
#A0A0A0;{$rb}width:".(int)(100/$cols)."%'>
+                                             <b>$dsc</b> 
($attr)<br>".$this->mkrwbx($key."_".$attr, $state)."
+                                         </td>$end";
+                         break;
+@@ -1314,20 +1314,20 @@
+         if($this->acl_is_writeable("")){
+             switch ($this->theme) {
+                 case 'classic':
+-                    return "<input id='acl_".$tname."_r' type='checkbox' 
name='acl_${name}_r' $rstate>
++                    return "<input id='acl_".$tname."_r' type='checkbox' 
name='acl_{$name}_r' $rstate>
+                             <label 
for='acl_".$tname."_r'>"._("read")."</label>
+-                            <input id='acl_".$tname."_w' type='checkbox' 
name='acl_${name}_w' $wstate>
++                            <input id='acl_".$tname."_w' type='checkbox' 
name='acl_{$name}_w' $wstate>
+                             <label 
for='acl_".$tname."_w'>"._("write")."</label>";
+                 default:
+                     return "<label>
+                                 <p>
+-                                    <input type='checkbox' 
id='acl_".$tname."_r' name='acl_${name}_r' $rstate>
++                                    <input type='checkbox' 
id='acl_".$tname."_r' name='acl_{$name}_r' $rstate>
+                                     <span>"._("read")."</span>
+                                 </p>
+                             </label>
+                             <label>
+                                 <p>
+-                                    <input type='checkbox' 
id='acl_".$tname."_w' name='acl_${name}_w' $wstate>
++                                    <input type='checkbox' 
id='acl_".$tname."_w' name='acl_{$name}_w' $wstate>
+                                     <span>"._("write")."</span>
+                                 </p>
+                             </label>" ;
+--- a/include/class_config.inc
++++ b/include/class_config.inc
+@@ -31,7 +31,7 @@
+ class config  {
+ 
+     /* XML parser */
+-    static $parser;
++    static $parser = NULL;
+     var $config_found= FALSE;
+     var $tags= array();
+     var $level= 0;
+--- a/include/class_sortableListing.inc
++++ b/include/class_sortableListing.inc
+@@ -322,6 +322,7 @@
+                         foreach ($this->displayData[$row] as $column) {
+ 
+                             // Do NOT use the onClick statement for columns 
that contain links or buttons.
++                            $column = is_null($column) ? "" : $column;
+                             if (preg_match("<.*type=.submit..*>", $column) || 
preg_match("<a.*href=.*>", $column)) {
+                                 $result.= "   <td$first>".$column."</td>\n";
+                             } else {
diff -Nru 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1004_missing_templates.patch 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1004_missing_templates.patch
--- 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1004_missing_templates.patch   
    1970-01-01 01:00:00.000000000 +0100
+++ 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1004_missing_templates.patch   
    2023-07-12 23:10:13.000000000 +0200
@@ -0,0 +1,156 @@
+Description: Add missing template files to user plugin. (Just copied from 
classic theme.)
+Author: Daniel Teichmann <daniel.teichm...@das-netzwerkteam.de>
+
+Index: gosa-core/plugins/admin/users/default/template.tpl
+===================================================================
+--- /dev/null
++++ gosa-core/plugins/admin/users/default/template.tpl
+@@ -0,0 +1,71 @@
++<div style="font-size:18px;">
++  {t}Creating a new user using templates{/t}
++</div>
++
++<p>
++ {t}Creating a new user can be assisted by using templates. Many database 
records will be filled automatically. Choose 'none' to skip the usage of 
templates.{/t}
++</p>
++
++<hr>
++
++<br>
++
++<table summary="{t}User template selection dialog{/t}" cellpadding=4 border=0>
++  <tr>
++    <td><b><LABEL for="template">{t}Template{/t}</LABEL></b></td>
++    <td>
++      <select size="1" name="template" id="template">
++       {html_options options=$templates selected=$template}
++      </select>
++    </td>
++  </tr>
++  <tr>
++    <td><b><LABEL for="sn">{t}Last name{/t}</LABEL></b></td>
++    <td><input type='text' name="sn" id="sn" size="30" maxlength="40" 
value="{$sn}"></td>
++  </tr>
++  <tr>
++    <td><b><LABEL for="givenName">{t}First name{/t}</LABEL></b></td>
++    <td><input type='text' name="givenName" id="givenName" size="30" 
maxlength="40" value="{$givenName}"></td>
++  </tr>
++  {if $got_uid eq "true"}
++  <tr>
++    <td><b>{t}Login{/t}</b></td>
++    <td>
++      {if $edit_uid eq "false"}
++        {if $allowUidProposalModification == "true"}
++           <select size="1" name="uidSelect" id='uidSelect' onChange="
++                document.getElementById('uid').value = 
document.getElementById('uidSelect').value;">
++            {html_options output=$uids values=$uids selected=$uid}
++          </select>
++          <input type='text' id="uid" name="uid" size="30" maxlength="40" 
value="{$uid}" 
++                style="display: none;">
++          <img src="images/lists/edit.png" onClick="$('uid').toggle();" 
++                title="{t}Modify the uid proposal{/t}">
++        {else}
++           <select size="1" name="uid">
++            {html_options output=$uids values=$uids selected=$uid}
++          </select>
++        {/if}
++      {else}                    
++          <input type='text' id="uid" name="uid" size="30" maxlength="40" 
value="{$uid}">
++      {/if}
++    </td>
++  </tr>
++  {/if}
++</table>
++
++
++<hr>
++<div class="plugin-actions">
++ <button type='submit' name='template_continue'>{t}Continue{/t}</button>
++ <button type='submit' name='edit_cancel'>{msgPool type=cancelButton}</button>
++</div>
++
++
++
++<!-- Place cursor -->
++<script language="JavaScript" type="text/javascript">
++  <!-- // First input field on page
++      focus_field('sn');
++  -->
++</script>
+Index: gosa-core/plugins/admin/users/default/templatize.tpl
+===================================================================
+--- /dev/null
++++ gosa-core/plugins/admin/users/default/templatize.tpl
+@@ -0,0 +1,42 @@
++<div class="template-wrapper">
++  <h2>{t}Applying a template{/t}</h2>
++
++  <p>
++    {t}Applying a template to several users will replace all user attributes 
defined in the template.{/t}
++  </p>
++
++  {if $templates}
++    <div class="row">
++      <div class="col s6">
++        <div class="input-field">
++          <select size="1" name="template" id="template">
++            {html_options options=$templates}
++          </select>
++          <label for="template">{t}Template{/t}</label>
++        </div>
++      </div>
++    </div>
++
++    <div class="plugin-actions card-action">
++      <button class="btn-small primary" type='submit' 
name='templatize_continue'>{msgPool type=applyButton}</button>
++      <button class="btn-small primary" type='submit' 
name='edit_cancel'>{msgPool type=cancelButton}</button>
++    </div>
++  {else}
++    <p class="no-templates">
++      {t}No templates available!{/t}
++    </p>
++
++    <div class="plugin-actions card-action">
++      <button class="btn-small primary" type='submit' 
name='edit_cancel'>{msgPool type=cancelButton}</button>
++    </div>
++
++  {/if}
++
++
++  <!-- Place cursor -->
++  <script language="JavaScript" type="text/javascript">
++    <!-- // First input field on page
++    focus_field('template');
++    -->
++  </script>
++</div>
+Index: gosa-core/plugins/admin/users/default/user-list.tpl
+===================================================================
+--- /dev/null
++++ gosa-core/plugins/admin/users/default/user-list.tpl
+@@ -0,0 +1,25 @@
++<div id="mainlist">
++
++  <div class="mainlist-header">
++   <p>{$HEADLINE}&nbsp;{$SIZELIMIT}</p>
++   <div class="mainlist-nav">
++    <table summary="{$HEADLINE}">
++     <tr>
++      <td>{$ROOT}</td>
++      <td>{$BACK}</td>
++      <td>{$HOME}</td>
++      <td>{$RELOAD}</td>
++      <td class="left-border">{t}Base{/t} {$BASE}</td>
++      <td class="left-border">{$ACTIONS}</td>
++      <td class="left-border">{$FILTER}</td>
++     </tr>
++    </table>
++   </div>
++  </div>
++  
++  {$LIST}
++</div>
++
++<div class="clear"></div>
++
++<input type="hidden" name="ignore">
diff -Nru 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1005_preg_replace_deprecation.patch
 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1005_preg_replace_deprecation.patch
--- 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1005_preg_replace_deprecation.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1005_preg_replace_deprecation.patch
        2023-07-12 23:11:12.000000000 +0200
@@ -0,0 +1,17 @@
+Description: Fix deprecation warning for calling preg_replace with NULL at 
argument #3.
+Author: Daniel Teichmann <daniel.teichm...@das-netzwerkteam.de>
+   
+--- a/html/main.php
++++ b/html/main.php
+@@ -340,6 +340,11 @@
+   set_object_info();
+ }
+ 
++/* Avoid calling preg_replace with NULL */
++if (!isset($lang)) {
++  $lang = "";
++}
++
+ /* show web frontend */
+ $smarty->assign ("title","GOsa");
+ $smarty->assign ("logo", get_template_path("images/logo.png"));
diff -Nru 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1006_fix-overflow-debug-print_a-func.patch
 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1006_fix-overflow-debug-print_a-func.patch
--- 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1006_fix-overflow-debug-print_a-func.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/1006_fix-overflow-debug-print_a-func.patch
 2023-07-12 23:11:18.000000000 +0200
@@ -0,0 +1,25 @@
+Description: Make table of print_a() scrollable and allow overflow on body. 
This makes debugLevel > 0 usable again.
+Author: Daniel Teichmann <daniel.teichm...@das-netzwerkteam.de>
+
+--- a/include/functions_debug.inc
++++ b/include/functions_debug.inc
+@@ -226,7 +226,7 @@
+       if($return_mode) {
+               return $output;
+       } else {
+-              print $output;
++              print "<div style='overflow: scroll; width: auto; max-height: 
500px;'>" . $output . "</div>";
+               return TRUE;
+       }
+ }
+--- a/html/themes/default/css/main.css
++++ b/html/themes/default/css/main.css
+@@ -9,7 +9,7 @@
+     margin: 0;
+     font-family: "LiberationSans", Arial, Verdana, sans-serif;
+     font-size: 12px;
+-    overflow-y: hidden;
++    /* overflow-y: hidden; */
+ }
+ 
+ h1 {
diff -Nru gosa-2.8~git20230203.10abe45+dfsg/debian/patches/series 
gosa-2.8~git20230203.10abe45+dfsg/debian/patches/series
--- gosa-2.8~git20230203.10abe45+dfsg/debian/patches/series     2023-02-06 
20:43:26.000000000 +0100
+++ gosa-2.8~git20230203.10abe45+dfsg/debian/patches/series     2023-07-12 
23:11:29.000000000 +0200
@@ -1,3 +1,4 @@
+1004_missing_templates.patch
 2001_fix-smarty-location.patch
 2002_fix-template-location.patch
 2003_fix-class-mapping.patch
@@ -7,3 +8,6 @@
 2007_no-pChart.patch
 2008_set-version-file-path.patch
 1002_php82-allow-dynamic-properties.patch
+1003_php-deprecations.patch
+1005_preg_replace_deprecation.patch
+1006_fix-overflow-debug-print_a-func.patch

--- End Message ---
--- Begin Message ---
Version: 12.1

The upload requested in this bug has been released as part of 12.1.

--- End Message ---

Reply via email to