Description: Tolerate dynamic properties in all classes, deprecated in PHP 8.2
Author: Daniel Teichmann <daniel.teichmann@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 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#[\AllowDynamicProperties]
 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 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#[\AllowDynamicProperties]
 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 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#[\AllowDynamicProperties]
 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, jmcnamara@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, jmcnamara@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, jmcnamara@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();
