diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000000000000000000000000000000000000..99ab470ea3861b10ce3e1871680bb6b188a3164e
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,7 @@
+# These are supported funding model platforms
+
+ko_fi: fusiondirectory
+liberapay: fusiondirectory
+open_collective: fusiondirectory
+community_bridge: fusiondirectory
+github: fusiondirectory
diff --git a/AUTHORS.md b/AUTHORS.md
index 4f4a578c9f416232ddbfbf8501edee7d62f16b0a..abeb3421ac9bf7cf72865a00924a81d276cba7a9 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -39,7 +39,7 @@ documentation and additional help.
 * Steve Moitozo <god at zilla dot us>
   Password checker
 
-* Benoit Mortier <benoit.mortier@opensides.be>
+* Benoit Mortier <benoit.mortier@fusiondirectory.org>
   Butracking, QA, French translation
 
 * Igor Muratov <migor@altlinux.org>
@@ -187,7 +187,7 @@ documentation and additional help.
 * Martin Hamant <mh@ow2.org>
   Coded the LockUser fonction for the webservice
   
-* Jonathan Swaelens <jonathan@opensides.be>
+* Jonathan Swaelens <jonathan.swaelens@fusiondirectory.org>
   QA on FusionDirectory
   RPM packaging maintener and ArchLinux Packager
   
@@ -201,7 +201,7 @@ documentation and additional help.
 * Thomas Niercke <thomas@niercke.de>
   Code and ideas for making Argonaut Events Extensible
   
-* Paola Penati <paolapenati@hotmail.com>
+* Paola Penati <paola.penati@fusiondirectory.org>
   Italian translation of FusionDirectory and the website
 
 * Martin Hamant <mh@ow2.org>
@@ -221,3 +221,17 @@ documentation and additional help.
 
 * Renato Ramonda
   Support for SSH ed25519 keys
+
+* Judicael Courant <judicael.courant@orange.com>
+  Weak random generator use in fusiondirectory-setup
+
+* Sinan Sekerci - Dreamlab
+  Security Audit of FusionDirectory
+  Full Path Disclosure
+  Cross-Site Scripting (XSS)
+  Arbitrary File Access (PNG files only)
+
+* Manuel Pellegrinet <manuel.pellegrinet@yoroi.company>
+  Security Audit of FusionDirectory
+  Cross-Site Scripting (XSS)
+  Improper session handling
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 93bc7d5228fa768050e06716b25652debaf89da9..980c8af627b5c6def45f65bc7b9792b921fd4b06 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -34,7 +34,7 @@ All projects and everyone participating in it is governed by [FusionDirectory Co
 
 We have an various channel of communications
 
-*  [#fusiondirectory, the irc channel of FusionDirectory on freenode](https://webchat.freenode.net/), channel #fusiondirectory
+*  [#fusiondirectory, the irc channel of FusionDirectory on Libera](https://web.libera.chat/), channel #fusiondirectory
 *  [FusionDirectory Users mailing list](https://lists.fusiondirectory.org/wws/info/users)
 *  [FusionDirectory dev mailing list](https://lists.fusiondirectory.org/wws/info/developpers)
 
diff --git a/Changelog b/Changelog
index 11a2a7c29678dff75914c3e7ee175c181efa720e..bfdf0a8a682d96cc60aca85ab645f575d24866fd 100644
--- a/Changelog
+++ b/Changelog
@@ -1,249 +1,2 @@
-FusionDirectory changelog
-=========================
-
-* FusionDirectory 1.0.4
-
-[Fix] Pre/post script not working properly with mail command
-[Fix] Address incorrect in source code and documentation files
-[Fix] Cleaning code for php 5.4
-[Fix] Save_object is called twice on services
-[Fix] The disk partitionning part the size should be in GB by default not mb in the fai plugin
-[Fix] There should be a password recovery link on the login page
-[Fix] Rewrote accept-to-gettext for browser language detection
-[Fix] Problem of auto inclusion of the class_pdf.inc
-[Fix] Smarty3 Support
-[Fix] Smarty3 and gettext support
-[Fix] Recovery.schema should follow LDAP naming rules
-[Fix] fdQuota.schema and argonaut.schema should follow LDAP naming rules
-[Fix] Incorrect directory for the supann schema.
-[Fix] Wrong my $path in fusiondirectory-insert-schema
-[Fix] Check for group conflicts case-insensitively
-[Fix] Correct password hooks docs
-[Fix] password Hook is called in different manner in password and userManagement.
-[Fix] Setup.php must use an absolute path for the template
-[Fix] Actions menu does not work with lighttpd
-[Fix] In style.css, line-height line 1528 seems wrong
-[Fix] The date picker is not working anymore
-[Fix] Failed to add packages in "Package list" dialog
-[Fix] Fusiondirectory-setup is wrong in connection to ldap
-[Fix] Pop-up error when locking/unlocking user
-[Fix] Line 310 of class_msgPool.inc is wrong
-[Fix] Class_filterLDAP.inc don't check correctly the base and objectStorage
-[Fix] Wizard goes into an infinite loop if the popen function is not available
-[Fix] Check if popen is allowed before using it
-[Fix] French accents in password recovery mailbody
-[Fix] Removing the code activation ob_start as it not recommended way of compression
-[Fix] When i click on the link for password recovery on the main page, it say not activated but as you can see in debug text its not
-[Fix] Option -i not in fusiondirectory-insert-schema manual
-[Fix] The code for adding icons into applications is broken
-[Fix] The code for reading image is broken in getfax.php
-[Fix] Type:8, Message:Trying to get property of non-object $date in headers.tpl
-[Fix] Popup not working with smarty3
-[Fix] Standardazing the argonaut menu service entries
-[Fix] Standardazing the spam and antivirus menu service entries
-[Fix] Standardizing log service entries
-[Fix] Standardizing fax service entries
-[Fix] Removing all obsolete opsi code from various plugins
-[Fix] Removing the dependancies to the fai.schema for systems
-[Fix] The ip should be mandatory on server, terminal and printer objects
-[Fix] The filter for windows workstations come into conflict with the network device one
-[Fix] Separation of the class_databaseManagement.inc in his own package to remove dependancy on mdb2.php
-[Fix] In the setup it still show we need more than 64MB it should be 128MB
-[Fix] The wording is not just in setup for windows pc we said "workstations" but that should be Windows workstations
-[Fix] Adapat Service.manage like action to make it wokr with argonaut 1.0
-[Fix] When restarting a service trought argonaut some LDAP error appear
-[Fix] Crash when mailmethod is in FusionDirectory config file and the user entry contains a mail addresss
-[Fix] When updating a the cn of a windows workstation, the uid is not updated
-[Fix] Copy paste is not working for winstations
-[Fix] Copy paste for terminal, server, printer, workstations mac an ip are not mandatory
-[Fix] Phone we cannot change ip and mac when doing copy/paste
-[Fix] Smarty Bug with 1.0.4 and Wheezy
-[Fix] Fusiondirectory-insert-schema dont work correctly
-[Fix] Step 2 of password recovery has been removed
-[Fix] The check for existing winstations is not working
-[Fix] The ip should be mandatory on server, terminal and printer objects
-[Fix] Filter for windows workstations come into conflict with the network device one
-[Fix] Remove the code showing the type of object in object group title member objects
-[Fix] Remove the artificial limit to two different objects in objects group
-[Fix] The refresh dns function is not correct from the system generic page
-[Fix] Cannot initialise the phoneAccount class
-[Fix] Handle ldif schema changes
-[Feature] SupportDaemon should allow to call modules method easily
-[Feature] Add spanish venezuelan into the setup
-[Feature] Adding spanish venezuelan language to FusionDirectory
-[Feature] Add Dutch into the setup
-[Feature] Adding Dutch language to FusionDirectory
-[Feature] Guide in how to make a plugin with the simple-plugin framework
-[Feature] Adresse email alternative pour Password recovery
-[Feature] Update documentation for Repository plugin
-[Feature] Creating Windows pc from the interface
-[Feature] Having the mac address next to the ip address in filter system list
-[Feature] Integration of the board plugin - a Small dashbaord for FusionDirectory
-[Feature] Simple plugin framework is mandatory and used by Recovery PAssword and Board plugin
-[Feature] Adding some Windows attributes to the printer object to use opsi usage
-[Feature] Provide ldif updates files for recovery.ldif, goto.ldif, goserver.ldif
-[Feature] Provide ldif updates files for fdQuota.ldif and argonaut.ldif
-
-* FusionDirectory 1.0.3
-
-[Feature] Improve the FusionDirectory API
-[Feature] Improve the FusionDirectory API
-[Fix] Change explication in Restoring object snapshots
-[Feature] added jeremy williame to authors
-[Feature] Adding a sasl password method
-[Fix] Spaces into response to prompt break the fusiondirectory setup command
-[Fix] Restoring snapshot isn't working anymore
-[Fix] Fusiondirectory-setup doesnt install the plugin-correctly from tar.gz
-[Feature] Use fusiondirectory-insert-schema to install others schema
-[Fix] Fusiondirectory-setup should not go into the contrib dir
-[Feature] Change color banner and go_logo
-[Feature] We should have a PHP CodeSniffer standard to check Guidelines respect
-[Fix] Rewrote the INSTALL document on how to install fusiondirectory from tar.gz
-[Fix] Remove the fusiondirectory-migrate-users program its has been merge into fusiondirectory-setup
-[Fix] Remove the debian centrics path into fusiondirectory-setup
-[Fix] Remove the debian centric dir in contrib/fusiondirectory-apache.conf
-[Fix] The fusiondirectory.conf contains all the service definition and other needed entries for all the plugins
-[Fix] The message explaining to use fusiondirectory-setup to fix classes loading is wrong
-[Fix] Removing non usefull menu text
-[Feature] Added the password recovery plugin into core
-[Fix] Create a new favicon for fusiondirectory
-[Fix] Lost password feature in Gosa - removing obsloleted code
-[Fix] The protocol of json rpc (http or https) should not be encoded in the code and be saved into the ldap
-[Fix] Incorrect include path in php_setup.inc file
-[Fix] Not enough memory for the PHP module
-[Fix] ACL to allow enabling / disabling of user accounts
-[Fix] Put all the docs togheter inside contrib/docs
-[Fix] Added cn generation parameter on install screen
-[Fix] Adding a default ou for netgroupRDN
-[Fix] PHP errors when asking logs on a new server
-[Fix] PHP error in password.tpl
-[Feature] Backported timeout seesion handler from GOsa 2.7
-[Fix] Inconsistency in coding guidelines
-[Feature] Backported locking user in color from GOsa 2.7
-[Fix] PHP errors in support Daemon
-[Fix] Error when gosaunittag not defined in ldap in class_supportDaemon.inc
-[Feature] fusiondirectory-setup parameters must be settable in command-line
-[Feature] Added migrate-repositories to fusiondirectory-setup will migrate network repos
-[Feature] Added --check-config to fusiondirectory-setup
-[Fix] Rewrote the mail collector
-[Fix] Removing the obsoleted and non maintened plugin for phpgw
-[Fix] Windows workstations are now in ou=computers by default
-[Fix] Removed the click trough gpl for fusiondirectory setup
-[Fix] In the objectgroup the filter for applications is missing in the select box
-[Fix] Added the missing passwordMethod::is_harmless in class_password.inc
-[Feature] Use the pam_check_host_attr feature when using the trust model
-[Fix] The selection filter for the samba plugins workstations in the user tab don't show windows pc
-[Fix] In object group we cannot select windows pc
-[Fix] Moved class from include/utils to include to be more consistant
-[Fix] Moved all xsd files into contrib
-[Fix] Removed obsolete function function set_acl() from class_tabs.inc
-[Fix] Removed leftover var from copypastehandler.inc
-[Fix] Removed non used function function saveFilter(, ) in functions.inc
-[Fix] Removed non used function function obj_is_readable(, , ) in functions.inc
-[Fix] Removed svn_version can be removed in functions.inc
-[Fix] Removed the goto-si code in function.inc
-[Fix] Removed get_gosa_version() and replaced by a static var in variables.inc
-[Fix] Changed the HTTP_GOSA_KEY to HTTP_FD_KEY
-[Fix] Removed obsoleted socket class for the old goto-si code
-[Fix] Renamed gosa_array_merge to fusiondirectory_array_merge
-[Fix] Renamed gosa_log to fusiondirectory_log
-[Fix] Changed session name from GOsa to FusionDirectory
-[Fix] Changed the name of extensions in error message from GOsa to FusionDirectory
-[Fix] Removed feedback step in setup
-[Fix] Removed the internet explorer 6 suppor for png
-[Fix] Removed fixed path from setup
-[Fix] Removed samba rid and sid from setup
-[Fix] Removed space in login user / password
-[Fix] Removed leftover of old mysql logging system
-[Fix] Incorrect description of posixGroup created
-[Fix] LDAP query failed : 'root object' is missing
-[Fix] Undefined variable: _SERVERREMOTE_ADDR
-[Fix] Bug when generating config with the wizard when snapshot not selected
-[Fix] Adding catalan support in fusiondirectory
-[Fix] jpegPhoto automatically changed/altered when updating user information
-[Fix] Removed the smarty plugins file from the include directory
-[Fix] Problem in fd setup when migrating from gosa2.6
-[Fix] The dns and logging services don't have the start/stop/restart button
-[Fix] The dhcp service misses the stop/start/restart button in the service view
-[Fix] Problem on Copy & paste wizard for a server or workstation
-[Fix] Remove show opsi based client from the code
-[Feature] Adding (Czech Republic) to the supported language
-[Fix] Gofon plugin is not structured correclty relating to directories
-[Fix] Gofax plugins dir are wrong
-[Feature] Putting supann into official plugins
-[Feature] Putting quota into official plugins
-[Feature] Putting openstack-compute into official plugins
-[Fix] The netgroup plugin doesnt have an icon in the list wiew
-[Feature] Putting an icon in the system list showing that there is an argonaut service presnt on this system
-[Fix] Renaming the netatalk plugin to netatalkAccount to be more in sync with other plugins
-[Feature] Making a client argonaut service
-[Feature] Adding support for custom release in fai Repository
-[Feature] Architectures should be in FAIrepository value
-[Fix] Moving all plugins systems files to /var/cache/fusiondirectory/<name of the plugin>/
-[Fix] Removed kerberos-heimdal leftover
-[Fix] When creating a terminal it yell at me that wake event doesnt exist
-[Fix] Remove all non needed readme in the plugins
-[Feature] An abstraction Layer is now used to connect to all database : MDB2
-[Feature] Button to launch ladp2bind from the DNS configuration page
-[Fix] Fai branch not created when adding a repository
-[Fix] Dhcp/Parent node on Winstation object not changeable
-[Fix] Package descriptions don't work if + in name
-[Fix] PHP errors in goto plugin
-[Fix] There is a problem when there is not an ntp server added to the workstations, the saving fails
-[Fix] Showing the log interface without log on a unsaved workstation
-[Fix] PHP errors in class_workstationService.inc
-[Fix] Error message when I click on the tab Deployment summary of a workstation
-[Fix] Wrong icon for Systems option on main FD interface
-[Fix] Removing the obsoleted and non maintened plugin for phpgw
-[Fix] Cleaning code for php 5.4
-[Fix] Removing obsoleted code from apache plugin
-[Fix] In applications remove the restriction for c:"
-[Fix] Removing the export xls from ldapmanager plugin
-[Fix] Remove goto-si code from class_termDns.inc
-[Fix] The plinfo fonction should always be the latest function in the .inc files
-[Fix] Update the datbase schema in gophon
-[Fix] Removing mail addons
-[Fix] Removing non maintened files for nagios 2.0
-[Fix] Removing contrib code we don't want to maintain and usefull only for a little amount of people
-[Fix] removing gosa.conf leftover, putting @fusiondirectory.org email address in examples
-[Fix] switched from tab to space in the code
-[Fix] Renamed gosa_array_merge to fusiondirectory_array_merge
-[Fix] Renamed gosa_log to fusiondirectory_log
-[Fix] Cleaning goto / systems plugins
-[Fix] Provided fusiondirectory dhcp schema modified without changing openldap OID
-[Fix] Invalid structural object class chain (account/person) in the samba plugin
-[Fix] dhcpHost not removed if system is removed
-[Fix] FSF address incorrect in source code and documentation files
-
-
-* FusionDirectory 1.0.2
-  - Removed old GOsa-si code
-  - Added jsonrpc client library
-  - Added new daemon class with json rpc methods
-  - All deployment are now done through the Argonaut json rpc server
-  - New system to get the packages and debconf without a local mirror
-  - Cvs import fixes to make it more flexible and usable
-  - Corrected css for Firefox 5 and beyond
-  - New setup command fusiondirectory-setup that help fixes common setup issues
-  - All the console tools are in perl, most are in fusiondirectory-setup
-  - Added tools to easily convert and upload schema in an ldap-tree
-  - Completely test and rewrote the help to use php safe mode
-  - Put all the application data into /var/cache/fusiondirectory
-  - Fixed timezone issues
-  - Corrected FSF address
-  - Added the netgroups plugin into official sources
-  - Removed the opsi (pending rewrite)
-  - Removed log plugin, everything is done with the rsyslog plugin
-
-* FusionDirectory 1.0.1
-  - New Release
-  - Removed advanced options from setup
-  - Corrected online help
-  - Corrected wording on plugins
-  - Removed the need for magic_quotes_gpc
-  - Removed the fusiondirectory-desktop package
-  - Removed program version checking from svn
-  - Added the apache plugin
-  - Put final logo
-  - Full italian language
+See Changelog.md
 
diff --git a/Changelog.md b/Changelog.md
index b37aadd11f972343b28b6ab4daf6199dada99bc4..4609da665a4c94ff80bf2f8de70cd34a74ff1daf 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,40 +1,67 @@
-## %"FusionDirectory 1.3.1" - 2019-07-04
+## %"FusionDirectory 1.3.1" - 2022-09-09
 
 ### Added
 
 #### fusiondirectory
 - fd#5985 We don't have LDAP tab on FusionDirectory configuration
+- fd#6152 Add subscription screen
 
 #### fusiondirectory-plugins
 - fd-plugins#5911 supannRefId field is missing for "etablissement"
 - fd-plugins#5938 Make %passwordClear% available to sambaAccount hooks
 - fd-plugins#5939 create icons for ipmi and weblink
 - fd-plugins#5940 We don't have LDAP tab on FusionDirectory configuration
+- fd-plugins#5956 add mapping sinaps to Fd mapping for diffusion
 - fd-plugins#5957 creating icons for the sinaps plugin
 
 ### Changed
 
+#### fusiondirectory
+- fd#6024 Cleanup session handling
+- fd#6038 Move the "Click the 'Edit' button" message to the left
+- fd#6220 [CodeStyle] - 1.3.1 Requires adaptation to align code style with 1.4
+- fd#6221 [Enhancement] - Change CI 1.3.1 - CodeStyle to refelect 1.4 rules
+
 #### fusiondirectory-plugins
+- fd-plugins#5897 When a user is removed from Sinaps, we need to send back a deletion acquisition
 - fd-plugins#5913 Avoid mass acquistion when editing group gidNumber
 - fd-plugins#5948 description of a user should'nt be updated from SINAPS
+- fd-plugins#5993 _getTabFooter has been renamed getTabFooter
+- fd-plugins#6103 Adapt 1.3-fixes code to subscription core merge
+- fd-plugins#6180 [CodeStyle] 1.3.1 Plugin - Requires adaptation to align code style with 1.4
 
 ### Removed
 
 #### fusiondirectory-plugins
 - fd-plugins#5901 Remove Google+ from personal social accounts tab
+- fd-plugins#5992 Email icon should be moved to core
 
 ### Fixed
 
 #### fusiondirectory
+- fd#5862 filtering and "Unknown element type specified: !"
 - fd#5942 PHP >= 7.2 triggering error when count() is called with invalid countable
 - fd#5967 Systems dashboard crashes
+- fd#5974 Workflow problem when applying a template to an object triggers errors
 - fd#5978 when renaming branch aka department roles are not updated correctly
 - fd#5983 Write ACL on user/userRoles/groupsMembership not working when not having full user/user read right
 - fd#5987 ImagickException are not catched when showing an ImageAttribute
+- fd#5995 Audit events DN are too long
 - fd#5997 Incorrect error message when the mail cannot be sent by recovery
+- fd#6005 Problem with gidNumber in posix group template
 - fd#6006 expiration date in dashboard is 02.01.1970
+- fd#6017 IntAttribute badly handle empty value when minimum is set
+- fd#6023 Email icon missing from core
+- fd#6030 correct the get help section in the readme.md
+- fd#6097 Smarty path is not set correctly by fusiondirectory-setup --write-vars
+- fd#6122 Problems with FD web setup
+- fd#6142 The filter for configuration is wrong in fusiondirectory-setup
+- fd#6173 PHP error: Array to string conversion in class_fiInventory.inc:199
+- fd#6222 [1.3.1] - Fixing LDAP Search filter code style
 
 #### fusiondirectory-plugins
+- fd-plugins#5825 LDAP error in audit plugin
+- fd-plugins#5912 Unable to spread a user to FD from sinaps if the user is affected to an etablissement
 - fd-plugins#5917 flag_ownmailbox cannot be used with partage mail method
 - fd-plugins#5918 SINAPS : acquisition couldn't be sent because primary affectation isn't set
 - fd-plugins#5923 cname record appear on another domain when they contain the machine cn
@@ -44,6 +71,28 @@
 - fd-plugins#5944 add addvalues/delvalues documentation
 - fd-plugins#5945 unable to add SINAPS Structure
 - fd-plugins#5949 Systems dashboard crashes
+- fd-plugins#5963 error in SINAPS workflow
+- fd-plugins#5966 dovecot connection error
+- fd-plugins#5976 Problem with gidNumber in posix group template
+- fd-plugins#5970 Compatibility error between sudo and mixedgroup plugins
+- fd-plugins#5978 GPG key addition crash
+- fd-plugins#5991 ORCID last character may be 'X' and not a number
+- fd-plugins#6000 correct the get help section in the readme.md
+- fd-plugins#6063 Argument 4 passed to DhcpHostsAttribute::postLdapSave() must be of the type array, string given
+- fd-plugins#6079 reload dns map from dns interface didn't work , but from server it works
+- fd-plugins#6125 PHP error: Array to string conversion in class_fiInventory.inc:199
+
+### Security
+
+#### fusiondirectory
+- fd#6021 Failed LDAP operations may appear as Success
+- fd#6135 Security problems uncovered by audit
+- fd#6086 XSS in login screen
+- fd#6136 Weak random generator use in fusiondirectory-setup
+- fd#6137 XSS in management filters
+- fd#6217 [Security] - Set Cookie settings to TRUE for option "HttpOnly"
+- fd#6219 [security] - Cookie session is not renewed or set after authentification
+
 
 ## %"FusionDirectory 1.3" - 2019-03-04
 
@@ -3270,3 +3319,505 @@
 
 #### fusiondirectory-plugins
 - fd-plugins#2140 the template don't escape the html inside itself
+
+## %"FusionDirectory 1.0.4" - 2012-06-30
+
+### Added
+
+#### fusiondirectory
+- fd#913 There should be a password recovery link on the login page
+- fd#1018 supportDaemon should allow to call modules method easily
+- fd#1038 Handle schema changes
+- fd#1041 we need to add a new parameter to fusiondirectory.conf manpage asteriskParameterDelimiter
+- fd#1118 Adresse email alternative pour Password recovery
+- fd#1173 javascript should contain an inArray function
+- fd#1204 add spanish venezuela into the setup
+- fd#1205 we need to add the locale dir and the config for transifex es_ve
+- fd#1209 add 2 more attributes in network printer
+- fd#1220 Automatic return to login page after password change
+- fd#1246 ambiguous error message in installation check
+- fd#1280 provide ldif update files for recovery.ldif and goto.ldif
+- fd#1308 add one more attribute in network printer
+- fd#1328 add the entries in fusiondirectory.conf for board plugin
+- fd#1402 merge simple-plugin 1.0 into core
+
+#### fusiondirectory-plugins
+- fd-plugins#1032 asterisk application parameter delimiter changed from | to , (gosa bug 1177)
+- fd-plugins#1207 add 2 more attributes in network printer
+- fd-plugins#1260 we want to provision Windows pc from the interface
+- fd-plugins#1266 having the mac address next to the ip address in filter system list
+- fd-plugins#1356 integrating board into fusiondirectory-plugins
+- fd-plugins#1374 Handle schema changes
+
+### Changed
+
+#### fusiondirectory
+- fd#674 cleaning code for php 5.4
+- fd#984 accept-to-gettext should be re-wrote
+- fd#1069 Check for group conflicts case-insensitively
+- fd#1096 FusionDirectory menu should use plInfo
+- fd#1100 Plugin header system should allow to have multiple plugins on the same page
+- fd#1134 dn2base should handle a sesond parameter
+- fd#1211 style.css should be adapted to have some css about simplePlugin
+- fd#1243 Rewrite password recovery plugin with simplePlugin framework
+- fd#1270 remove the artificial limit to two different objects in objects group
+- fd#1277 rework the README.cnconfig
+- fd#1278 all the manpages from fusiondirectory should be updated
+- fd#1358 in the setup it still show we need more than 64MB it should be 128
+- fd#1359 the wording is not just in setup for windows pc we said "workstations" but that should be Windows pc
+- fd#1438 board plugin must go in addons
+
+#### fusiondirectory-plugins
+- fd-plugins#675 cleaning code for php 5.4
+- fd-plugins#1238 standardazing the argonaut menu service entries
+- fd-plugins#1239 standardazing the spam and antivirus menu service entries
+- fd-plugins#1240 standardizing log service entries
+- fd-plugins#1241 standardizing fax service entries
+- fd-plugins#1276 the ip should be mandatory on server, terminal and printer objects
+- fd-plugins#1309 Board should use simplePlugin
+- fd-plugins#1414 getFAIstatus.php should not be packaged in main
+- fd-plugins#1421 move the include/jsonRPCClient.php to the argonaut pacakge
+
+### Removed
+
+#### fusiondirectory
+- fd#1216 remove the check for the library as fusiondirectory-makentpassword use it internaly
+- fd#1224 we should remove the code activation ob_start as it not recommended way of compression
+- fd#1257 moving the update-locales script to management tools
+- fd#1271 remove the code showing the type of object in object group title member objects
+- fd#1302 Step 2 of password recovery should be removed
+- fd#1327 remove repositoryBranchHook from manpage
+- fd#1382 the supportDaemon.inc class should be moved the argonaut plugin
+- fd#1415 Argonaut does not support message sending, the feature should be removed
+- fd#1416 getFAIstatus.php should not be packaged in main
+- fd#1420 move the include/jsonRPCClient.php to the argonaut pacakge
+- fd#1448 remove dead code from the source
+
+#### fusiondirectory-plugins
+- fd-plugins#1037 update_entries function should be remove from supportDaemon
+- fd-plugins#1254 remove old code saving goSyslogServer
+- fd-plugins#1261 removing all obsolete opsi code from various plugins
+- fd-plugins#1273 this code is not correct now that the fusiondirectory.conf contains all the entries
+
+### Fixed
+
+#### fusiondirectory
+- fd#508 pre/post script not working properly with mail command
+- fd#586 FSF address incorrect in source code and documentation files
+- fd#999 Problem of auto inclusion of the class_pdf.inc
+- fd#1011 smarty3 with gettext generate funky errors :/
+- fd#1021 recovery.schema should follow LDAP naming rules
+- fd#1031 Web interface silently fails with passwords > 40 characters in length (gosa bug 1168)
+- fd#1039 wrong my $path in fusiondirectory-insert-schema
+- fd#1084 password Hook is called in different manner in password and userManagement.
+- fd#1106 setup.php must use an absolute path for the template
+- fd#1120 In style.css, line-height line 1528 seems wrong
+- fd#1121 The date picker is not working anymore
+- fd#1163 fusiondirectory-setup is wrong in connection to ldap
+- fd#1180 Pop-up error when locking/unlocking user
+- fd#1181 Line 310 of class_msgPool.inc is wrong
+- fd#1183 class_filterLDAP.inc don't check correctly the base and objectStorage
+- fd#1214 Wizard goes into an infinite loop if the popen function is not available
+- fd#1221 French accents in password recovery mailbody
+- fd#1225 when i click on the link for password recovery on the main page, it say not activated but as you can see in debug text its not
+- fd#1226 option -i not in fusiondirectory-insert-schema manual
+- fd#1230 Type:8, Message:Trying to get property of non-object $date in headers.tpl
+- fd#1242 Password recovery doesn't use the configured set address
+- fd#1245 installation doesn't continue after installing "missing" driver
+- fd#1248 [wizard] Add non blocking test for MDB2 drivers on wizard checks step.
+- fd#1256 error in rsyslog view
+- fd#1264 Debian 6 - commande : fusiondirectory-insert-schema
+- fd#1275 this code is not correct now that the fusiondirectory.conf contains all the entries
+- fd#1281 change the name of the reponsible person inside all the schema and ldif
+- fd#1299 fusiondirectory-insert-schema dont work correctly
+- fd#1333 supportDaemon can cause some PHP errors
+- fd#1334 the passwordRecoveryUseAlternate fonction is no longer in the code
+- fd#1346 when restarting a service trought argonaut some LDAP error appear
+- fd#1347 in 1.0.4 with patch to support Service.manage like action it doesn't work
+- fd#1360 complete the INSTALL to mention how to work with or without mdb2.php from tar.gz
+- fd#1410 password recovery translation
+- fd#1424 wrong copyright
+- fd#1464 error in update-goserver.ldif and update-goto.ldif
+
+#### fusiondirectory-plugins
+- fd-plugins#848 save_object is called twice on services
+- fd-plugins#1019 Some systems plugins call for deprecated ldap2zone action
+- fd-plugins#1022 fdQuota.schema and argonaut.schema should follow LDAP naming rules
+- fd-plugins#1036 Incorrect directory for the supann schema.
+- fd-plugins#1104 Some plugins have bad names in plInfo
+- fd-plugins#1160 Failed to add packages in "Package list" dialog
+- fd-plugins#1215 check if popen is allowed before using it
+- fd-plugins#1228 the code for adding icons into applications is broken
+- fd-plugins#1229 the code for reading image is broken in getfax.php
+- fd-plugins#1232 popup not working with smarty3 :/
+- fd-plugins#1252 error in rsyslog view
+- fd-plugins#1258 FSF address incorrect in source code and documentation files
+- fd-plugins#1267 the refresh dns is not correct from the system generic page
+- fd-plugins#1269 Input of already existing IP
+- fd-plugins#1274 filter for windows workstations come into conflict with the network device one
+- fd-plugins#1283 the check for existing winstations is not working
+- fd-plugins#1284 copy paste is not working for winstations
+- fd-plugins#1285 in copy paste for terminal, server, printer, workstations mac an ip are not mandatory
+- fd-plugins#1286 in phone we cannot change ip and mac when doing copy/paste
+- fd-plugins#1306 List DHCP not displayed in full
+- fd-plugins#1321 When updating a winstation cn the uid is not updated
+- fd-plugins#1332 fd crash when mailmethod is in config file and the entry contains a mail addresss
+- fd-plugins#1349 in 1.0.4 with patch to support Service.manage like action it doesn't work
+- fd-plugins#1350 error smarty with addressbook plugins
+- fd-plugins#1380 switch off action does not do anything on servGeneric
+- fd-plugins#1399 [board-plugin] Missing counters for some elements
+- fd-plugins#1400 [board-plugin] Missing uppercases.
+- fd-plugins#1401 [board-plugin] Missing icon for systems counter
+- fd-plugins#1890 gotoGroupAdminPrinter attribute is missing in system-fd.schema
+
+## %"FusionDirectory 1.0.3" - 2012-04-30
+
+### Added
+
+#### fusiondirectory
+- fd#43 Lost password feature in Gosa
+- fd#119 add cn generation parameter on install screen
+- fd#273 add sasl support for password
+- fd#454 Features from GOsa 2.7 that should be in FusionDirectory
+- fd#471 fusiondirectory-setup parameters must be settable in command-line
+- fd#483 adding --check-config to fusiondirectory-setup
+- fd#506 FAQ: scripts for Pre and Post events
+- fd#528 Possibility to use the pam_check_host_attr feature when using the trust model
+- fd#554 catalan support in fusiondirectory
+- fd#598 in object group we cannot select windows pc
+- fd#632 an abstraction layer so be used to allow different databases to be used
+- fd#665 modify fusiondirectory-insert-schema to install ldapns.schema
+- fd#668 add the missing passwordMethod::is_harmless in class_password.inc
+- fd#716 migrate-repositories option of fusiondirectory-setup will migrate network repos
+- fd#736 making a client argonaut service
+- fd#773 we must test for mdb2 in the setup
+- fd#805 fusiondirectory-setup must generate the SUPANN_DIR also
+- fd#806 all the templates should be read from /var/cache/fusiondirectory/mail
+- fd#807 all the templates should be read from /var/cache/fusiondirectory/system
+- fd#808 all the templates should be read from /var/cache/fusiondirectory/asterisk
+- fd#810 fusiondirectory-setup must generate the ASTERISK_DIR also
+- fd#811 fusiondirectory-setup must generate the SYSTEMS_DIR also
+- fd#812 fusiondirectory-setup must generate the MAIL_DIR also
+- fd#822 fusiondirectory-setup should create the mail, systems, asterisk and supann dir in the fusiondirectory cache
+- fd#824 the fusiondirectory.conf should contains all the service definition and other needed entries for all the plugins
+- fd#829 adding a default ou for netgroupRDN
+- fd#831 we need to modify fusiondirectory insert-schema to insert the recovery schema by default
+- fd#883 Architectures should be in FAIrepository value
+- fd#909 Add custom repositorories
+- fd#914 creating a new favicon for fusiondirectory
+- fd#916 No picture for the Openstack compute plugin
+- fd#917 password recovery doesnt have an icon for the main menu
+- fd#922 when suppan is installed but mapping in fd conf is not we got this error, we should provide a default branch in class_config.inc
+- fd#936 add (Czech Republic) to the locale
+- fd#941 DNS record : SRV type is properly useable in dns plugin
+- fd#942 fusiondirectory-insert-schema installation of others schema
+- fd#944 add the missing option to the fusiondirectory-setup manpages
+- fd#977 the sasl password method should have an option for exop operations
+- fd#978 the saslRealm and saslExop should be put in the fusiondirectory manpage
+
+#### fusiondirectory-plugins
+- fd-plugins#357 button to launch ladp2bind from the DNS configuration page
+- fd-plugins#490 cleaning goto / systems plugins
+- fd-plugins#585 i18n nb.po for NIS netgroups plugin
+- fd-plugins#625 in getxls.php the path should be in variables.inc
+- fd-plugins#634 add new AUTHORS
+- fd-plugins#679 integrate the nova user ldap plugin into FusionDirectory
+- fd-plugins#729 making a client argonaut service
+- fd-plugins#735 putting suppan plugin into core plugins
+- fd-plugins#739 we must create a service to store the config of all the argonaut tools
+- fd-plugins#742 fai branc not created when adding a repository
+- fd-plugins#863 ext4 is missing in the fai plugin
+- fd-plugins#884 Architectures should be in FAIrepository value
+- fd-plugins#889 an icon in the system list showing that there is an argonaut service presnt on this system
+- fd-plugins#896 Add custom repositorories
+- fd-plugins#918 we added the support of the custom release to system deployment plugin but the fai.schema miss an attribute for this
+- fd-plugins#937 add (Czech Republic) to the locale
+- fd-plugins#953 the netgroup plugin doesnt have an icon in the list wiew
+- fd-plugins#959 putting quoat into official plugins
+
+### Changed
+
+#### fusiondirectory
+- fd#502 Remove the smarty plugins file from the include directory
+- fd#520 removing fixed path from setup
+- fd#541 the version number is not visible enough
+- fd#588 the branch for computers should be ou=computers no ou=winstations by default
+- fd#592 cleaning goto / systems plugins
+- fd#620 rewrite the mail collector
+- fd#621 the plinfo fonction should always be the latest function in the .inc files
+- fd#628 gosamba.pl should be rewrote and put in fusiondirectory-setup
+- fd#633 change the HTTP_GOSA_KEY to HTTP_FD_KEY
+- fd#637 move all xsd files into contrib and see if there is an issue
+- fd#655 move class from include/utils to include to be more consistant
+- fd#670 windows workstations are now in ou=computers
+- fd#672 this function from class_posixAccount.inc should be in function.inc
+- fd#673 this function should be in functions.inc
+- fd#718 install-directories needs to be rewrote
+- fd#721 Indentation consistency and useless ldap attributes in supportDaemon
+- fd#724 useless ldap attributes in supportDaemon
+- fd#725 changing the sentence at the end of setup of fusiondirectory
+- fd#768 session should time out after 10 min
+- fd#800 all the templates should be read from /var/cache/fusiondirectory/supann
+- fd#823 the posix plugin should read is template from SYSTEMS_DIR
+- fd#859 put all the docs togheter inside contrib/docs
+- fd#861 Not enough memory for the PHP module
+- fd#866 change color banner and go_logo
+- fd#931 the message explaining to use fusiondirectory-setup to fix classes loading is wrong
+- fd#945 remove the debian centrics path into fusiondirectory-setup
+- fd#949 we should remove the debian centric dir in contrib/fusiondirectory-apache.conf
+- fd#954 rewrite the INSTALL document on how to install fusiondirectory from tar.gz
+- fd#969 change explication in "Restoring object snapshots"
+- fd#976 the keyword should be renamed as saslRealm to be more in sync with other keywords
+
+#### fusiondirectory-plugins
+- fd-plugins#597 in applications remove the restriction for c:\
+- fd-plugins#619 show opsi based clients should be removed ?
+- fd-plugins#626 fix_munged.php to be converted to perl
+- fd-plugins#631 update the datbase schema in gophon
+- fd-plugins#651 the plinfo fonction should always be the latest function in the .inc files
+- fd-plugins#728 replacing the code that loo into the config file for argonautServer
+- fd-plugins#814 all the templates should be read from /var/cache/fusiondirectory/asterisk
+- fd-plugins#815 all the templates should be read from /var/cache/fusiondirectory/system
+- fd-plugins#816 all the templates should be read from /var/cache/fusiondirectory/mail
+- fd-plugins#817 moving /etc contents to contrib to be more correct for the mail plugin
+- fd-plugins#819 removing the encoding file from /etc and putting it in contrib in the system plugin
+- fd-plugins#843 file from the gofon etc/asterisk plugin should go to contrib/asterisk
+- fd-plugins#865 in the fai partion disk plugin the setup storage checkbox should be checked by default
+- fd-plugins#894 split the argonautconfig service
+- fd-plugins#924 Service names should go into the LDAP
+- fd-plugins#930 renaming the netatalk plugin to netatalkAccount to be more in sync with other plugins
+- fd-plugins#961 gofon plugin is not structured correclty relating to directories
+- fd-plugins#962 gofax plugins dir are wrong
+
+### Removed
+
+#### fusiondirectory
+- fd#171 second mandatory field in department / country is not checked for empty
+- fd#485 removing samba rid and sid from setup
+- fd#495 removing all old GOsaSupportdaemon code
+- fd#496 the mailqueue plugin use goto si for his functions
+- fd#501 i propose to remove the click trough gpl for fusiondirectory setup
+- fd#591 remove leftover of old mysql logging system
+- fd#594 remove the internet explorer 6 suppor for png
+- fd#622 remove the goto-si code in function.inc
+- fd#623 get_gosa_version() should be removed and replace by a static var in variables.inc
+- fd#641 svn_version can be removed in functions.inc
+- fd#647 remove non used function in functions.inc
+- fd#648 remove non used function function obj_is_readable($dn, $object, $attribute) in functions.inc
+- fd#649 remove non used function function saveFilter($a_filter, $values) in functions.inc
+- fd#650 remove obsolete function function set_acl($acl) from class_tabs.inc
+- fd#683 remove the opsi stuff from the fusiondirectory.conf
+- fd#687 now that fusiondirectory is only for kolab22 we should remove kolab from config
+- fd#694 removing the obsoleted and non maintened plugin for phpgw
+- fd#818 removing the encoding file from /etc and putting it in contrib in the system plugin
+- fd#948 remove the fusiondirectory-migrate-users program its has been merge into fusiondirectory-setup
+
+#### fusiondirectory-plugins
+- fd-plugins#618 mail addons should be removed
+- fd-plugins#627 remove goto-si code from class_termDns.inc
+- fd-plugins#630 removing the code for kolab1
+- fd-plugins#638 look if this can really be removed from class_servApacheEditVhost.inc
+- fd-plugins#653 the export xls should be removed from ldapmanager plugin
+- fd-plugins#693 removing the obsoleted and non maintened plugin for phpgw
+- fd-plugins#825 Remove all non needed readme in the plugins
+- fd-plugins#878 the cleanup option should be removed from the argonaut config service because its mandatory
+- fd-plugins#964 remove show opsi based client from the code
+
+### Fixed
+
+#### fusiondirectory
+- fd#330 FSF address incorrect in source code and documentation files
+- fd#409 shadowLastChange Not set if POSIX extensions added latter
+- fd#431 ACL to allow enabling / disabling of user accounts
+- fd#473 fusiondirectory-setup -  Bad tests on directories rights
+- fd#475 fusiondirectory setup --install-plugins should launch the update of FD locales / cache
+- fd#476 problem in fd setup when migrating from gosa2.6
+- fd#477 LDAP query failed : 'root object' is missing
+- fd#484 bug when generating config with the wizard when snapshot not selected
+- fd#488 configuration file path not settable in variables.inc
+- fd#489 error : argonautServer not defined in config - suite
+- fd#491 Hardcoded dir name in install_plugins function
+- fd#492 No tests on directory path entered by user for plugin installation
+- fd#500 the glp licence use for the setup is an old version we sould put there the new version
+- fd#504 Cache subdirectories creation missing step in INSTALL file
+- fd#514 Classes and Locales not correctly upgraded
+- fd#518 skip space in login
+- fd#519 fusiondirectory-setup not operational with perl version < 5.10
+- fd#521 the vacation dir should be a in variables.inc also
+- fd#522 fixed path in setup for php
+- fd#523 searching for fixed path in fusiondirectory
+- fd#556 Incorrect description of posixGroup created
+- fd#565 jpegPhoto automatically changed/altered when updating user information
+- fd#567 FD allows DNS entries with '_' (underscores) in hostnames
+- fd#577 Package descriptions don't work if "+" in name
+- fd#589 Erreur PHP "Undefined variable: _SERVERREMOTE_ADDR"
+- fd#639 when there is no argonaut server we got an error in the log
+- fd#640 when there is no dir with data from fai for the system we got errors in the logs
+- fd#642 in functions.inc the  sambaMachineAccountRDN should be ou=computers
+- fd#646 remove leftover var from copypastehandler.inc
+- fd#654 the export xls should be removed from ldapmanager plugin
+- fd#662 when just typing the fusiondirectory-schem2ldif i got an error
+- fd#663 when running fusiondirectory-schema2ldif i got this error
+- fd#664 fusiondirectory-schema2ldif doesnt insert the return carriage correctly
+- fd#666 fusiondirectory-insert-schema doesnt install goto-mime.schema
+- fd#667 The selection filter for the samba plugins workstations in the user tab don't show windows pc
+- fd#669 in the objectgroup the filter for applications is missing in the select box
+- fd#671 uid=pcwin005$,ou=computers,dc=labo,dc=opensides,dc=be is not a user and should not be show to be migrated in the user section
+- fd#709 the cn of the system admin is not right in fusiondirectory setup
+- fd#714 Duplicated code in index.php
+- fd#715 migrate-repositories option of fusiondirectory-setup should check FAIclass
+- fd#727 replacing the code that loo into the config file for argonautServer
+- fd#730 PHP errors in class_supportDaemon.inc
+- fd#732 error when gosaunittag not defined in ldap in class_supportDaemon.inc
+- fd#741 PHP errors in support Daemon
+- fd#757 PHP_DIR is wrongly put in the include PHP path
+- fd#761 Inconsistency in coding guidelines
+- fd#777 PHP error in password.tpl
+- fd#778 tokens is treated like it needs to be migrated
+- fd#779 Weird french translation in migrate step
+- fd#795 Erreur documentation
+- fd#839 The name of the password generator for nt changed names, so we need to change in the setup
+- fd#844 PHP errors when asking logs on a new server
+- fd#860 Incorrect include path in php_setup.inc file
+- fd#886 the protocol of json rpc (http or https) should not be encoded in the code and be saved into the ldap
+- fd#891 Unable to load the User Nova tab
+- fd#901 check the copyright is correct on all files
+- fd#928 The icon path for password recovery is wrong
+- fd#950 fusiondirectory-setup should not go into the contrib dir
+- fd#952 fusiondirectory-setup doesnt install the plugin correctly from tar.gz
+- fd#960 restoring snapshot isn't working anymore
+- fd#963 spaces into response to prompt break the fusiondirectory setup command
+- fd#973 when switching a user to sasl it doesnt remove the samba hases from the user entry in ldap
+- fd#974 when switching a user to sasl and going to password change it accept to change and generate an error
+- fd#975 when creating a new user and selecting sasl as password method it still write samba entries
+- fd#982 FD-core: setup wizard starts in English regardless of language requested by browser
+- fd#983 FD-core: language list in setup wizard is always (partly) translated into Czech, even in case when wizard started in English
+- fd#990 when the keyword is missing we get php errors in salspassword method
+- fd#992 In setup, automatic option for language should be the first one
+- fd#1005 when there is more than one argonaut server configured it doesnt work at all it just say nothing is there
+
+#### fusiondirectory-plugins
+- fd-plugins#284 provided fusiondirectory dhcp schema modified without changing openldap OID
+- fd-plugins#287 invalid structural object class chain (account/person)
+- fd-plugins#312 dhcp/Parent node on Winstation object not changeable
+- fd-plugins#505 Software Deployment - Debug message visible in production mode
+- fd-plugins#553 dhcpHost not removed if system is removed
+- fd-plugins#562 Error message when I click on the tab "Deployment summary" of a workstation
+- fd-plugins#572 The required field 'NTP server' is empty!
+- fd-plugins#695 Wrong icon for "Systems" option on main FD interface
+- fd-plugins#710 in the nova plugin we don't have the remove button
+- fd-plugins#726 we missed the start/stop/restart button on the argonaut service
+- fd-plugins#731 PHP errors in class_workstationService.inc
+- fd-plugins#733 showing the log interface without log on a unsaved workstation
+- fd-plugins#734 there is a problem when there is not an ntp server added to the workstations, the saving fails
+- fd-plugins#737 PHP errors in goto plugin
+- fd-plugins#748 PHP error caused by servDHCP
+- fd-plugins#766 Address book should follow code guidelines
+- fd-plugins#776 LDAP Manager: incomplete change of field ("," -> ";") separator for CSV files
+- fd-plugins#836 when creating a terminal it yell at me that wake event doesnt exist
+- fd-plugins#841 [openstack-compute] - Mismatch in directory naming
+- fd-plugins#842 [mail-plugin] missing mailMethodKolab class
+- fd-plugins#867 the argonaut-fuse config service display an error vhen saving to ldap
+- fd-plugins#885 the protocol of json rpc (http or https) should not be encoded in the code and be saved into the ldap
+- fd-plugins#890 now we have all the release on the mirror evne non installable one on the filer list in  List of deployment classes and products
+- fd-plugins#897 the serverrepository service should not create ou=xxx,ou=fai if its not an install release
+- fd-plugins#902 check the copyright is correct on all files
+- fd-plugins#920 the package class creation in system deployement has to store the custom release if used into the package class
+- fd-plugins#929 renaming the novauser to novaaccount to be in sync with other plugins
+- fd-plugins#940 DNS record : SRV type is properly useable in dns plugin
+- fd-plugins#958 ACLs should be used in templates
+- fd-plugins#970 Quota interface
+- fd-plugins#972 in the rsyslog plugin we got an error when we try to use the system log plugin
+- fd-plugins#985 when clicking on the rsyslog addons i got ton of error about static methods
+- fd-plugins#986 error when clicking into the nova icon in the my account
+- fd-plugins#988 error when saving a dns service after editing it
+- fd-plugins#989 Problem on Copy & paste wizard for a server or workstation
+- fd-plugins#1000 the dhcp service misses the stop/start/restart button in the service view
+
+## %"FusionDirectory 1.0.2" - 2011-09-26
+
+### Added
+
+#### fusiondirectory
+- fd#138 script for .schema to .ldif conversion
+- fd#371 Please allow a way to do the LDAP integrity checks after FD is installed
+- fd#406 update ldif files to be used in cn=config directly
+- fd#417 Plugins Installation - Lack of documentation
+
+#### fusiondirectory-plugins
+- fd-plugins#379 Add tls management in update_vacation script
+
+### Changed
+
+#### fusiondirectory
+- fd#388 Spool directory hardcoded
+- fd#389 Temporary dir hardcoded in copyPasteHandler class
+- fd#390 fusiondirectory.conf file hardcoded
+- fd#391 Embedeed smarty removal
+- fd#399 the fusion-setup command should be rewritten in perl
+- fd#401 mkntpasswd should be written in perl and check the availability of the library
+- fd#405 repace the actual README.cnconfig by the content from the website
+
+### Removed
+
+#### fusiondirectory
+- fd#274 Same contrib files available in two plugins (krb5 and heimdal)
+
+#### fusiondirectory-plugins
+- fd-plugins#362 removing the syslog part from the log plugin and create a syslog plugin
+- fd-plugins#366 removing the opsi plugin from the official plugins
+
+### Fixed
+
+#### fusiondirectory
+- fd#272 PHP error on client IP detection
+- fd#275 Generic user information: Incorrect Warning
+- fd#281 Last rows of page overlapping with a lot of objects
+- fd#328 [Wizard] Bad temporary file name in Step 1
+- fd#332 fixing the scrolling height in firefox 5
+- fd#334 mkntpasswd creation page
+- fd#349 timezone Berlin is missing
+- fd#365 include check in update-fusiondirectory for cache problems
+- fd#368 FD can end up creating an invalid configuration file
+- fd#370 FD complains about "Missing GOsa extensions" in the generic attributes
+- fd#372 Setup wizard won't fix users in all cases
+- fd#373 updated the loading of the cache file
+- fd#376 Hardened error_handler
+- fd#377 fixed Smarty handling for GOsa 2.6
+- fd#385 modify schema2lidf to not add by default a x-origin tag to the schema file
+- fd#387 changing update-fusiondirectory into fusiondirectory-setup
+- fd#393 "Gérer" instead of "Gèrer"
+- fd#403 test php safe mode
+- fd#404 rewrite the INSTALL doc
+- fd#410 dateofBirth not taken while importing with CSV
+- fd#418 replace update-fusiondirectory by fusiondirectory-setup in all files
+- fd#439 Rpm/Centos/Imagemagick
+- fd#450 Wrong data import for Samba Idmap
+- fd#457 the fusiondirectory-insert-schema should look if the samba.schema is in the ldap tree
+- fd#460 Shell environment variables different in Mageia
+- fd#466 it seems that adding the -y broke the multi parameter in fusiondirectory-setup
+- fd#467 using fusiondirectory-setup to install from tar.gz
+- fd#472 fusiondirectory-setup - Apache_user variable is not defined
+
+#### fusiondirectory-plugins
+- fd-plugins#232 askignfor goto-si even when nothing is in the fusiondirectory.conf
+- fd-plugins#420 the example in queue management for the cvs entry to be put is wrong
+- fd-plugins#464 php error while clic on "apply" after FAI plugin's installation
+- fd-plugins#465 debug screen in FD after FAI plugin installation
+
+## %"FusionDirectory 1.0.1" - 2011-05-02
+
+ - Removed advanced options from setup
+ - Corrected online help
+ - Corrected wording on plugins
+ - Removed the need for magic_quotes_gpc
+ - Removed the fusiondirectory-desktop package
+ - Removed program version checking from svn
+ - Added the apache plugin
+ - Put final logo
+ - Full italian language
+
+## %"FusionDirectory 1.0" - 2011-03-20
+
+- First stable release
+
diff --git a/README.md b/README.md
index e3950c91caaaa275e5a944281a3d91ed93bb81d9..041aad2a17af31bee9c7aa3cc599ddc66d12bab1 100644
--- a/README.md
+++ b/README.md
@@ -62,10 +62,25 @@ Be aware that if your naming policy of user cn's differs from the way FusionDire
 
 ## Get help
 
-There are a couple ways you can try [to get help][get help].You can also join the `#fusiondirectory` IRC channel at freenode.net.
+### Community support
 
-You can [register on our system][register] and enter issues [FusionDirectory][issues-core] for the core program, and 
-[FusionDirectory Plugins][issues-plugins] for plugins.
+There are a couple ways you can try [to get help][get help].You can also join the `#fusiondirectory` IRC channel at libera.chat.
+
+### Professional support
+
+Professional support is provided through of subscription.
+
+We have two type of subscription :
+
+* [FusionDirectory][subscription-fusiondirectory] : Global subscription for FusionDirectory and all the plugins
+* [FusionDirectory Plus][subscription-fusiondirectory-plus] : Expert Support on Education, Deployement and Infrastructure plugins
+
+The subscription provides access to FusionDirectory's stable enterprise repository, providing reliable software updates and security enhancements,
+as well as technical help and support.
+
+Choose the plan that's right for you. Our subscriptions are flexible and scalable according to your needs
+
+The subscription period is one year from the date of purchase and gives you access to the extensive infrastructure of enterprise-class software and services.
 
 ## IRC Etiquette
 
@@ -76,10 +91,22 @@ You can [register on our system][register] and enter issues [FusionDirectory][is
 * You should treat IRC as what it is: asynchronous chat.  Sure the messages can
   be instant but in most channels people are in different time zones.  At times
   chat replies can be in excess of 24hrs.
+
+### Best practice badge
+
+[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/351/badge)](https://bestpractices.coreinfrastructure.org/projects/351)
   
-## Donate
+## Crowfunding
 
-If you like [FusionDirectory][FusionDirectory] and would like to [donate][donate-liberapay] even a small amount you can go to our Liberapay account
+If you like us and want to send us a small contribution you can use the following crowfunding services
+
+* [donate-liberapay]
+
+* [donate-kofi]
+
+* [donate-opencollective]
+
+* [donate-communitybridge]
   
 ## License
 
@@ -87,14 +114,20 @@ If you like [FusionDirectory][FusionDirectory] and would like to [donate][donate
 
 [FusionDirectory]: https://www.fusiondirectory.org/
 
-[fusiondirectory-install]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/install/index.html
+[fusiondirectory-install]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/fusiondirectory/install/index.html
 
-[get help]: https://www.fusiondirectory.org/contact-us/
+[get help]: https://www.fusiondirectory.org/en/communaute/
 
-[register]: https://register.fusiondirectory.org
+[subscription-fusiondirectory]: https://www.fusiondirectory.org/en/subscription-fusiondirectory/
 
-[issues-core]: https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues
+[subscription-fusiondirectory-plus]: https://www.fusiondirectory.org/en/subscriptions-fusiondirectory-plus/
 
-[issues-plugins]: https://gitlab.fusiondirectory.org/fusiondirectory/fd-plugins/issues
+[register]: https://register.fusiondirectory.org
 
 [donate-liberapay]: https://liberapay.com/fusiondirectory/donate
+
+[donate-kofi]: https://ko-fi.com/fusiondirectory
+
+[donate-opencollective]: https://opencollective.com/fusiondirectory
+
+[donate-communitybridge]: https://funding.communitybridge.org/projects/fusiondirectory
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000000000000000000000000000000000..6eb0a87ed8e021b0f4d7bbd9b4f3b83de1225dcb
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,22 @@
+### Reporting Security Vulnerabilities
+
+Although we try to be proactive in preventing security concerns, it is unfortunately inevitable that security breaches will be discovered in all software, including our own.
+
+It is common practice in open source to disclose a security concern to the vendor in a responsible and private manner prior to publication, so that a patch can be prepared, and so that we can take proactive measures to protect FusionDirectory users.
+
+### What is a “security” issue ?
+
+A security issue is a type of bug that can affect the security of FusionDirectory installations.
+
+Specifically, it is a report of a bug that you have found in the code for FusionDirectory and that you have determined can be used to gain some level of access to a site running FusionDirectory that you should not have.
+
+### Where do I report security issues ?
+
+If you would like to contact us with a security vulnerability or possible vulnerability, please contact us via email [security@fusiondirectory.org](mailto:security@fusiondirectory.org).
+
+Your email can be signed with the following public gpg key :
+
+Benoit Mortier : **32BA 180F 6E14 7B5F 52BE 6322 EF2F F1E4 8638 EAD1**
+
+**In any case, you should not share details with anyone else until the bug fix has been officially released.**
+
diff --git a/UPGRADE.md b/UPGRADE.md
index 227ca902dd6bea4c3cee8fce06bf73172e0677dd..00faa6d329b9331e354b2d93f8d472cbf7d44ee2 100644
--- a/UPGRADE.md
+++ b/UPGRADE.md
@@ -489,7 +489,7 @@ Modify your LDIF like below:
   * Before
 
 ```ldif
-cn=namePhone,ou=phones,ou=systems,dc=labo,dc=opensides,dc=be
+cn=namePhone,ou=phones,ou=systems,dc=fusiondirectory,dc=org
 cn: namePhone
 goFonType: friend
 goFonDmtfMode: inband
@@ -3265,7 +3265,7 @@ Fonctionality removed
 
 [php-cas]: http://packages.ubuntu.com/trusty/all/php-cas/download
 
-[repo-urls]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/install/index.html
+[repo-urls]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/fusiondirectory/install/index.html
 
 ---
 * Further information
@@ -3275,7 +3275,7 @@ on https://gitlab.fusiondirectory.org
 
 Documentation: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/index.html
 Mailinglist:   https://lists.fusiondirectory.org/
-Irc:           #fusiondirectory on freenode
+Irc:           #fusiondirectory on libera.chat
 
 ---
 The FusionDirectory project https://www.fusiondirectory.org/
diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
index d774746c2be0431bb3ae5b9e8ea3d8454e991208..1a94de5acc63987ae03ab52e8520a54aa7048372 100644
--- a/contrib/bin/fusiondirectory-setup
+++ b/contrib/bin/fusiondirectory-setup
@@ -44,6 +44,7 @@ use MIME::Base64;
 # used to generate {SSHA} password (for LDAP)
 use Digest::SHA;
 use Crypt::CBC;
+use Bytes::Random::Secure qw(random_string_from);
 
 # used to uncompress tar.gz
 use Archive::Extract;
@@ -64,7 +65,7 @@ my %vars = (
  fd_home          => "/var/www/fusiondirectory",
  fd_cache         => "/var/cache/fusiondirectory",
  fd_config_dir    => "/etc/fusiondirectory",
- fd_smarty_dir    => "/usr/share/php/smarty3",
+ fd_smarty_path   => "/usr/share/php/smarty3/Smarty.class.php",
  fd_spool_dir     => "/var/spool/fusiondirectory",
  ldap_conf        => "/etc/ldap/ldap.conf",
  config_file      => "fusiondirectory.conf",
@@ -229,9 +230,7 @@ sub get_random_string {
   my ($size) = @_;
   $size = 32 if !$size;
   my @chars = ("A".."Z", "a".."z", '.', '/', 0..9);
-  my $string;
-  $string .= $chars[rand @chars] for 1..$size;
-  return $string;
+  return random_string_from(join('', @chars), $size);
 }
 
 sub encrypt_passwords {
@@ -552,7 +551,7 @@ if (!defined("CONFIG_FILE")) {
 }
 
 /* Path for smarty3 libraries */
-define("SMARTY", "$vars{fd_smarty_dir}");
+define("SMARTY", "$vars{fd_smarty_path}");
 
 /* Smarty compile dir */
 define ("SPOOL_DIR", "$vars{fd_spool_dir}/"); /* FusionDirectory spool directory */
@@ -596,8 +595,9 @@ sub add_ldap_admin {
 
   # Get the configuration to know which attribute must be used in the dn
   my $mesg = $ldap->search(
-    base => "$base",
-    filter => "(&(objectClass=fusionDirectoryConf)(cn=fusiondirectory))",
+    base => "$configrdn,$base",
+    filter => '(objectClass=fusionDirectoryConf)',
+    scope => 'base',
     attrs => ['fdAccountPrimaryAttribute', 'fdForcePasswordDefaultHash', 'fdPasswordDefaultHash']
   );
   $mesg->code && die $mesg->error;
@@ -2074,16 +2074,16 @@ This flag will answer "yes" to every yes/no question asked by the script
 locale_cache_dir	[locale]
 config_file     	[fusiondirectory.conf]
 fd_cache        	[/var/cache/fusiondirectory]
-fd_smarty_dir   	[/usr/share/php/smarty3]
+fd_smarty_path  	[/usr/share/php/smarty3/Smarty.class.php]
 fd_spool_dir    	[/var/spool/fusiondirectory]
 fai_log_dir     	[fai]
-tmp_dir		        [tmp]
+tmp_dir         	[tmp]
 secrets_file    	[fusiondirectory.secrets]
 template_dir    	[template]
 locale_dir      	[locale]
 class_cache     	[class.cache]
 fd_config_dir   	[/etc/fusiondirectory]
-fd_home [/var/www/fusiondirectory]
+fd_home         	[/var/www/fusiondirectory]
 
 
  benoit@catbert$ fusiondirectory-setup --set-class_cache=class.cache --write-vars
diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema
index f43752f7ac36bafd95ba0964ec668e1aaf3f194b..a57a87e7ab15fc8d6a2cfe3c28fe70014c935fb5 100644
--- a/contrib/openldap/core-fd.schema
+++ b/contrib/openldap/core-fd.schema
@@ -57,6 +57,36 @@ attributetype ( 1.3.6.1.4.1.38414.62.1.3 NAME 'fdLockTimestamp'
   ORDERING generalizedTimeOrderingMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE )
 
+# Subscriptions
+
+attributetype ( 1.3.6.1.4.1.38414.62.11.1 NAME 'fdSubscriptionStartDate'
+  DESC 'FusionDirectory - Subscription Starting Date'
+  EQUALITY generalizedTimeMatch
+  ORDERING generalizedTimeOrderingMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.11.2 NAME 'fdSubscriptionEndDate'
+  DESC 'FusionDirectory - Subscription End Date'
+  EQUALITY generalizedTimeMatch
+  ORDERING generalizedTimeOrderingMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.11.3 NAME 'fdSubscriptionType'
+  DESC 'FusionDirectory - Subscription type'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.11.4 NAME 'fdSubscriptionContractId'
+  DESC 'FusionDirectory - Subscription contract ID'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.11.5 NAME 'fdSubscriptionName'
+  DESC 'FusionDirectory - Subscription client name'
+  SUP name )
+
 # Classes
 
 objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY
@@ -89,3 +119,8 @@ objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.19 NAME 'gosaSnapshotObject'
 objectclass ( 1.3.6.1.4.1.38414.62.2.1 NAME 'fdLockEntry' SUP top STRUCTURAL
   DESC 'FusionDirectory - Class for FD locking'
   MUST ( fdUserDn $ fdObjectDn $ cn $ fdLockTimestamp ))
+
+objectclass ( 1.3.6.1.4.1.38414.62.2.2 NAME 'fdSubscriptionInformation' SUP top STRUCTURAL
+  DESC 'FusionDirectory - Information about current subscription'
+  MUST ( cn )
+  MAY ( uid $ fdSubscriptionStartDate $ fdSubscriptionEndDate $ fdSubscriptionType $ fdSubscriptionContractId $ fdSubscriptionName ))
diff --git a/contrib/smarty/plugins/block.render.php b/contrib/smarty/plugins/block.render.php
index 0727cc211c6f0f66cfbd3594c3343a0fc2068be5..6731dc82da519fcb225c9168a0a37e52f3d3de5c 100644
--- a/contrib/smarty/plugins/block.render.php
+++ b/contrib/smarty/plugins/block.render.php
@@ -19,7 +19,7 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-function smarty_block_render($params, $text, &$smarty)
+function smarty_block_render ($params, $text, &$smarty)
 {
   /* Skip closing tag </render> */
   if (empty($text)) {
@@ -62,17 +62,17 @@ function smarty_block_render($params, $text, &$smarty)
   }
 
   /* Remove select options */
-  $from = array(
+  $from = [
     "#<option.*<\/option>#is",
     "/(<textarea.*>).*(<\/textarea>)/is",
     "/^(.*<input.*)checked(.*>.*)$/isD"
-  );
+  ];
 
-  $to = array(
+  $to = [
     " ",
     "\\1\\2",
     "\\1 \\2"
-  );
+  ];
 
   $text = preg_replace($from, $to, $text);
 
diff --git a/contrib/smarty/plugins/function.filePath.php b/contrib/smarty/plugins/function.filePath.php
index 3d979e0a9b65f290c2430ad1096885e608ef829c..eccb9a1beca221a66713d6647557475f375aef79 100644
--- a/contrib/smarty/plugins/function.filePath.php
+++ b/contrib/smarty/plugins/function.filePath.php
@@ -17,9 +17,9 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_filePath($params, &$smarty)
+function smarty_function_filePath ($params, &$smarty)
 {
-  $config = session::global_get('config');
+  $config = session::get('config');
   $default_theme = 'breezy';
 
   /* Set theme */
diff --git a/contrib/smarty/plugins/function.iconPath.php b/contrib/smarty/plugins/function.iconPath.php
index 92aa68d4bb5844651e600ae716d141ac67401081..b44f87d132127f37e1de8df5520656e4b5da210d 100644
--- a/contrib/smarty/plugins/function.iconPath.php
+++ b/contrib/smarty/plugins/function.iconPath.php
@@ -17,9 +17,9 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_iconPath($params, &$smarty)
+function smarty_function_iconPath ($params, &$smarty)
 {
-  $config = session::global_get('config');
+  $config = session::get('config');
 
   /* Set theme */
   $theme = IconTheme::$default_theme;
diff --git a/contrib/smarty/plugins/function.msgPool.php b/contrib/smarty/plugins/function.msgPool.php
index c63fc95f4b322d45d54fc8e07ca818b8282e349b..f5e386b0b073ebd9727b97de0047bdbd2d75d59b 100644
--- a/contrib/smarty/plugins/function.msgPool.php
+++ b/contrib/smarty/plugins/function.msgPool.php
@@ -18,17 +18,17 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_msgPool($params, &$smarty)
+function smarty_function_msgPool ($params, &$smarty)
 {
   if (class_available('msgPool') && isset($params['type'])) {
-    $parameter = array();
+    $parameter = [];
     foreach ($params as $para => $value) {
       if (!preg_match('/^type$/i', $para)) {
         $parameter[$para] = $value;
       }
     }
     if (is_callable('msgPool::'.$params['type'])) {
-      echo call_user_func_array(array('msgPool',$params['type']), $parameter);
+      echo call_user_func_array(['msgPool',$params['type']], $parameter);
     } else {
       trigger_error('Unknown msgPool function '.$params['type']);
     }
diff --git a/html/autocomplete.php b/html/autocomplete.php
index e4259658f02d6a7de3c4427fc03e4a43c81297b8..7ef44f98d50fc9ce1256ac58d1627b27514866e0 100644
--- a/html/autocomplete.php
+++ b/html/autocomplete.php
@@ -22,16 +22,16 @@
 /* Basic setup, remove eventually registered sessions */
 @require_once ("../include/php_setup.inc");
 @require_once ("functions.inc");
-@require_once ("variables.inc");
+@require_once("variables.inc");
 
 session_cache_limiter("private");
 session::start();
-session::global_set('errorsAlreadyPosted', array());
+session::set('errorsAlreadyPosted', []);
 
 /* Logged in? Simple security check */
-if (!session::global_is_set('ui')) {
-  logging::log('security', 'unknown', '', array(), 'Error: autocomplete.php called without session');
-  header ('Location: index.php');
+if (!session::is_set('ui')) {
+  logging::log('security', 'unknown', '', [], 'Error: autocomplete.php called without session');
+  header('Location: index.php');
   exit;
 }
 
@@ -44,7 +44,7 @@ if (isset($_GET['type']) && $_GET['type'] == "base") {
     $pathMapping  = session::get("pathMapping");
     $search       = preg_replace('/&quot;/', '"', current($_POST));
 
-    $config = session::global_get('config');
+    $config = session::get('config');
     foreach ($config->department_info as $dn => $info) {
       if (!isset($pathMapping[$dn])) {
         continue;
@@ -71,8 +71,8 @@ if (isset($_GET['type']) && $_GET['type'] == "base") {
 
 } else {
 
-  $ui = session::global_get('ui');
-  $config = session::global_get('config');
+  $ui = session::get('ui');
+  $config = session::get('config');
 
   /* Is there a filter object arround? */
   if (session::is_set('autocomplete')) {
@@ -80,5 +80,3 @@ if (isset($_GET['type']) && $_GET['type'] == "base") {
     $filter->processAutocomplete();
   }
 }
-
-?>
diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc
index ad1650d57aa7e977de5085a2d6da1ec5a925c6b8..8673e63e8266ca7f6a2c82d1de4aad3d32aecad1 100644
--- a/html/class_passwordRecovery.inc
+++ b/html/class_passwordRecovery.inc
@@ -31,7 +31,7 @@ class standAlonePage {
   protected $interactive;
 
   /* Constructor */
-  function __construct($interactive = TRUE)
+  function __construct ($interactive = TRUE)
   {
     global $config, $ssl, $ui;
 
@@ -50,7 +50,7 @@ class standAlonePage {
 
       /* If SSL is forced, just forward to the SSL enabled site */
       if (($config->get_cfg_value("forcessl") == "TRUE") && ($ssl != '')) {
-        header ("Location: $ssl");
+        header("Location: $ssl");
         exit;
       }
 
@@ -59,7 +59,7 @@ class standAlonePage {
       $smarty = get_smarty();
 
       /* Generate server list */
-      $servers = array();
+      $servers = [];
       foreach ($config->data['LOCATIONS'] as $key => $ignored) {
         $servers[$key] = $key;
       }
@@ -86,7 +86,7 @@ class standAlonePage {
 
       /* Set config to selected one */
       $config->set_current($this->directory);
-      session::global_set('config', $config);
+      session::set('config', $config);
     }
 
     $this->activated = $this->readLdapConfig();
@@ -97,8 +97,8 @@ class standAlonePage {
     if ($this->interactive) {
       Language::init();
 
-      if (session::global_is_set('plist')) {
-        session::global_un_set('plist');
+      if (session::is_set('plist')) {
+        session::un_set('plist');
       }
       $ui = new fake_userinfo();
       load_plist();
@@ -109,7 +109,7 @@ class standAlonePage {
     }
   }
 
-  function loadConfig()
+  function loadConfig ()
   {
     global $BASE_DIR;
 
@@ -123,12 +123,12 @@ class standAlonePage {
 
     /* Parse configuration file */
     $config = new config(CONFIG_DIR."/".CONFIG_FILE, $BASE_DIR);
-    session::global_set('DEBUGLEVEL', $config->get_cfg_value("debuglevel"));
+    session::set('DEBUGLEVEL', $config->get_cfg_value("debuglevel"));
     @DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
     return $config;
   }
 
-  function setupSmarty()
+  function setupSmarty ()
   {
     global $config;
     $smarty = get_smarty();
@@ -156,7 +156,7 @@ class standAlonePage {
     $smarty->assign('year',     date('Y'));
   }
 
-  function checkForSSL()
+  function checkForSSL ()
   {
     global $config;
     $smarty = get_smarty();
@@ -173,14 +173,14 @@ class standAlonePage {
         exit;
       } elseif ($config->get_cfg_value('warnssl') == 'TRUE') {
         /* Display SSL mode warning? */
-        $smarty->assign ('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
+        $smarty->assign('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
       }
     }
 
     return $ssl;
   }
 
-  function getPageURL()
+  function getPageURL ()
   {
     $protocol = 'http';
     if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) {
@@ -214,7 +214,7 @@ class standAlonePage {
     return $pageURL;
   }
 
-  function encodeParams($keys)
+  function encodeParams ($keys)
   {
     $params = '';
     foreach ($keys as $key) {
@@ -224,14 +224,14 @@ class standAlonePage {
     return $params;
   }
 
-  static function securityHeaders()
+  static function securityHeaders ()
   {
     header('X-XSS-Protection: 1; mode=block');
     header('X-Content-Type-Options: nosniff');
     header('X-Frame-Options: deny');
   }
 
-  static function generateRandomHash()
+  static function generateRandomHash ()
   {
     /* Generate a very long random value */
     $len        = 56;
@@ -239,7 +239,7 @@ class standAlonePage {
     $max        = strlen($base) - 1;
     $randomhash = '';
     while (strlen($randomhash) < $len + 1) {
-      $randomhash .= $base{random_int(0, $max)};
+      $randomhash .= $base[random_int(0, $max)];
     }
     return $randomhash;
   }
@@ -248,7 +248,7 @@ class standAlonePage {
 class passwordRecovery extends standAlonePage {
   protected $loginAttribute;
   protected $login;
-  var $message = array();
+  var $message = [];
   var $email_address;
 
   var $step = 1;
@@ -272,7 +272,7 @@ class passwordRecovery extends standAlonePage {
   var $usealternates;
 
   /* Constructor */
-  function __construct($interactive = TRUE)
+  function __construct ($interactive = TRUE)
   {
     parent::__construct($interactive);
 
@@ -292,7 +292,7 @@ class passwordRecovery extends standAlonePage {
     }
   }
 
-  function execute()
+  function execute ()
   {
     if (!$this->activated) {
       return;
@@ -300,8 +300,8 @@ class passwordRecovery extends standAlonePage {
 
     /* Got a formular answer, validate and try to log in */
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-      if (session::global_is_set('_LAST_PAGE_REQUEST')) {
-        session::global_set('_LAST_PAGE_REQUEST', time());
+      if (session::is_set('_LAST_PAGE_REQUEST')) {
+        session::set('_LAST_PAGE_REQUEST', time());
       }
 
       if (isset($_POST['change'])) {
@@ -324,7 +324,7 @@ class passwordRecovery extends standAlonePage {
     }
   }
 
-  function displayPWchanger()
+  function displayPWchanger ()
   {
     global $error_collector, $error_collector_mailto;
     /* Do we need to show error messages? */
@@ -351,7 +351,7 @@ class passwordRecovery extends standAlonePage {
     $smarty->assign('usePrototype', 'FALSE');
     $smarty->append('js_files',     'include/pwdStrength.js');
     $smarty->append('css_files',    get_template_path('login.css'));
-    $lang = session::global_get('lang');
+    $lang = session::get('lang');
     $smarty->assign('lang', preg_replace('/_.*$/', '', $lang));
     $smarty->assign('rtl', Language::isRTL($lang));
     $smarty->assign('title',        _('Password recovery'));
@@ -369,7 +369,7 @@ class passwordRecovery extends standAlonePage {
   /* Check that password recovery is activated, read config in ldap
    * Returns a boolean saying if password recovery is activated
    */
-  function readLdapConfig()
+  function readLdapConfig ()
   {
     global $config;
     $this->salt           = $config->get_cfg_value('passwordRecoverySalt');
@@ -390,7 +390,7 @@ class passwordRecovery extends standAlonePage {
     return ($config->get_cfg_value('passwordRecoveryActivated') == "TRUE");
   }
 
-  function storeToken($temp_password)
+  function storeToken ($temp_password)
   {
     global $config;
     /* Store it in ldap with the salt */
@@ -401,10 +401,10 @@ class passwordRecovery extends standAlonePage {
 
     // Check if token branch is here
     $token = get_ou('recoveryTokenRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
-    $ldap->cat($token, array('dn'));
+    $ldap->cat($token, ['dn']);
     if (!$ldap->count()) {
       /* It's not, let's create it */
-      $ldap->cd ($config->current['BASE']);
+      $ldap->cd($config->current['BASE']);
       $ldap->create_missing_trees($token);
       if (!$ldap->success()) {
         return msgPool::ldaperror($ldap->get_error(),
@@ -414,15 +414,15 @@ class passwordRecovery extends standAlonePage {
     }
 
     $dn = 'ou='.$this->login.','.$token;
-    $ldap->cat($dn, array('dn'));
+    $ldap->cat($dn, ['dn']);
     $add = ($ldap->count() == 0);
     /* We store the token and its validity due date */
-    $attrs = array(
-      'objectClass'   => array('organizationalUnit'),
+    $attrs = [
+      'objectClass'   => ['organizationalUnit'],
       'ou'            => $this->login,
       'userPassword'  => $sha1_temp_password,
       'description'   => time() + $this->delay_allowed * 60,
-    );
+    ];
     $ldap->cd($dn);
     if ($add) {
       $ldap->add($attrs);
@@ -438,7 +438,7 @@ class passwordRecovery extends standAlonePage {
     return ""; /* Everything went well */
   }
 
-  function checkToken($token)
+  function checkToken ($token)
   {
     global $config;
     $salt_token = $this->salt.$token.$this->salt;
@@ -460,13 +460,13 @@ class passwordRecovery extends standAlonePage {
            ($ldap_token == $sha1_token);
   }
 
-  function getUserDn()
+  function getUserDn ()
   {
     global $config;
     /* Retrieve dn from the ldap */
     $ldap = $config->get_ldap_link();
 
-    $objectClasses = array('gosaMailAccount');
+    $objectClasses = ['gosaMailAccount'];
     if (class_available('personalInfo') && ($config->get_cfg_value('privateEmailPasswordRecovery', 'FALSE') == 'TRUE')) {
       $objectClasses[] = 'fdPersonalInfo';
     }
@@ -475,7 +475,7 @@ class passwordRecovery extends standAlonePage {
     }
     $filter = '(&(|(objectClass='.join(')(objectClass=', $objectClasses).'))('.$this->loginAttribute.'='.ldap_escape_f($this->login).'))';
     $ldap->cd($config->current['BASE']);
-    $ldap->search($filter, array('dn'));
+    $ldap->search($filter, ['dn']);
 
     if ($ldap->count() < 1) {
       $this->message[] = sprintf(_('Did not find an account with login "%s"'), htmlentities($this->login, ENT_COMPAT, 'UTF-8'));
@@ -491,7 +491,7 @@ class passwordRecovery extends standAlonePage {
   }
 
   /* Find the login of for the given email address */
-  function step2()
+  function step2 ()
   {
     global $config;
 
@@ -510,7 +510,7 @@ class passwordRecovery extends standAlonePage {
     }
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
-    $ldap->search($filter, array('dn', 'userPassword', $this->loginAttribute));
+    $ldap->search($filter, ['dn', 'userPassword', $this->loginAttribute]);
 
     /* Only one ldap node should be found */
     if ($ldap->count() < 1) {
@@ -536,14 +536,14 @@ class passwordRecovery extends standAlonePage {
 
       $smarty->assign('login', $this->login);
       $smarty->assign('email_address', $this->email_address);
-      $params = $this->encodeParams(array('login', 'directory', 'email_address'));
+      $params = $this->encodeParams(['login', 'directory', 'email_address']);
       $smarty->assign('params', $params);
     }
 
     return $attrs['dn'];
   }
 
-  function generateAndStoreToken()
+  function generateAndStoreToken ()
   {
     $activatecode = static::generateRandomHash();
 
@@ -558,7 +558,7 @@ class passwordRecovery extends standAlonePage {
   }
 
   /* generate a token and send it by email */
-  function step3()
+  function step3 ()
   {
     /* Send a mail, save information in session and create a very random unique id */
     $token = $this->generateAndStoreToken();
@@ -588,7 +588,7 @@ class passwordRecovery extends standAlonePage {
   }
 
   /* check if the given token is the good one */
-  function step4()
+  function step4 ()
   {
     $uniq_id_from_mail = validate($_GET['uniq']);
 
@@ -603,7 +603,7 @@ class passwordRecovery extends standAlonePage {
     $this->uniq = $uniq_id_from_mail;
     $this->step = 4;
     $smarty->assign('login', $this->login);
-    $params = $this->encodeParams(array('login', 'directory', 'email_address', 'uniq'));
+    $params = $this->encodeParams(['login', 'directory', 'email_address', 'uniq']);
     $smarty->assign('params', $params);
 
     if (isset($_POST['change'])) {
@@ -611,7 +611,7 @@ class passwordRecovery extends standAlonePage {
     }
   }
 
-  function changeUserPassword($new_password, $new_password_repeated)
+  function changeUserPassword ($new_password, $new_password_repeated)
   {
     $dn = $this->getUserDn();
     if (!$dn) {
@@ -620,13 +620,13 @@ class passwordRecovery extends standAlonePage {
 
     $userTabs = objects::open($dn, 'user');
     $userTab  = $userTabs->getBaseObject();
-    $userTab->userPassword = array(
+    $userTab->userPassword = [
       '',
       $new_password,
       $new_password_repeated,
       $userTab->userPassword,
       $userTab->attributesAccess['userPassword']->isLocked()
-    );
+    ];
 
     /* Is there any problem with entered passwords? */
     $userTabs->save_object();
@@ -642,7 +642,7 @@ class passwordRecovery extends standAlonePage {
   }
 
   /* change the password and send confirmation email */
-  function step5()
+  function step5 ()
   {
     $success = $this->changeUserPassword($_POST['new_password'], $_POST['new_password_repeated']);
     if (!$success) {
diff --git a/html/getbin.php b/html/getbin.php
index 57632c5c97eb44307fd4c0bcd4fc834589a7032b..6cbd8a73c0210052bbdce28b788cc69a1ec3e7d0 100644
--- a/html/getbin.php
+++ b/html/getbin.php
@@ -24,15 +24,15 @@
 @require_once('functions.inc');
 @require_once('variables.inc');
 
-error_reporting (0);
+error_reporting(0);
 session_cache_limiter('private');
 session::start();
-session::global_set('errorsAlreadyPosted', array());
+session::set('errorsAlreadyPosted', []);
 
 /* Logged in? Simple security check */
-if (!session::global_is_set('ui')) {
-  logging::log('security', 'unknown', '', array(), 'Error: getbin.php called without session');
-  header ('Location: index.php');
+if (!session::is_set('ui')) {
+  logging::log('security', 'unknown', '', [], 'Error: getbin.php called without session');
+  header('Location: index.php');
   exit;
 }
 
@@ -54,5 +54,5 @@ if (session::is_set($key.'file')) {
 }
 
 echo session::get($key);
-error_reporting (E_ALL | E_STRICT);
+error_reporting(E_ALL | E_STRICT);
 ?>
diff --git a/html/geticon.php b/html/geticon.php
index 57d2dba9021ce642e7e3303dd593e717879671b0..0e2fc5ae20f92ba5a6e51633940a41afb5c0f811 100644
--- a/html/geticon.php
+++ b/html/geticon.php
@@ -25,16 +25,16 @@
 
 session_cache_limiter("private");
 session::start();
-session::global_set('errorsAlreadyPosted', array());
+session::set('errorsAlreadyPosted', []);
 
 $theme = '';
-if (session::global_is_set('config')) {
-  $config = session::global_get('config');
+if (session::is_set('config')) {
+  $config = session::get('config');
   $theme  = $config->get_cfg_value('theme');
 } else {
   header("cache-control: no-cache");
 }
-IconTheme::$extensions    = array('png');
+IconTheme::$extensions    = ['png'];
 if (!isset($_GET['context']) || !isset($_GET['icon']) || !isset($_GET['size'])) {
   trigger_error('Missing information in query string: '.$_SERVER['QUERY_STRING']);
   exit;
diff --git a/html/index.php b/html/index.php
index 38918fb6b9315727bcd65363441e0fe0d8e05316..12ddfc70f64384d64e2a5983398d5f0af8dfa012 100644
--- a/html/index.php
+++ b/html/index.php
@@ -22,8 +22,8 @@
 /* Load required includes */
 require_once ("../include/php_setup.inc");
 require_once ("functions.inc");
-require_once ("variables.inc");
-require_once ("class_logging.inc");
+require_once("variables.inc");
+require_once("class_logging.inc");
 
 /* Set headers */
 header('Content-type: text/html; charset=UTF-8');
@@ -32,10 +32,10 @@ header('X-Content-Type-Options: nosniff');
 header('X-Frame-Options: deny');
 
 /* Display the login page and exit() */
-function displayLogin()
+function displayLogin ()
 {
   global $smarty,$message,$config,$ssl,$error_collector,$error_collector_mailto;
-  $lang = session::global_get('lang');
+  $lang = session::get('lang');
 
   error_reporting(E_ALL | E_STRICT);
   /* Fill template with required values */
@@ -43,34 +43,34 @@ function displayLogin()
   if (isset($_POST['username'])) {
     $username = trim($_POST['username']);
   }
-  $smarty->assign ('date',      gmdate('D, d M Y H:i:s'));
-  $smarty->assign ('username',  $username);
-  $smarty->assign ('revision',  FD_VERSION);
-  $smarty->assign ('year',      date('Y'));
-  $smarty->append ('css_files', get_template_path('login.css'));
+  $smarty->assign('date',      gmdate('D, d M Y H:i:s'));
+  $smarty->assign('username',  $username);
+  $smarty->assign('revision',  FD_VERSION);
+  $smarty->assign('year',      date('Y'));
+  $smarty->append('css_files', get_template_path('login.css'));
   $smarty->assign('title',      _('Sign in'));
 
   /* Some error to display? */
   if (!isset($message)) {
     $message = "";
   }
-  $smarty->assign ("message", $message);
+  $smarty->assign("message", $message);
 
   /* Display SSL mode warning? */
   if (($ssl != '') && ($config->get_cfg_value('warnSSL') == 'TRUE')) {
-    $smarty->assign ('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
+    $smarty->assign('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
   } else {
-    $smarty->assign ('ssl', '');
+    $smarty->assign('ssl', '');
   }
 
   if (!$config->check_session_lifetime()) {
-    $smarty->assign ('lifetime', _('Warning: The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings.'));
+    $smarty->assign('lifetime', _('Warning: The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings.'));
   } else {
-    $smarty->assign ('lifetime', '');
+    $smarty->assign('lifetime', '');
   }
 
   /* Generate server list */
-  $servers = array();
+  $servers = [];
   if (isset($_POST['server'])) {
     $selected = $_POST['server'];
   } else {
@@ -79,11 +79,11 @@ function displayLogin()
   foreach ($config->data['LOCATIONS'] as $key => $ignored) {
     $servers[$key] = $key;
   }
-  $smarty->assign ("server_options", $servers);
-  $smarty->assign ("server_id", $selected);
+  $smarty->assign("server_options", $servers);
+  $smarty->assign("server_id", $selected);
 
   /* show login screen */
-  $smarty->assign ("PHPSESSID", session_id());
+  $smarty->assign("PHPSESSID", session_id());
   if (session::is_set('errors')) {
     $smarty->assign("errors", session::get('errors'));
   }
@@ -98,7 +98,7 @@ function displayLogin()
   $smarty->assign("lang", preg_replace('/_.*$/', '', $lang));
   $smarty->assign("rtl",  Language::isRTL($lang));
 
-  $smarty->display (get_template_path('headers.tpl'));
+  $smarty->display(get_template_path('headers.tpl'));
   $smarty->assign("version", FD_VERSION);
 
   $smarty->display(get_template_path('login.tpl'));
@@ -114,13 +114,13 @@ function displayLogin()
 session::start();
 
 if (isset($_REQUEST['signout']) && $_REQUEST['signout']) {
-  if (session::global_is_set('connected')) {
-    $config = session::global_get('config');
+  if (session::is_set('connected')) {
+    $config = session::get('config');
     if ($config->get_cfg_value('casActivated') == 'TRUE') {
       require_once('CAS.php');
       /* Move FD autoload after CAS autoload */
-      spl_autoload_unregister('__fusiondirectory_autoload');
-      spl_autoload_register('__fusiondirectory_autoload');
+      spl_autoload_unregister('fusiondirectory_autoload');
+      spl_autoload_register('fusiondirectory_autoload');
       phpCAS::client(
         CAS_VERSION_2_0,
         $config->get_cfg_value('casHost', 'localhost'),
@@ -163,9 +163,9 @@ if (!is_readable(CONFIG_DIR.'/'.CONFIG_FILE)) {
 
 /* Parse configuration file */
 $config = new config(CONFIG_DIR.'/'.CONFIG_FILE, $BASE_DIR);
-session::global_set('config', $config);
-session::global_set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
-@DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, 'config');
+session::set('config', $config);
+session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
+@DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, 'config');
 
 /* Set template compile directory */
 $smarty->compile_dir = $config->get_cfg_value('templateCompileDirectory', SPOOL_DIR);
@@ -188,7 +188,7 @@ clean_smarty_compile_dir($smarty->compile_dir);
 
 Language::init();
 
-$smarty->assign ('focusfield', 'username');
+$smarty->assign('focusfield', 'username');
 
 if (isset($_POST['server'])) {
   $server = $_POST['server'];
@@ -201,12 +201,12 @@ if (
   ($config->get_cfg_value('casActivated') == 'TRUE') ||
   ($config->get_cfg_value('httpAuthActivated') == 'TRUE') ||
   ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE')) {
-  session::global_set('DEBUGLEVEL', 0);
+  session::set('DEBUGLEVEL', 0);
 }
 
 /* If SSL is forced, just forward to the SSL enabled site */
 if (($config->get_cfg_value('forcessl') == 'TRUE') && ($ssl != '')) {
-  header ("Location: $ssl");
+  header("Location: $ssl");
   exit;
 }
 
@@ -233,20 +233,20 @@ class Index {
   static protected $username;
   static protected $password;
 
-  static function init()
+  static function init ()
   {
     static::$username = NULL;
     static::$password = NULL;
   }
 
   /* Runs schemaCheck if activated in configuration */
-  static function runSchemaCheck()
+  static function runSchemaCheck ()
   {
     global $config;
     if ($config->get_cfg_value('schemaCheck') != 'TRUE') {
       return TRUE;
     }
-    $cfg = array();
+    $cfg = [];
     $cfg['admin']       = $config->current['ADMINDN'];
     $cfg['password']    = $config->current['ADMINPASSWORD'];
     $cfg['connection']  = $config->current['SERVER'];
@@ -265,11 +265,11 @@ class Index {
   }
 
   /* Check locking LDAP branch is here or create it */
-  static function checkForLockingBranch()
+  static function checkForLockingBranch ()
   {
     global $config;
     $ldap = $config->get_ldap_link();
-    $ldap->cat(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], array('dn'));
+    $ldap->cat(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], ['dn']);
     $attrs = $ldap->fetch();
     if (!count($attrs)) {
       $ldap->cd($config->current['BASE']);
@@ -279,7 +279,7 @@ class Index {
 
   /* Check username for invalid characters and check password is not empty
    * Also trims username */
-  static function validateUserInput()
+  static function validateUserInput ()
   {
     global $message, $smarty;
     static::$username = trim(static::$username);
@@ -288,47 +288,47 @@ class Index {
       return FALSE;
     } elseif (mb_strlen(static::$password, 'UTF-8') == 0) {
       $message = _('Please specify your password!');
-      $smarty->assign ('focusfield', 'password');
+      $smarty->assign('focusfield', 'password');
       return FALSE;
     }
     return TRUE;
   }
 
   /* Performs an LDAP bind with $username and $password */
-  static function ldapLoginUser()
+  static function ldapLoginUser ()
   {
     global $ui, $config, $message, $smarty;
     /* Login as user, initialize user ACL's */
     $ui = ldap_login_user(static::$username, static::$password);
     if ($ui === NULL) {
       if (isset($_SERVER['REMOTE_ADDR'])) {
-        logging::log('security', 'login', '', array(), 'Authentication failed for user "'.static::$username.'" [from '.$_SERVER['REMOTE_ADDR'].']');
+        logging::log('security', 'login', '', [], 'Authentication failed for user "'.static::$username.'" [from '.$_SERVER['REMOTE_ADDR'].']');
       } else {
-        logging::log('security', 'login', '', array(), 'Authentication failed for user "'.static::$username.'"');
+        logging::log('security', 'login', '', [], 'Authentication failed for user "'.static::$username.'"');
       }
       $message = _('Please check the username/password combination.');
-      $smarty->assign ('focusfield', 'password');
+      $smarty->assign('focusfield', 'password');
       return FALSE;
     }
     return TRUE;
   }
 
   /* Called after successful login, return FALSE if account is expired */
-  static function loginAndCheckExpired()
+  static function loginAndCheckExpired ()
   {
     global $ui, $config, $plist, $message, $smarty;
     /* Remove all locks of this user */
     del_user_locks($ui->dn);
 
     /* Save userinfo and plugin structure */
-    session::global_set('ui', $ui);
+    session::set('ui', $ui);
 
     /* User might have its own language, re-run initLanguage */
     $plistReloaded = Language::init();
 
     /* We need a fully loaded plist and config to test account expiration */
     if (!$plistReloaded) {
-      session::global_un_set('plist');
+      session::un_set('plist');
     }
     $plist = load_plist();
 
@@ -340,9 +340,9 @@ class Index {
       $expired = $ui->expired_status();
 
       if ($expired == POSIX_ACCOUNT_EXPIRED) {
-        logging::log('security', 'login', '', array(), 'Account for user "'.static::$username.'" has expired');
+        logging::log('security', 'login', '', [], 'Account for user "'.static::$username.'" has expired');
         $message = _('Account locked. Please contact your system administrator!');
-        $smarty->assign ('focusfield', 'username');
+        $smarty->assign('focusfield', 'username');
         return FALSE;
       }
     }
@@ -350,19 +350,19 @@ class Index {
   }
 
   /* Final step of successful login: redirect to main.php */
-  static function redirect()
+  static function redirect ()
   {
     global $config;
     /* Not account expired or password forced change go to main page */
-    logging::log('security', 'login', '', array(), 'User "'.static::$username.'" logged in successfully.');
-    session::global_set('connected', 1);
-    session::global_set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
-    header ('Location: main.php?global_check=1');
+    logging::log('security', 'login', '', [], 'User "'.static::$username.'" logged in successfully.');
+    session::set('connected', 1);
+    session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
+    header('Location: main.php?global_check=1');
     exit;
   }
 
   /* Return HTTP authentication header */
-  static function authenticateHeader($message = 'Authentication required')
+  static function authenticateHeader ($message = 'Authentication required')
   {
     header('WWW-Authenticate: Basic realm="FusionDirectory"');
     header('HTTP/1.0 401 Unauthorized');
@@ -371,7 +371,7 @@ class Index {
   }
 
   /* Run each step in $steps, stop on errors */
-  static function runSteps($steps)
+  static function runSteps ($steps)
   {
     foreach ($steps as $step) {
       $status = static::$step();
@@ -386,7 +386,7 @@ class Index {
   }
 
   /* All login steps in the right order for standard POST login */
-  static function fullLoginProcess()
+  static function fullLoginProcess ()
   {
     global $config, $message;
 
@@ -398,22 +398,26 @@ class Index {
     static::$username = $_POST['username'];
     static::$password = $_POST['password'];
 
-    $success = static::runSteps(array(
+    $success = static::runSteps([
       'validateUserInput',
       'ldapLoginUser',
       'checkForLockingBranch',
       'loginAndCheckExpired',
       'runSchemaCheck',
-    ));
+    ]);
 
     if ($success) {
       /* Everything went well, redirect to main.php */
+
+      //Regenerate after login in order to avoid session fixation issues (vuln),
+      session_regenerate_id();
+
       static::redirect();
     }
   }
 
   /* All login steps in the right order for HTTP auth login */
-  static function authLoginProcess()
+  static function authLoginProcess ()
   {
     global $config, $message;
 
@@ -426,13 +430,13 @@ class Index {
     static::$username = $_SERVER['PHP_AUTH_USER'];
     static::$password = $_SERVER['PHP_AUTH_PW'];
 
-    $success = static::runSteps(array(
+    $success = static::runSteps([
       'validateUserInput',
       'ldapLoginUser',
       'checkForLockingBranch',
       'loginAndCheckExpired',
       'runSchemaCheck',
-    ));
+    ]);
 
     if ($success) {
       /* Everything went well, redirect to main.php */
@@ -443,7 +447,7 @@ class Index {
   }
 
   /* All login steps in the right order for HTTP Header login */
-  static function headerAuthLoginProcess()
+  static function headerAuthLoginProcess ()
   {
     global $config, $message, $ui;
 
@@ -495,11 +499,11 @@ class Index {
 
     $ui->loadACL();
 
-    $success = static::runSteps(array(
+    $success = static::runSteps([
       'checkForLockingBranch',
       'loginAndCheckExpired',
       'runSchemaCheck',
-    ));
+    ]);
 
     if ($success) {
       /* Everything went well, redirect to main.php */
@@ -508,7 +512,7 @@ class Index {
   }
 
   /* All login steps in the right order for CAS login */
-  static function casLoginProcess()
+  static function casLoginProcess ()
   {
     global $config, $message, $ui;
 
@@ -517,8 +521,6 @@ class Index {
     /* Reset error messages */
     $message = '';
 
-    //~ phpCAS::setDebug();
-
     // Initialize phpCAS
     phpCAS::client(
       CAS_VERSION_2_0,
@@ -529,7 +531,6 @@ class Index {
 
     // Set the CA certificate that is the issuer of the cert
     phpCAS::setCasServerCACert($config->get_cfg_value('casServerCaCertPath'));
-    //~ phpCAS::setNoCasServerValidation();
 
     // force CAS authentication
     phpCAS::forceAuthentication();
@@ -562,11 +563,11 @@ class Index {
 
     $ui->loadACL();
 
-    $success = static::runSteps(array(
+    $success = static::runSteps([
       'checkForLockingBranch',
       'loginAndCheckExpired',
       'runSchemaCheck',
-    ));
+    ]);
 
     if ($success) {
       /* Everything went well, redirect to main.php */
@@ -580,8 +581,8 @@ if ($config->get_cfg_value('httpAuthActivated') == 'TRUE') {
 } elseif ($config->get_cfg_value('casActivated') == 'TRUE') {
   require_once('CAS.php');
   /* Move FD autoload after CAS autoload */
-  spl_autoload_unregister('__fusiondirectory_autoload');
-  spl_autoload_register('__fusiondirectory_autoload');
+  spl_autoload_unregister('fusiondirectory_autoload');
+  spl_autoload_register('fusiondirectory_autoload');
   Index::casLoginProcess();
 } elseif ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE') {
   Index::headerAuthLoginProcess();
@@ -591,7 +592,7 @@ if ($config->get_cfg_value('httpAuthActivated') == 'TRUE') {
 }
 
 /* Translation of cookie-warning. Whether to display it, is determined by JavaScript */
-$smarty->assign ('cookies', '<b>'._('Warning').':</b> '._('Your browser has cookies disabled. Please enable cookies and reload this page before logging in!'));
+$smarty->assign('cookies', '<b>'._('Warning').':</b> '._('Your browser has cookies disabled. Please enable cookies and reload this page before logging in!'));
 
 /* Set focus to the error button if we've an error message */
 $focus = '';
diff --git a/html/main.php b/html/main.php
index 9433a3decf31039179aebd3eaccc2990ac0d8b25..334dfe1ca7d706e0592e7e09ecb903cadb0f6eda 100644
--- a/html/main.php
+++ b/html/main.php
@@ -25,7 +25,7 @@ $start = microtime();
 /* Basic setup, remove eventually registered sessions */
 require_once ("../include/php_setup.inc");
 require_once ("functions.inc");
-require_once ("variables.inc");
+require_once("variables.inc");
 
 /* Set headers */
 header('Content-type: text/html; charset=UTF-8');
@@ -40,66 +40,66 @@ textdomain($domain);
 
 /* Remember everything we did after the last click */
 session::start();
-session::set('errorsAlreadyPosted', array());
-session::global_set('runtime_cache', array());
+session::set('errorsAlreadyPosted', []);
+session::set('runtime_cache', []);
 session::set('limit_exceeded', FALSE);
 
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
-  @DEBUG (DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, $_POST, "_POST");
+  @DEBUG(DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, $_POST, "_POST");
 }
-@DEBUG (DEBUG_SESSION, __LINE__, __FUNCTION__, __FILE__, session::get_all(), "_SESSION");
+@DEBUG(DEBUG_SESSION, __LINE__, __FUNCTION__, __FILE__, session::get_all(), "_SESSION");
 
 /* Logged in? Simple security check */
-if (!session::global_is_set('connected')) {
-  logging::log('security', 'login', '', array(), 'main.php called without session - logging out');
-  header ('Location: index.php?message=nosession');
+if (!session::is_set('connected')) {
+  logging::log('security', 'login', '', [], 'main.php called without session - logging out');
+  header('Location: index.php?message=nosession');
   exit;
 }
 
 CSRFProtection::check();
 
-$ui     = session::global_get('ui');
-$config = session::global_get('config');
+$ui     = session::get('ui');
+$config = session::get('config');
 
 /* If SSL is forced, just forward to the SSL enabled site */
 if (($config->get_cfg_value('forcessl') == 'TRUE') && ($ssl != '')) {
-  header ("Location: $ssl");
+  header("Location: $ssl");
   exit;
 }
 
 timezone::setDefaultTimezoneFromConfig();
 
 /* Check for invalid sessions */
-if (session::global_get('_LAST_PAGE_REQUEST') != '') {
+if (session::get('_LAST_PAGE_REQUEST') != '') {
   /* check FusionDirectory.conf for defined session lifetime */
   $max_life = $config->get_cfg_value('sessionLifetime', 60 * 60 * 2);
 
   if ($max_life > 0) {
     /* get time difference between last page reload */
-    $request_time = (time() - session::global_get('_LAST_PAGE_REQUEST'));
+    $request_time = (time() - session::get('_LAST_PAGE_REQUEST'));
 
     /* If page wasn't reloaded for more than max_life seconds
      * kill session
      */
     if ($request_time > $max_life) {
       session::destroy();
-      logging::log('security', 'login', '', array(), 'main.php called with expired session - logging out');
-      header ('Location: index.php?signout=1&message=expired');
+      logging::log('security', 'login', '', [], 'main.php called with expired session - logging out');
+      header('Location: index.php?signout=1&message=expired');
       exit;
     }
   }
 }
-session::global_set('_LAST_PAGE_REQUEST', time());
+session::set('_LAST_PAGE_REQUEST', time());
 
 
-@DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
+@DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
 
 /* Set template compile directory */
 $smarty->compile_dir = $config->get_cfg_value("templateCompileDirectory", SPOOL_DIR);
 
 /* Preset current main base */
-if (!session::global_is_set('CurrentMainBase')) {
-  session::global_set('CurrentMainBase', get_base_from_people($ui->dn));
+if (!session::is_set('CurrentMainBase')) {
+  session::set('CurrentMainBase', get_base_from_people($ui->dn));
 }
 
 Language::init();
@@ -114,14 +114,14 @@ if (isset($global_check) && $config->get_cfg_value("forceglobals") == "TRUE") {
             _("Fatal error: Register globals is on. FusionDirectory will refuse to login unless this is fixed by an administrator."),
             FATAL_ERROR_DIALOG);
 
-  logging::log('security', 'login', '', array(), 'Register globals is on. For security reasons, this should be turned off.');
-  session::destroy ();
+  logging::log('security', 'login', '', [], 'Register globals is on. For security reasons, this should be turned off.');
+  session::destroy();
   exit;
 }
 
 /* Check Plugin variable */
-if (session::global_is_set('plugin_dir')) {
-  $old_plugin_dir = session::global_get('plugin_dir');
+if (session::is_set('plugin_dir')) {
+  $old_plugin_dir = session::get('plugin_dir');
 } else {
   $old_plugin_dir = "";
 }
@@ -133,14 +133,14 @@ $smarty->assign("hideMenus", FALSE);
 if ($config->get_cfg_value("handleExpiredAccounts") == "TRUE") {
   $expired = $ui->expired_status();
   if (($expired == POSIX_WARN_ABOUT_EXPIRATION) && !session::is_set('POSIX_WARN_ABOUT_EXPIRATION__DONE')) {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, 'This user account ('.$ui->uid.') is about to expire');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, 'This user account ('.$ui->uid.') is about to expire');
 
     // The users password is about to xpire soon, display a warning message.
-    logging::log('security', 'fusiondirectory', '', array(), 'password for user "'.$ui->uid.'" is about to expire');
+    logging::log('security', 'fusiondirectory', '', [], 'password for user "'.$ui->uid.'" is about to expire');
     msg_dialog::display(_('Password change'), _('Your password is about to expire, please change your password!'), INFO_DIALOG);
     session::set('POSIX_WARN_ABOUT_EXPIRATION__DONE', TRUE);
   } elseif ($expired == POSIX_FORCE_PASSWORD_CHANGE) {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, "This user account expired");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, "This user account expired");
 
     // The password is expired, we are now going to enforce a new one from the user.
 
@@ -164,15 +164,15 @@ if ($config->get_cfg_value("handleExpiredAccounts") == "TRUE") {
 if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])) {
   $plug       = validate($_GET['plug']);
   $plugin_dir = $plist->get_path($plug);
-  session::global_set('plugin_dir', $plugin_dir);
+  session::set('plugin_dir', $plugin_dir);
   if ($plugin_dir == '') {
-    logging::log('security', 'fusiondirectory', '', array(), "main.php called with invalid plug parameter \"$plug\"");
-    header ('Location: index.php?signout=1&message=invalidparameter&plug='.$plug);
+    logging::log('security', 'fusiondirectory', '', [], "main.php called with invalid plug parameter \"$plug\"");
+    header('Location: index.php?signout=1&message=invalidparameter&plug='.$plug);
     exit;
   }
 } else {
   /* set to welcome page as default plugin */
-  session::global_set('plugin_dir', 'welcome');
+  session::set('plugin_dir', 'welcome');
   $plugin_dir = "$BASE_DIR/plugins/generic/welcome";
 }
 
@@ -215,7 +215,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
   foreach ($_POST as $key => $value) {
     if (preg_match("/^back[0-9]+$/", $key)) {
       $back = substr($key, 4);
-      header ("Location: main.php?plug=$back");
+      header("Location: main.php?plug=$back");
       exit;
     }
   }
@@ -223,7 +223,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
 
 /* Redirect on password back event */
 if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['password_back'])) {
-  header ("Location: main.php");
+  header("Location: main.php");
   exit;
 }
 
@@ -234,11 +234,11 @@ if (isset($_GET['reset'])) {
 }
 
 /* show web frontend */
-$smarty->assign ("date", date("l, dS F Y H:i:s O"));
-$lang = session::global_get('lang');
-$smarty->assign ('lang',  preg_replace('/_.*$/', '', $lang));
-$smarty->assign ('rtl',   Language::isRTL($lang));
-$smarty->assign ('must',  '<span class="must">*</span>');
+$smarty->assign("date", date("l, dS F Y H:i:s O"));
+$lang = session::get('lang');
+$smarty->assign('lang',  preg_replace('/_.*$/', '', $lang));
+$smarty->assign('rtl',   Language::isRTL($lang));
+$smarty->assign('must',  '<span class="must">*</span>');
 if (isset($plug)) {
   $plug = "?plug=$plug";
 } else {
@@ -246,12 +246,12 @@ if (isset($plug)) {
 }
 
 if ($ui->ignore_acl_for_current_user()) {
-  $smarty->assign ('username', '<div style="color:#FF0000;">'._('User ACL checks disabled').'</div>&nbsp;'.$ui->uid);
+  $smarty->assign('username', '<div style="color:#FF0000;">'._('User ACL checks disabled').'</div>&nbsp;'.$ui->uid);
 } else {
-  $smarty->assign ('username', $ui->uid);
+  $smarty->assign('username', $ui->uid);
 }
-$smarty->assign ("menu", $plist->menu);
-$smarty->assign ("plug", "$plug");
+$smarty->assign("menu", $plist->menu);
+$smarty->assign("plug", "$plug");
 
 $smarty->assign("usePrototype", "false");
 
@@ -260,18 +260,18 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (isset($_POST['delete_lock']) || isset($_POST['open_readonly'])) {
 
     /* Set old Post data */
-    if (session::global_is_set('LOCK_VARS_USED_GET')) {
-      foreach (session::global_get('LOCK_VARS_USED_GET') as $name => $value) {
+    if (session::is_set('LOCK_VARS_USED_GET')) {
+      foreach (session::get('LOCK_VARS_USED_GET') as $name => $value) {
         $_GET[$name]  = $value;
       }
     }
-    if (session::global_is_set('LOCK_VARS_USED_POST')) {
-      foreach (session::global_get('LOCK_VARS_USED_POST') as $name => $value) {
+    if (session::is_set('LOCK_VARS_USED_POST')) {
+      foreach (session::get('LOCK_VARS_USED_POST') as $name => $value) {
         $_POST[$name] = $value;
       }
     }
-    if (session::global_is_set('LOCK_VARS_USED_REQUEST')) {
-      foreach (session::global_get('LOCK_VARS_USED_REQUEST') as $name => $value) {
+    if (session::is_set('LOCK_VARS_USED_REQUEST')) {
+      foreach (session::get('LOCK_VARS_USED_REQUEST') as $name => $value) {
         $_REQUEST[$name] = $value;
       }
     }
@@ -331,23 +331,6 @@ $focus .= '</script>';
 $smarty->assign('focus',      $focus);
 $smarty->assign('CSRFtoken',  CSRFProtection::getToken());
 
-/* Set channel if needed */
-//TODO: * move all global session calls to global_
-//      * create a new channel where needed (mostly management dialogues)
-//      * remove regulary created channels when not needed anymore
-//      * take a look at external php calls (i.e. get fax, ldif, etc.)
-//      * handle aborted sessions (by pressing anachors i.e. Main, Menu, etc.)
-//      * check lock removals, is "dn" global or not in this case?
-//      * last page request -> global or not?
-//      * check that filters are still global
-//      * maxC global?
-if (isset($_POST['_channel_'])) {
-  echo "DEBUG - current channel: ".$_POST['_channel_'];
-  $smarty->assign("channel", $_POST['_channel_']);
-} else {
-  $smarty->assign("channel", "");
-}
-
 if (class_available('Game')) {
   $smarty->assign('game_screen', Game::run());
 } else {
@@ -361,8 +344,6 @@ $display  = $smarty->fetch(get_template_path('headers.tpl')).
 echo $display;
 
 /* Save plist and config */
-session::global_set('plist', $plist);
-session::global_set('config', $config);
-session::set('errorsAlreadyPosted', array());
-
-?>
+session::set('plist', $plist);
+session::set('config', $config);
+session::set('errorsAlreadyPosted', []);
diff --git a/html/progress.php b/html/progress.php
index 782bb2759f130f0cad9ad8f52658c0aee36a3992..e86554bdde45bd99a3d7479cbf3032cfafeb6f99 100644
--- a/html/progress.php
+++ b/html/progress.php
@@ -24,10 +24,10 @@ session_cache_limiter("private");
 
 /* Check for parameter completenes */
 if (!isset($_GET['x']) || !isset($_GET['y']) || !isset($_GET['p'])) {
-  die ("Missing parameters!");
+  die("Missing parameters!");
 }
 if (!is_numeric($_GET['x']) || !is_numeric($_GET['y'])) {
-  die ("Parameters must be numeric!");
+  die("Parameters must be numeric!");
 }
 
 $p = (int)($_GET['p']);
@@ -40,7 +40,7 @@ if ($p < 0) {
 } elseif ($p > 100) {
   $p = 100;
 }
-$p = intval ($p);
+$p = intval($p);
 
 /* Check dimensions */
 if ($x < 3 || $x > 1000) {
@@ -58,7 +58,7 @@ if (!function_exists("imagecreate")) {
 
   $x_matches = FALSE;
   $y_matches = FALSE;
-  foreach (array(7,6,5,4,3,2,1,0) as $font) {
+  foreach ([7,6,5,4,3,2,1,0] as $font) {
     $fx = ImageFontWidth($font) * strlen("$p%");
     $fy = ImageFontHeight($font);
 
@@ -75,9 +75,9 @@ if (!function_exists("imagecreate")) {
   }
 
   /* Draw image in GD image stream */
-  $im = imagecreate ($x, $y);
+  $im = imagecreat($x, $y);
   if (!$im) {
-    die ('Cannot Initialize new GD image stream');
+    die('Cannot Initialize new GD image stream');
   }
 
   /* Set colors */
@@ -87,18 +87,18 @@ if (!function_exists("imagecreate")) {
   $tx_color = imagecolorallocate($im, 240,  10,   90);
 
   /* Draw progress bar */
-  imagerectangle ($im, 0, 0, $x - 1, $y - 1, $br_color);
-  imagefilledrectangle ($im, 1, 1, (($x - 2) * $p / 100),
+  imagerectangle($im, 0, 0, $x - 1, $y - 1, $br_color);
+  imagefilledrectangle($im, 1, 1, (($x - 2) * $p / 100),
       $y - 2, $fi_color);
 
   /* Is font to big for progress bar? */
   if ($font != 0) {
-    imagestring ($im, $font, ($x - $fx) / 2, ($y - $fy) / 2, "$p%", $tx_color);
+    imagestring($im, $font, ($x - $fx) / 2, ($y - $fy) / 2, "$p%", $tx_color);
   }
 
   /* Finally draw the image and remove context */
-  header ("Content-type: image/png");
-  imagepng ($im);
-  imagedestroy ($im);
+  header("Content-type: image/png");
+  imagepng($im);
+  imagedestroy($im);
 }
 ?>
diff --git a/html/setup.php b/html/setup.php
index 9167b8bee16e53b159e0f6e88787192fdf50d769..4569caba6b079ddf0ff8c947515278b27d109d56 100644
--- a/html/setup.php
+++ b/html/setup.php
@@ -22,7 +22,7 @@
 /* Get standard functions */
 require_once ("../include/php_setup.inc");
 require_once ("functions.inc");
-require_once ("variables.inc");
+require_once("variables.inc");
 
 require_once("../setup/class_setup.inc");
 require_once("../setup/class_setupStep.inc");
@@ -49,8 +49,8 @@ ini_set("session.gc_maxlifetime", 24 * 60 * 60);
 
 /* Start session */
 session::start();
-session::global_set('DEBUGLEVEL', 0);
-session::set('errorsAlreadyPosted', array());
+session::set('DEBUGLEVEL', 0);
+session::set('errorsAlreadyPosted', []);
 
 CSRFProtection::check();
 
@@ -75,8 +75,8 @@ if (isset($_POST['lang_selected']) && $_POST['lang_selected'] != '') {
   if (!preg_match('/utf(-)?8$/i', $lang)) {
     $lang .= '.UTF-8';
   }
-} elseif (session::global_is_set('lang')) {
-  $lang = session::global_get('lang');
+} elseif (session::is_set('lang')) {
+  $lang = session::get('lang');
 
   /* Append .UTF-8 to language string if necessary */
   if (!preg_match('/utf(-)?8$/i', $lang)) {
@@ -92,11 +92,11 @@ $smarty->assign("rtl",  Language::isRTL($lang));
 $smarty->assign("must", '<span class="must">*</span>');
 
 /* Minimal config */
-if (!session::global_is_set('config')) {
+if (!session::is_set('config')) {
   $config = new config('');
-  session::global_set('config', $config);
+  session::set('config', $config);
 }
-$config = session::global_get('config');
+$config = session::get('config');
 IconTheme::loadThemes('themes');
 /* Fake user bypassing acl system */
 $ui = new fake_userinfo();
@@ -109,7 +109,7 @@ $focus .= 'next_msg_dialog();';
 $focus .= '</script>';
 
 /* show web frontend */
-$setup = session::global_get('setup');
+$setup = session::get('setup');
 
 $smarty->assign('date',           date('l, dS F Y H:i:s O'));
 $smarty->assign('headline',       $setup->get_header_text());
diff --git a/html/themes/breezy/icons/16/apps/internet-mail.png b/html/themes/breezy/icons/16/apps/internet-mail.png
new file mode 100644
index 0000000000000000000000000000000000000000..c36d6c9b16d8698865f4c7a40666737a95dd7f66
Binary files /dev/null and b/html/themes/breezy/icons/16/apps/internet-mail.png differ
diff --git a/html/themes/breezy/icons/48/apps/internet-mail.png b/html/themes/breezy/icons/48/apps/internet-mail.png
new file mode 100644
index 0000000000000000000000000000000000000000..62da1fd79d3dcca731ec09a1ce245db537b18576
Binary files /dev/null and b/html/themes/breezy/icons/48/apps/internet-mail.png differ
diff --git a/html/themes/breezy/svg/16/apps/internet-mail.svg b/html/themes/breezy/svg/16/apps/internet-mail.svg
new file mode 100644
index 0000000000000000000000000000000000000000..24500b63f6d176c331a25d05556d2b67139e12cb
--- /dev/null
+++ b/html/themes/breezy/svg/16/apps/internet-mail.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg3049"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="internet-mail.svg"
+   inkscape:export-filename="internet-mail.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3051">
+    <style
+       type="text/css"
+       id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#4d4d4d;
+      }
+      .ColorScheme-Background {
+        color:#eff0f1;
+      }
+      .ColorScheme-Highlight {
+        color:#3daee9;
+      }
+      .ColorScheme-ViewText {
+        color:#31363b;
+      }
+      .ColorScheme-ViewBackground {
+        color:#fcfcfc;
+      }
+      .ColorScheme-ViewHover {
+        color:#93cee9;
+      }
+      .ColorScheme-ViewFocus{
+        color:#3daee9;
+      }
+      .ColorScheme-ButtonText {
+        color:#31363b;
+      }
+      .ColorScheme-ButtonBackground {
+        color:#eff0f1;
+      }
+      .ColorScheme-ButtonHover {
+        color:#93cee9;
+      }
+      .ColorScheme-ButtonFocus{
+        color:#3daee9;
+      }
+      </style>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="24.411306"
+     inkscape:cx="3.4083283"
+     inkscape:cy="7.7717888"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1878"
+     inkscape:window-height="1051"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:showpageshadow="false"
+     borderlayer="true"
+     inkscape:snap-bbox="true"
+     inkscape:snap-global="false"
+     inkscape:object-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4085" />
+    <sodipodi:guide
+       position="2.0000044,14.00003"
+       orientation="12,0"
+       id="guide4075" />
+    <sodipodi:guide
+       position="2.0000044,2.0000296"
+       orientation="0,12"
+       id="guide4077" />
+    <sodipodi:guide
+       position="14.000004,2.0000296"
+       orientation="-12,0"
+       id="guide4079" />
+    <sodipodi:guide
+       position="14.000004,14.00003"
+       orientation="0,-12"
+       id="guide4081" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3054">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Capa 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-421.71429,-531.79074)">
+    <path
+       style="fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="M 1 2 L 1 14 L 15 14 L 15 2 L 1 2 z M 2.7070312 3 L 13.292969 3 L 8 8.2929688 L 2.7070312 3 z M 2 3.7070312 L 5.9335938 7.640625 L 2 12.230469 L 2 3.7070312 z M 14 3.7070312 L 14 12.232422 L 10.066406 7.640625 L 14 3.7070312 z M 6.6425781 8.3496094 L 8 9.7070312 L 9.3574219 8.3496094 L 13.341797 13 L 2.65625 13 L 6.6425781 8.3496094 z "
+       transform="translate(421.71429,531.79074)"
+       id="rect4157"
+       class="ColorScheme-Text" />
+  </g>
+</svg>
diff --git a/html/themes/breezy/svg/48/apps/internet-mail.svg b/html/themes/breezy/svg/48/apps/internet-mail.svg
new file mode 100644
index 0000000000000000000000000000000000000000..803e36835782b377a3466178ef8e57bfa3241050
--- /dev/null
+++ b/html/themes/breezy/svg/48/apps/internet-mail.svg
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg5453"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="internet-mail.svg"
+   inkscape:export-filename="internet-mail.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs5455">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4143">
+      <stop
+         style="stop-color:#197cf1;stop-opacity:1"
+         offset="0"
+         id="stop4145" />
+      <stop
+         style="stop-color:#20bcfa;stop-opacity:1"
+         offset="1"
+         id="stop4147" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.4285708,0,0,1.4285708,-163.67325,-235.92121)"
+       y2="517.79797"
+       x2="400.57144"
+       y1="545.79797"
+       x1="400.57144"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3028"
+       xlink:href="#linearGradient4303"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4227"
+       inkscape:collect="always">
+      <stop
+         id="stop4229"
+         offset="0"
+         style="stop-color:#292c2f;stop-opacity:1" />
+      <stop
+         id="stop4231"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4143"
+       id="linearGradient4287"
+       x1="409.57144"
+       y1="532.79797"
+       x2="409.57144"
+       y2="512.79797"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4227"
+       id="linearGradient4297"
+       x1="396.57147"
+       y1="510.798"
+       x2="421.57144"
+       y2="535.79797"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-384.57143,-499.798)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4303">
+      <stop
+         style="stop-color:#c6cdd1;stop-opacity:1"
+         offset="0"
+         id="stop4305" />
+      <stop
+         style="stop-color:#e0e5e7;stop-opacity:1"
+         offset="1"
+         id="stop4307" />
+    </linearGradient>
+    <style
+       id="current-color-scheme"
+       type="text/css">
+      .ColorScheme-Text {
+        color:#4d4d4d;
+      }
+      .ColorScheme-Background {
+        color:#eff0f1;
+      }
+      .ColorScheme-Highlight {
+        color:#3daee9;
+      }
+      .ColorScheme-ViewText {
+        color:#31363b;
+      }
+      .ColorScheme-ViewBackground {
+        color:#fcfcfc;
+      }
+      .ColorScheme-ViewHover {
+        color:#93cee9;
+      }
+      .ColorScheme-ViewFocus{
+        color:#3daee9;
+      }
+      .ColorScheme-ButtonText {
+        color:#31363b;
+      }
+      .ColorScheme-ButtonBackground {
+        color:#eff0f1;
+      }
+      .ColorScheme-ButtonHover {
+        color:#93cee9;
+      }
+      .ColorScheme-ButtonFocus{
+        color:#3daee9;
+      }
+      </style>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.999999"
+     inkscape:cx="24.203816"
+     inkscape:cy="15.10496"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1880"
+     inkscape:window-height="1051"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:showpageshadow="false"
+     borderlayer="true"
+     showguides="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4063" />
+    <sodipodi:guide
+       position="1.1650391e-05,47.999996"
+       orientation="4,0"
+       id="guide4146" />
+    <sodipodi:guide
+       position="1.1650391e-05,43.999996"
+       orientation="0,48"
+       id="guide4148" />
+    <sodipodi:guide
+       position="48.000012,43.999996"
+       orientation="-4,0"
+       id="guide4150" />
+    <sodipodi:guide
+       position="48.000012,47.999996"
+       orientation="0,-48"
+       id="guide4152" />
+    <sodipodi:guide
+       position="1.1650391e-05,4.0000264"
+       orientation="4,0"
+       id="guide4154" />
+    <sodipodi:guide
+       position="1.1650391e-05,2.6367188e-05"
+       orientation="0,48"
+       id="guide4156" />
+    <sodipodi:guide
+       position="48.000012,2.6367188e-05"
+       orientation="-4,0"
+       id="guide4158" />
+    <sodipodi:guide
+       position="48.000012,4.0000264"
+       orientation="0,-48"
+       id="guide4160" />
+    <sodipodi:guide
+       position="48.000012,48.000026"
+       orientation="0,-4"
+       id="guide4162" />
+    <sodipodi:guide
+       position="44.000012,48.000026"
+       orientation="48,0"
+       id="guide4164" />
+    <sodipodi:guide
+       position="44.000012,2.6367188e-05"
+       orientation="0,4"
+       id="guide4166" />
+    <sodipodi:guide
+       position="48.000012,2.6367188e-05"
+       orientation="-48,0"
+       id="guide4168" />
+    <sodipodi:guide
+       position="4.0000422,48.000026"
+       orientation="0,-4"
+       id="guide4170" />
+    <sodipodi:guide
+       position="4.2167969e-05,48.000026"
+       orientation="48,0"
+       id="guide4172" />
+    <sodipodi:guide
+       position="4.2167969e-05,2.6367188e-05"
+       orientation="0,4"
+       id="guide4174" />
+    <sodipodi:guide
+       position="4.0000422,2.6367188e-05"
+       orientation="-48,0"
+       id="guide4176" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata5458">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Capa 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-384.57143,-499.798)">
+    <rect
+       style="fill:url(#linearGradient3028);fill-opacity:1.0;stroke:none"
+       id="rect4130-0"
+       width="40"
+       height="40.000019"
+       x="388.57144"
+       y="503.78983"
+       ry="20" />
+    <path
+       style="opacity:0.2;fill:url(#linearGradient4297);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 36 15 L 35 32 L 12 33 L 22.966797 43.966797 C 22.967448 43.96683 22.968099 43.966764 22.96875 43.966797 C 23.310575 43.984012 23.65375 43.992188 24 43.992188 C 35.08 43.992188 44 35.072188 44 23.992188 C 44 23.651171 43.991312 23.311337 43.974609 22.974609 L 36 15 z "
+       transform="translate(384.57143,499.798)"
+       id="path4289" />
+    <path
+       inkscape:connector-curvature="0"
+       style="text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4287);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 396.57143,514.798 0,18 24,0 0,-18 -24,0 z m 2.12109,1.5 19.75782,0 -9.87891,9.87891 -9.87891,-9.87891 z m -0.62109,1.5 6,6 -6,6 0,-12 z m 21,0 0,12 -6,-6 6,-6 z m -13.93946,7.06055 3.43946,3.43945 3.43946,-3.43945 6.43945,6.43945 -19.75782,0 6.43946,-6.43945 z"
+       id="rect4144"
+       class="ColorScheme-Text" />
+  </g>
+</svg>
diff --git a/html/themes/legacy/icons/16/apps/internet-mail.png b/html/themes/legacy/icons/16/apps/internet-mail.png
new file mode 100644
index 0000000000000000000000000000000000000000..859251fe0fcdbdf20de5040a802825ce977c1a24
Binary files /dev/null and b/html/themes/legacy/icons/16/apps/internet-mail.png differ
diff --git a/html/themes/legacy/icons/48/apps/internet-mail.png b/html/themes/legacy/icons/48/apps/internet-mail.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f4df1620e816f91972f76237aa44fda7908a227
Binary files /dev/null and b/html/themes/legacy/icons/48/apps/internet-mail.png differ
diff --git a/html/themes/legacy/svg/internet-mail.svg b/html/themes/legacy/svg/internet-mail.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8d5ea8cd324349192176297769b1d58c90a9190b
--- /dev/null
+++ b/html/themes/legacy/svg/internet-mail.svg
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="internet-mail.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg5816"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective73" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient28260">
+      <stop
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop28262" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop28264" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient28254">
+      <stop
+         id="stop28256"
+         offset="0.0000000"
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop28258"
+         offset="1.0000000"
+         style="stop-color:none" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2274">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.12871288;"
+         offset="0.0000000"
+         id="stop2276" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9749">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9751" />
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9753" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2152">
+      <stop
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2154" />
+      <stop
+         style="stop-color:#b5beb5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2156" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2166">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2168" />
+      <stop
+         style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2170" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18913">
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop18915" />
+      <stop
+         style="stop-color:#c8c8c8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop18917" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2136">
+      <stop
+         style="stop-color:#989690;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2138" />
+      <stop
+         style="stop-color:#656460;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2140" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15107">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15109" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15111" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10691"
+       inkscape:collect="always">
+      <stop
+         id="stop10693"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10695"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="7.2284161"
+       fy="73.615714"
+       fx="6.7027131"
+       cy="73.615714"
+       cx="6.7027131"
+       gradientTransform="scale(1.902215,0.525703)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient11382"
+       xlink:href="#linearGradient10691"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="32.203162"
+       x2="9.7619219"
+       y1="37.784682"
+       x1="8.7803760"
+       gradientTransform="matrix(2.394900,0.000000,0.000000,0.781058,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27463"
+       xlink:href="#linearGradient2274"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="24.132717"
+       x2="21.111549"
+       y1="13.686079"
+       x1="11.233107"
+       gradientTransform="matrix(1.370928,0.000000,0.000000,1.443758,2.431133,-0.140786)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27468"
+       xlink:href="#linearGradient9749"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="52.090678"
+       x2="9.8855033"
+       y1="37.197018"
+       x1="8.9156475"
+       gradientTransform="matrix(2.454781,0.000000,0.000000,0.762004,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27471"
+       xlink:href="#linearGradient2152"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="52.090678"
+       x2="9.8855033"
+       y1="37.197018"
+       x1="8.9156475"
+       gradientTransform="matrix(2.454781,0.000000,0.000000,0.762004,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27474"
+       xlink:href="#linearGradient2152"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="29.568739"
+       x2="15.310744"
+       y1="15.148383"
+       x1="10.184240"
+       gradientTransform="matrix(1.819266,0.000000,0.000000,1.028193,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27477"
+       xlink:href="#linearGradient2166"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="17.876846"
+       x2="13.467486"
+       y1="7.2310905"
+       x1="5.8266134"
+       gradientTransform="matrix(1.570607,0.000000,0.000000,1.190976,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27483"
+       xlink:href="#linearGradient18913"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="26.022910"
+       x2="18.475286"
+       y1="4.7461626"
+       x1="11.572842"
+       gradientTransform="matrix(1.343475,0.000000,0.000000,1.417854,2.879511,0.314599)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27486"
+       xlink:href="#linearGradient15107"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="15.257116"
+       x2="30.599684"
+       y1="15.257116"
+       x1="2.0618774"
+       gradientTransform="matrix(1.343475,0.000000,0.000000,1.417854,2.879511,0.314599)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27488"
+       xlink:href="#linearGradient2136"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="105"
+     inkscape:window-x="331"
+     inkscape:window-height="743"
+     inkscape:window-width="872"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="18.816166"
+     inkscape:cx="28.384904"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Mail</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>mail</rdf:li>
+            <rdf:li>e-mail</rdf:li>
+            <rdf:li>MUA</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       transform="matrix(2.269972e-2,0,0,2.297929e-2,44.98918,37.78447)"
+       id="g6707">
+      <rect
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6709"
+         width="1339.6335"
+         height="478.35718"
+         x="-1559.2523"
+         y="-150.69685" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         id="path6711"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path6713"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <path
+       style="fill:url(#linearGradient27486);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient27488);stroke-width:0.85660440;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 6.3334395,16.972251 L 6.3334395,41.481799 L 43.305555,41.481799 L 43.244499,17.089859 C 43.241050,15.712272 31.395999,2.4121110 29.210877,2.4121110 L 20.659391,2.4121110 C 18.362072,2.4121110 6.3334395,15.673953 6.3334395,16.972251 z "
+       id="path12723"
+       sodipodi:nodetypes="ccczzzz" />
+    <path
+       style="fill:url(#linearGradient27483);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 6.9230610,16.787103 C 6.5250222,16.356975 18.809966,3.0935378 20.667210,3.0935378 L 29.042965,3.0935378 C 30.790449,3.0935378 43.079567,16.221603 42.470079,16.978956 L 31.608858,30.475150 L 19.295373,30.156846 L 6.9230610,16.787103 z "
+       id="path18153"
+       sodipodi:nodetypes="czzzccz" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 19.077530,30.017590 L 11.744526,21.271586 L 36.562951,14.335513 L 39.592221,20.551966 L 32.175956,29.992298"
+       id="path2164"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.291767,29.836259 L 10.809167,21.026146 L 35.456637,14.132812 L 38.630714,20.403811 L 31.390193,29.810968"
+       id="path2162"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.775313,29.957146 L 11.100386,21.296624 L 36.068405,14.232329 L 39.354114,20.824726 L 31.873739,29.931855"
+       id="path2160"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#linearGradient27477);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.593984,30.440693 L 11.260975,21.694689 L 35.972554,14.801355 L 39.083369,21.188770 L 31.963198,30.174701"
+       id="path15105"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#linearGradient27474);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 20.488434,29.064331 L 7.0924698,40.036319 L 21.001312,30.432013 L 30.019470,30.432013 L 42.438517,39.914206 L 30.575092,29.064331 L 20.488434,29.064331 z "
+       id="path14245"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="color:#000000;fill:url(#linearGradient27471);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 6.9634751,16.885144 L 18.479648,31.201334 L 19.548151,30.346532 L 6.9634751,16.885144 z "
+       id="path14339"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient27468);stroke-width:0.85660428;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 7.3077115,17.131415 L 7.3388644,40.342421 L 42.283659,40.342421 L 42.221353,17.257512 C 42.219329,16.508413 31.005032,3.4591863 28.837233,3.4591863 L 20.941579,3.4591863 C 18.689313,3.4591863 7.3066655,16.351067 7.3077115,17.131415 z "
+       id="path15103"
+       sodipodi:nodetypes="ccczzzz" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 20.957271,30.452732 L 9.0157722,38.723588 L 11.235205,38.729695 L 21.233330,31.860755 L 30.055238,30.437917 L 20.957271,30.452732 z "
+       id="path17393"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 11.427536,21.670296 L 12.752479,23.080719 L 35.543311,16.196529 L 38.458445,21.878896 L 39.072496,21.166981 L 36.003081,14.789145 L 11.427536,21.670296 z "
+       id="path2174"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:url(#linearGradient27463);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 13.308098,23.636340 L 19.334450,30.090093 L 20.531174,29.064331 L 30.617831,29.107071 L 31.429893,29.833651 L 35.404721,25.089502 C 34.250740,23.679081 13.308098,23.636340 13.308098,23.636340 z "
+       id="path2272"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path27492"
+       d="M 41.812936,17.847945 L 31.861315,30.479232 L 30.792812,29.624431 L 41.812936,17.847945 z "
+       style="color:#000000;fill:#b1b1b1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
diff --git a/ihtml/themes/breezy/framework.tpl b/ihtml/themes/breezy/framework.tpl
index 67a78dd235146dc71ecef2d79bf5f282d78cbf89..0904b2072d7e8a6733dd754b725bc55c110ffeec 100644
--- a/ihtml/themes/breezy/framework.tpl
+++ b/ihtml/themes/breezy/framework.tpl
@@ -44,9 +44,6 @@
             <div class="plugin-window">
               {$contents}
             </div>
-            {if $channel != ""}
-                <input type="hidden" name="_channel_" value="{$channel}"/>
-            {/if}
           </td>
         </tr>
       </tbody>
diff --git a/ihtml/themes/breezy/login.tpl b/ihtml/themes/breezy/login.tpl
index 28ce334d15ce6bed494c75b37718b796804a0215..32b3df902bacb0fe1ece8de636761d271fde5598 100644
--- a/ihtml/themes/breezy/login.tpl
+++ b/ihtml/themes/breezy/login.tpl
@@ -61,7 +61,7 @@
   <div id="window-footer" class="plugbottom">
     <div>
       <!-- Display error message on demand -->
-      {$message}
+      {$message|escape}
     </div>
     <div>
       <input type="submit" name="login" value="{t}Sign in{/t}" title="{t}Click here to log in{/t}"/>
diff --git a/ihtml/themes/legacy/login.tpl b/ihtml/themes/legacy/login.tpl
index fd469c89505a558766b58fdd4146168f281fcb0c..55a474b15e3032a7ac1b3fa51dd7e876e18232a6 100644
--- a/ihtml/themes/legacy/login.tpl
+++ b/ihtml/themes/legacy/login.tpl
@@ -61,7 +61,7 @@
   <div id="window-footer" class="plugbottom">
     <div>
       <!-- Display error message on demand -->
-      {$message}
+      {$message|escape}
     </div>
     <div>
       <input type="submit" name="login" value="{t}Sign in{/t}" title="{t}Click here to log in{/t}"/>
diff --git a/include/accept-to-gettext.inc b/include/accept-to-gettext.inc
index d4f1714694d4879e166848a310d4a895d7ff2480..c78c7cdd4f771d07c552e15862429976c5692f9f 100644
--- a/include/accept-to-gettext.inc
+++ b/include/accept-to-gettext.inc
@@ -74,7 +74,7 @@
  */
 function parse_scores ($str)
 {
-  $scores = array();
+  $scores = [];
   $parts = preg_split('/,/', $str);
   foreach ($parts as $part) {
     $part = trim(strtolower($part));
@@ -109,13 +109,13 @@ function max_scores ($scores, $testvals)
 function parse_gettext_lang ($str)
 {
   if (preg_match("/^([^_]*)(_([^_]*))?\.(.*)$/", $str, $m)) {
-    return array(strtolower($m[1]), strtolower($m[3]), strtolower($m[4]));
+    return [strtolower($m[1]), strtolower($m[3]), strtolower($m[4])];
   } else {
     return FALSE;
   }
 }
 
-function al2gt($gettextlangs)
+function al2gt ($gettextlangs)
 {
   /* Check if ACCEPT_LANGUAGE isset */
   if (empty($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
@@ -155,10 +155,10 @@ function al2gt($gettextlangs)
     if (!($infos = parse_gettext_lang($gtlang))) {
       continue;
     }
-    list ($lang, $country, $char) = $infos;
+    list($lang, $country, $char) = $infos;
 
-    $lang_score = max_scores($lang_scores, array($lang,$lang.'-'.$country,'*'));
-    $char_score = max_scores($char_scores, array($char,'*'));
+    $lang_score = max_scores($lang_scores, [$lang,$lang.'-'.$country,'*']);
+    $char_score = max_scores($char_scores, [$char,'*']);
     if ($char_score == 0) {
       // exclude charsets the user refuses
       continue;
diff --git a/include/class_CSRFProtection.inc b/include/class_CSRFProtection.inc
index 27a63f8ef43ea88b7bc15b5b817a41669e434e1b..8bbb98578b450027a2d34c4949b1acd556ad4891 100644
--- a/include/class_CSRFProtection.inc
+++ b/include/class_CSRFProtection.inc
@@ -20,7 +20,7 @@
 
 class CSRFProtection
 {
-  public static function check()
+  public static function check ()
   {
     if (empty($_POST)) {
       return;
@@ -36,7 +36,7 @@ class CSRFProtection
     }
   }
 
-  public static function getToken()
+  public static function getToken ()
   {
     if (!session::is_set('CSRFtoken')) {
       session::set('CSRFtoken', standAlonePage::generateRandomHash());
@@ -44,7 +44,7 @@ class CSRFProtection
     return session::get('CSRFtoken');
   }
 
-  public static function checkHeaders()
+  public static function checkHeaders ()
   {
     $origin = FALSE;
     if (!empty($_SERVER['HTTP_ORIGIN'])) {
diff --git a/include/class_Combinations.inc b/include/class_Combinations.inc
index 2821f6df5717e39ad4d3ff69feb0ae1f30de5da4..65027c70e8df4d852b58736a2f86495aa3834768 100644
--- a/include/class_Combinations.inc
+++ b/include/class_Combinations.inc
@@ -28,7 +28,7 @@ class Combinations implements Iterator
   protected $size     = 0;
   protected $pos      = 0;
 
-  function __construct(array $input, $size)
+  function __construct (array $input, $size)
   {
     $this->input = array_values($input);
     $this->n = count($this->input);
@@ -36,21 +36,21 @@ class Combinations implements Iterator
     $this->rewind();
   }
 
-  function key()
+  function key ()
   {
     return $this->pos;
   }
 
-  function current()
+  function current ()
   {
-    $r = array();
+    $r = [];
     for ($i = 0; $i < $this->size; $i++) {
       $r[] = $this->input[$this->current[$i]];
     }
     return $r;
   }
 
-  function next()
+  function next ()
   {
     if ($this->_next()) {
       $this->pos++;
@@ -59,18 +59,18 @@ class Combinations implements Iterator
     }
   }
 
-  function rewind()
+  function rewind ()
   {
     $this->current  = range(0, $this->size);
     $this->pos      = 0;
   }
 
-  function valid()
+  function valid ()
   {
     return ($this->pos >= 0);
   }
 
-  protected function _next()
+  protected function _next ()
   {
     $i = $this->size - 1;
     while (($i >= 0) && ($this->current[$i] == $this->n - $this->size + $i)) {
diff --git a/include/class_CopyPasteHandler.inc b/include/class_CopyPasteHandler.inc
index 15586d2de8970170d8337bfc65d437ded5997eb0..742dccb6709952d5eb160494f6a6ac0fcbe8d644 100644
--- a/include/class_CopyPasteHandler.inc
+++ b/include/class_CopyPasteHandler.inc
@@ -34,29 +34,29 @@ class CopyPasteHandler
   /*!
    * \brief This array contains all dns of the currently copied objects
    */
-  protected $objectList = array();
+  protected $objectList = [];
   /*!
    * \brief This array contains all remaining objects to paste
    */
-  protected $queue = array();
+  protected $queue = [];
 
   /*!
    *  \brief The dn of the last edited object
    */
   var $lastdn = "";
 
-  var $disallowed_objects = array();
-  var $objects_to_fix     = array();
-  var $clean_objects      = array();
+  var $disallowed_objects = [];
+  var $objects_to_fix     = [];
+  var $clean_objects      = [];
   var $require_update     = FALSE;
 
   /*!
    * \brief Create CP handler
    */
-  function __construct()
+  function __construct ()
   {
     $this->current  = NULL;
-    $this->queue    = array();
+    $this->queue    = [];
   }
 
 
@@ -73,16 +73,16 @@ class CopyPasteHandler
    *
    * \param String $type the type of the object
    */
-  function add_to_queue($dn, $action, $type)
+  function add_to_queue ($dn, $action, $type)
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'add_to_queue');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'add_to_queue');
 
-    if (!in_array($action, array('cut','copy'))) {
+    if (!in_array($action, ['cut','copy'])) {
       trigger_error(sprintf('Specified action "%s" does not exists for copy & paste.', $action));
       return FALSE;
     }
 
-    $tmp = array();
+    $tmp = [];
 
     $tmp['method']  = $action;
     $tmp['dn']      = $dn;
@@ -108,18 +108,18 @@ class CopyPasteHandler
    *    Remove hdd dumps of current entries too.
    *    Remove entries older than 24 hours.
    */
-  function cleanup_queue()
+  function cleanup_queue ()
   {
     $this->current        = FALSE;
     $this->require_update = TRUE;
-    $this->queue          = array();
-    $this->objectList     = array();
+    $this->queue          = [];
+    $this->objectList     = [];
   }
 
   /*!
    * \brief This resets the queue to allow pasting again.
    */
-  function resetPaste()
+  function resetPaste ()
   {
     $this->current        = FALSE;
     $this->require_update = TRUE;
@@ -129,7 +129,7 @@ class CopyPasteHandler
   /*!
    * \brief Check if there are still entries the object queue
    */
-  function entries_queued()
+  function entries_queued ()
   {
     return ((count($this->queue) > 0) || ($this->current != FALSE));
   }
@@ -137,11 +137,11 @@ class CopyPasteHandler
   /*!
    * \brief Paste one entry from LDAP
    */
-  protected function load_entry_from_ldap($entry, $base)
+  protected function load_entry_from_ldap ($entry, $base)
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $entry['dn'], 'load_entry_from_ldap');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $entry['dn'], 'load_entry_from_ldap');
     if (!isset($entry['tab_class']) && !isset($entry['type'])) {
-      return array();
+      return [];
     }
 
     $entry['object'] = objects::open($entry['dn'], $entry['type']);
@@ -164,7 +164,7 @@ class CopyPasteHandler
    * \brief Displays a dialog which allows the user to fix all dependencies of this object.
    *      Create unique names, ids, or what ever
    */
-  function execute($base)
+  function execute ($base)
   {
     $ui = get_userinfo();
 
@@ -172,9 +172,9 @@ class CopyPasteHandler
      * Create a list of all entries that can be pasted directly.
      */
     if ($this->require_update) {
-      $this->clean_objects      = array();
-      $this->objects_to_fix     = array();
-      $this->disallowed_objects = array();
+      $this->clean_objects      = [];
+      $this->objects_to_fix     = [];
+      $this->disallowed_objects = [];
 
       /* Put each queued object in one of the above arrays */
       foreach ($this->queue as $key => $entry) {
@@ -199,7 +199,7 @@ class CopyPasteHandler
         }
       }
       if (count($this->disallowed_objects)) {
-        $dns = array();
+        $dns = [];
         foreach ($this->disallowed_objects as $entry) {
           $dns[] = $entry['dn'];
         }
@@ -272,7 +272,7 @@ class CopyPasteHandler
     return '';
   }
 
-  private function current_saved()
+  private function current_saved ()
   {
     $this->lastdn   = $this->current['object']->dn;
     $this->handleReferences();
@@ -284,7 +284,7 @@ class CopyPasteHandler
    *
    * \return the dn of the last edited entry
    */
-  function last_entry()
+  function last_entry ()
   {
     return $this->lastdn;
   }
@@ -293,7 +293,7 @@ class CopyPasteHandler
   /*!
    * \brief Save new values posted by copy & paste dialog
    */
-  function save_object()
+  function save_object ()
   {
     if (isset($_POST['abort_current_cut-copy_operation'])) {
       $this->current = FALSE;
@@ -305,7 +305,7 @@ class CopyPasteHandler
     }
   }
 
-  function handleReferences()
+  function handleReferences ()
   {
     $dst_dn = $this->current['object']->dn;
     $src_dn = $this->current['dn'];
@@ -322,7 +322,7 @@ class CopyPasteHandler
    *
    * \return the paste icon for headpages
    */
-  function generatePasteIcon()
+  function generatePasteIcon ()
   {
     $Copy_Paste = "&nbsp;<img class='center' src='images/lists/seperator.png' alt='' height='16' width='1'>&nbsp;";
     if ($this->entries_queued()) {
diff --git a/include/class_IconTheme.inc b/include/class_IconTheme.inc
index 38c39890762f5df83b6812b0222f196d4bf0dd17..38f856e8d5d80bc6c33869889219c6b3a477fd63 100644
--- a/include/class_IconTheme.inc
+++ b/include/class_IconTheme.inc
@@ -49,12 +49,12 @@ class IconThemeDir
    * Defaults to 2 if not present. */
   private $Threshold = 2;
 
-  function __construct($infos)
+  public function __construct ($infos)
   {
     $this->Size     = $infos['Size'];
     $this->MinSize  = $infos['Size'];
     $this->MaxSize  = $infos['Size'];
-    foreach (array('Type', 'MaxSize', 'MinSize', 'Threshold') as $key) {
+    foreach (['Type', 'MaxSize', 'MinSize', 'Threshold'] as $key) {
       if (isset($infos[$key])) {
         $this->$key = $infos[$key];
       }
@@ -66,7 +66,7 @@ class IconThemeDir
     }
   }
 
-  function MatchesSize($size)
+  public function MatchesSize ($size)
   {
     switch ($this->Type) {
       case 'Fixed':
@@ -78,7 +78,7 @@ class IconThemeDir
     }
   }
 
-  function SizeDistance($size)
+  public function SizeDistance ($size)
   {
     switch ($this->Type) {
       case 'Fixed':
@@ -102,11 +102,11 @@ class IconThemeDir
  */
 class IconTheme
 {
-  private $subdirs = array();
+  private $subdirs = [];
   private $path;
   private $parent;
 
-  function __construct($folder, $default_parent)
+  public function __construct ($folder, $default_parent)
   {
     $this->path = $folder;
     $datas  = @parse_ini_file($folder.'/index.theme', TRUE, INI_SCANNER_RAW);
@@ -127,13 +127,16 @@ class IconTheme
     }
   }
 
-  function FindIcon($context, $icon, $size)
+  public function FindIcon ($context, $icon, $size)
   {
     $context = strtolower($context);
+    if (strpos($icon, '/') !== FALSE) {
+      return NULL;
+    }
     return $this->FindIconHelper($context, $icon, $size);
   }
 
-  function FindIconHelper($context, $icon, $size)
+  protected function FindIconHelper ($context, $icon, $size)
   {
     $filename = $this->LookupIcon($context, $icon, $size);
     if ($filename != NULL) {
@@ -159,7 +162,7 @@ class IconTheme
     return NULL;
   }
 
-  function LookupIcon($context, $iconname, $size)
+  protected function LookupIcon ($context, $iconname, $size)
   {
     if (!isset($this->subdirs[$context])) {
       return NULL;
@@ -197,14 +200,14 @@ class IconTheme
   }
 
   static public $default_theme  = 'breezy';
-  static public $extensions     = array('png', 'xpm', 'svg');
+  static public $extensions     = ['png', 'xpm', 'svg'];
   static public $find_closest   = FALSE;
 
   /* We store themes in the session. To do otherwise, override these methods. */
   static public $session_var    = 'IconThemes';
-  static public function loadThemes($path)
+  static public function loadThemes ($path)
   {
-    $themes = array();
+    $themes = [];
     if ($dir = opendir("$path")) {
       while (($file = readdir($dir)) !== FALSE) {
         if (file_exists("$path/$file/index.theme") && !preg_match("/^\./", $file)) {
@@ -222,7 +225,8 @@ class IconTheme
     }
     $_SESSION[static::$session_var] = $themes;
   }
-  static public function findThemeIcon($theme, $context, $icon, $size)
+
+  static public function findThemeIcon ($theme, $context, $icon, $size)
   {
     if (!isset($_SESSION[static::$session_var])) {
       die('Error: no theme found in session');
@@ -232,7 +236,7 @@ class IconTheme
     }
     return $_SESSION[static::$session_var][static::$default_theme]->FindIcon($context, $icon, $size);
   }
-  public function findTheme($theme)
+  public function findTheme ($theme)
   {
     if (isset($_SESSION[static::$session_var][$theme])) {
       $ret = &$_SESSION[static::$session_var][$theme];
@@ -242,162 +246,162 @@ class IconTheme
   }
 
   /* Fallback system */
-  static public $fallbacks = array(
-    'types/user-group'              => array(
-      array('applications','system-users')
-    ),
-    'types/resource-group'          => array(
-      array('actions','resource-group')
-    ),
-    'types/user'                    => array(
-      array('places','user-identity'),
-      array('status','avatar-default'),
-    ),
-    'types/contact'                 => array(
-      array('mimetypes','x-office-contact'),
-    ),
-    'types/certificate'             => array(
-      array('mimetypes','stock_certificate'),
-      array('mimetypes','application-certificate'),
-      array('actions','view-certificate'),
-    ),
-    'applications/user-info'        => array(
-      array('actions','user-properties'),
-      array('types','contact'),
-      array('mimetypes','x-office-contact'),
-      array('types','user'),
-      array('places','user-identity'),
-      array('status','avatar-default'),
-    ),
-    'applications/office-calendar'  => array(
-      array('mimetypes','x-office-calendar'),
-    ),
-    'applications/os-linux'         => array(
-      array('applications','linux'),
-    ),
-    'applications/os-windows'       => array(
-      array('applications','windows'),
-    ),
-    'applications/samba'            => array(
-      array('applications','os-windows'),
-      array('applications','windows'),
-    ),
-    'applications/config-language'  => array(
-      array('applications','locale'),
-      array('applications','preferences-desktop-locale'),
-    ),
-    'mimetypes/text-csv'            => array(
-      array('mimetypes','x-office-spreadsheet'),
-      array('mimetypes','text-x-generic'),
-    ),
-    'mimetypes/application-pdf'     => array(
-      array('mimetypes','x-office-document'),
-    ),
-    'actions/application-exit'      => array(
-      array('actions','system-log-out'),
-    ),
-    'actions/document-export'       => array(
-      array('actions','document-send'),
-    ),
-    'actions/download'              => array(
-      array('actions','document-save'),
-    ),
-    'actions/document-restore'      => array(
-      array('actions','document-import'),
-      array('actions','document-open'),
-    ),
-    'actions/document-edit'         => array(
-      array('actions','edit'),
-      array('applications','text-editor'),
-      array('applications','accessories-text-editor'),
-      array('actions','document-open'),
-    ),
-    'actions/snapshot'              => array(
-      array('actions','document-save'),
-    ),
-    'actions/system-reboot'         => array(
-      array('actions','view-refresh'),
-    ),
-    'actions/system-update'         => array(
-      array('applications','system-software-update'),
-    ),
-    'actions/system-reinstall'      => array(
-      array('applications','system-installer'),
-    ),
-    'actions/task-start'            => array(
-      array('actions','media-playback-start'),
-    ),
-    'actions/task-stop'             => array(
-      array('actions','media-playback-stop'),
-    ),
-    'actions/task-schedule'         => array(
-      array('actions','chronometer'),
-      array('actions','smallclock'),
-    ),
-    'actions/up'                    => array(
-      array('actions','go-up'),
-      array('actions','arrow-up'),
-    ),
-    'actions/upload'                => array(
-      array('actions','document-import'),
-      array('actions','up'),
-    ),
-    'actions/down'                  => array(
-      array('actions','go-down'),
-      array('actions','arrow-down'),
-    ),
-    'actions/previous'              => array(
-      array('actions','go-previous'),
-      array('actions','arrow-left'),
-    ),
-    'actions/next'                  => array(
-      array('actions','go-next'),
-      array('actions','arrow-right'),
-    ),
-    'actions/submit'                => array(
-      array('actions','go-jump'),
-    ),
-    'categories/settings'           => array(
-      array('categories','gnome-settings'),
-      array('categories','preferences-other'),
-      array('categories','preferences-system'),
-    ),
-    'categories/checks'             => array(
-      array('actions','view-task'),
-      array('actions','view-calendar-tasks'),
-      array('actions','checkbox'),
-      array('status','task-complete'),
-    ),
-    'devices/server'                => array(
-      array('places','server'),
-      array('places','network-server'),
-    ),
-    'devices/media-cdrom'           => array(
-      array('devices','media-optical'),
-    ),
-    'devices/terminal'              => array(
-      array('applications','utilities-terminal'),
-    ),
-    'devices/computer-windows'      => array(
-      array('applications','os-windows'),
-      array('applications','windows'),
-    ),
-    'devices/template'              => array(
-      array('actions','document-new'),
-    ),
-    'status/object-locked'          => array(
-      array('status','changes-prevent'),
-    ),
-    'status/object-unlocked'        => array(
-      array('status','changes-allow'),
-    ),
-    'status/task-waiting'        => array(
-      array('actions','task-schedule'),
-    ),
-    'places/folder-network'        => array(
-      array('places','folder-remote'),
-    ),
-  );
+  static public $fallbacks = [
+    'types/user-group'              => [
+      ['applications','system-users']
+    ],
+    'types/resource-group'          => [
+      ['actions','resource-group']
+    ],
+    'types/user'                    => [
+      ['places','user-identity'],
+      ['status','avatar-default'],
+    ],
+    'types/contact'                 => [
+      ['mimetypes','x-office-contact'],
+    ],
+    'types/certificate'             => [
+      ['mimetypes','stock_certificate'],
+      ['mimetypes','application-certificate'],
+      ['actions','view-certificate'],
+    ],
+    'applications/user-info'        => [
+      ['actions','user-properties'],
+      ['types','contact'],
+      ['mimetypes','x-office-contact'],
+      ['types','user'],
+      ['places','user-identity'],
+      ['status','avatar-default'],
+    ],
+    'applications/office-calendar'  => [
+      ['mimetypes','x-office-calendar'],
+    ],
+    'applications/os-linux'         => [
+      ['applications','linux'],
+    ],
+    'applications/os-windows'       => [
+      ['applications','windows'],
+    ],
+    'applications/samba'            => [
+      ['applications','os-windows'],
+      ['applications','windows'],
+    ],
+    'applications/config-language'  => [
+      ['applications','locale'],
+      ['applications','preferences-desktop-locale'],
+    ],
+    'mimetypes/text-csv'            => [
+      ['mimetypes','x-office-spreadsheet'],
+      ['mimetypes','text-x-generic'],
+    ],
+    'mimetypes/application-pdf'     => [
+      ['mimetypes','x-office-document'],
+    ],
+    'actions/application-exit'      => [
+      ['actions','system-log-out'],
+    ],
+    'actions/document-export'       => [
+      ['actions','document-send'],
+    ],
+    'actions/download'              => [
+      ['actions','document-save'],
+    ],
+    'actions/document-restore'      => [
+      ['actions','document-import'],
+      ['actions','document-open'],
+    ],
+    'actions/document-edit'         => [
+      ['actions','edit'],
+      ['applications','text-editor'],
+      ['applications','accessories-text-editor'],
+      ['actions','document-open'],
+    ],
+    'actions/snapshot'              => [
+      ['actions','document-save'],
+    ],
+    'actions/system-reboot'         => [
+      ['actions','view-refresh'],
+    ],
+    'actions/system-update'         => [
+      ['applications','system-software-update'],
+    ],
+    'actions/system-reinstall'      => [
+      ['applications','system-installer'],
+    ],
+    'actions/task-start'            => [
+      ['actions','media-playback-start'],
+    ],
+    'actions/task-stop'             => [
+      ['actions','media-playback-stop'],
+    ],
+    'actions/task-schedule'         => [
+      ['actions','chronometer'],
+      ['actions','smallclock'],
+    ],
+    'actions/up'                    => [
+      ['actions','go-up'],
+      ['actions','arrow-up'],
+    ],
+    'actions/upload'                => [
+      ['actions','document-import'],
+      ['actions','up'],
+    ],
+    'actions/down'                  => [
+      ['actions','go-down'],
+      ['actions','arrow-down'],
+    ],
+    'actions/previous'              => [
+      ['actions','go-previous'],
+      ['actions','arrow-left'],
+    ],
+    'actions/next'                  => [
+      ['actions','go-next'],
+      ['actions','arrow-right'],
+    ],
+    'actions/submit'                => [
+      ['actions','go-jump'],
+    ],
+    'categories/settings'           => [
+      ['categories','gnome-settings'],
+      ['categories','preferences-other'],
+      ['categories','preferences-system'],
+    ],
+    'categories/checks'             => [
+      ['actions','view-task'],
+      ['actions','view-calendar-tasks'],
+      ['actions','checkbox'],
+      ['status','task-complete'],
+    ],
+    'devices/server'                => [
+      ['places','server'],
+      ['places','network-server'],
+    ],
+    'devices/media-cdrom'           => [
+      ['devices','media-optical'],
+    ],
+    'devices/terminal'              => [
+      ['applications','utilities-terminal'],
+    ],
+    'devices/computer-windows'      => [
+      ['applications','os-windows'],
+      ['applications','windows'],
+    ],
+    'devices/template'              => [
+      ['actions','document-new'],
+    ],
+    'status/object-locked'          => [
+      ['status','changes-prevent'],
+    ],
+    'status/object-unlocked'        => [
+      ['status','changes-allow'],
+    ],
+    'status/task-waiting'        => [
+      ['actions','task-schedule'],
+    ],
+    'places/folder-network'        => [
+      ['places','folder-remote'],
+    ],
+  ];
 }
 
 ?>
diff --git a/include/class_Language.inc b/include/class_Language.inc
index 966181080c4f7c00618e20b6606f1d9e2f2186aa..cd1570bb3e92a07b1f088e7a08316e6359775550 100644
--- a/include/class_Language.inc
+++ b/include/class_Language.inc
@@ -34,7 +34,7 @@ class Language
    *
    * \param string $lang Language locale to use, defaults to self::detect()
    */
-  public static function init($lang = NULL)
+  public static function init ($lang = NULL)
   {
     global $BASE_DIR;
 
@@ -42,7 +42,7 @@ class Language
       $lang = static::detect();
     }
 
-    list ($language, $country, $char) = parse_gettext_lang($lang);
+    list($language, $country, $char) = parse_gettext_lang($lang);
     putenv('LANGUAGE=');
     putenv("LANG=$lang");
     $langset = setlocale(LC_ALL, $lang, $language.'.'.$char);
@@ -60,25 +60,25 @@ class Language
     bindtextdomain($domain, LOCALE_DIR);
     textdomain($domain);
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, 'Setting language to');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, 'Setting language to');
     }
 
     $ret = FALSE;
 
     /* Reset plist cache if language changed */
-    if ((!session::global_is_set('lang')) || (session::global_get('lang') != $lang)) {
+    if ((!session::is_set('lang')) || (session::get('lang') != $lang)) {
       $ret = TRUE;
-      if (session::global_is_set('plist')) {
+      if (session::is_set('plist')) {
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::global_get('lang'), 'Plist already loaded with language');
+          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::get('lang'), 'Plist already loaded with language');
         }
-        session::global_un_set('plist');
-        session::global_set('lang', $lang);
+        session::un_set('plist');
+        session::set('lang', $lang);
         load_plist();
       }
     }
 
-    session::global_set('lang', $lang);
+    session::set('lang', $lang);
     return $ret;
   }
 
@@ -95,7 +95,7 @@ class Language
    *
    * \return string gettext locale string
    */
-  public static function detect()
+  public static function detect ()
   {
     global $config;
 
@@ -118,7 +118,7 @@ class Language
     $languages = static::getList();
 
     /* Move supported languages to flat list */
-    $langs = array();
+    $langs = [];
     foreach (array_keys($languages) as $lang) {
       $langs[] = $lang.'.UTF-8';
     }
@@ -132,10 +132,10 @@ class Language
    *
    * \param boolean $ownLanguage Should language names be stated in their own language as well
    */
-  public static function getList($ownLanguage = FALSE)
+  public static function getList ($ownLanguage = FALSE)
   {
     /* locales in english */
-    $tmp_english = array(
+    $tmp_english = [
       'en_US' => 'English',
       'af_ZA' => 'Afrikaans',
       'ar_EG' => 'Arabic',
@@ -166,12 +166,12 @@ class Language
       'vi_VN' => 'Vietnamese',
       'zh_TW' => 'Taiwanese',
       'zh_CN' => 'Chinese',
-    );
+    ];
 
-    $ret = array();
+    $ret = [];
     if ($ownLanguage) {
       /* locales in their own language */
-      $tmp_ownlang = array(
+      $tmp_ownlang = [
         'en_US' => 'English',
         'ar_EG' => 'عربية',
         'af_ZA' => 'Afrikaans',
@@ -202,7 +202,7 @@ class Language
         'vi_VN' => 'Tiếng Việt',
         'zh_TW' => 'Taiwanese',
         'zh_CN' => '中文, 汉语, 漢語',
-      );
+      ];
 
       foreach ($tmp_english as $key => $name) {
         $ret[$key] = _($name).' ('.$tmp_ownlang[$key].')';
@@ -224,9 +224,9 @@ class Language
     return preg_match('/^(fa_|ar_)/', $lang);
   }
 
-  public static function setHeaders($language, $mime)
+  public static function setHeaders ($language, $mime)
   {
-    list ($lang, $country, $char) = parse_gettext_lang($language);
+    list($lang, $country, $char) = parse_gettext_lang($language);
 
     if (!headers_sent()) {
       header("Content-Language: $lang".(empty($country) ? '' : "-$country"));
diff --git a/include/class_SnapshotDialogs.inc b/include/class_SnapshotDialogs.inc
index 034241092b4b0857b5132f59bd2344dab4e9f1a7..ead678ca1c62419b1afcc5f46e8535a3618609eb 100644
--- a/include/class_SnapshotDialogs.inc
+++ b/include/class_SnapshotDialogs.inc
@@ -26,36 +26,36 @@ class SnapshotCreateDialog extends simplePlugin
 {
   public $aclCategory;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName' => 'SnapshotCreateDialog',
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('Creating an object snapshot'),
-        'attrs' => array(
-          new DisplayAttribute (
+        'attrs' => [
+          new DisplayAttribute(
             _('Object'), _('DN of the object you are creating a snapshot of'),
             'object_dn', FALSE
           ),
-          new DisplayAttribute (
+          new DisplayAttribute(
             _('Timestamp'), _('Timestamp of this snapshot creation'),
             'timestamp', FALSE
           ),
-          new TextAreaAttribute (
+          new TextAreaAttribute(
             _('Reason'), _('Reason for creating this snapshot'),
             'description', TRUE,
             '',
             'SnapshotHandler'
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($dn, $parent, $aclCategory)
@@ -71,7 +71,7 @@ class SnapshotCreateDialog extends simplePlugin
    *
    * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
    */
-  function attrIsWriteable($attr)
+  function attrIsWriteable ($attr)
   {
     global $ui;
 
@@ -85,7 +85,7 @@ class SnapshotCreateDialog extends simplePlugin
     }
   }
 
-  function renderAttributes($readOnly = FALSE)
+  function renderAttributes ($readOnly = FALSE)
   {
     global $ui;
     $smarty = get_smarty();
@@ -124,7 +124,7 @@ class SnapshotCreateDialog extends simplePlugin
  */
 class SnapshotsAttribute extends OrderedArrayAttribute
 {
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $acl = '')
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
   {
     Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->edit_enabled = FALSE;
@@ -138,18 +138,18 @@ class SnapshotsAttribute extends OrderedArrayAttribute
     parent::setParent($plugin);
     if (is_object($this->plugin)) {
       if ($this->plugin->global) {
-        $this->setHeaders(array(
+        $this->setHeaders([
           _('DN'),
           _('Date'),
           _('Description'),
           ''
-        ));
+        ]);
       } else {
-        $this->setHeaders(array(
+        $this->setHeaders([
           _('Date'),
           _('Description'),
           ''
-        ));
+        ]);
       }
     }
   }
@@ -162,7 +162,7 @@ class SnapshotsAttribute extends OrderedArrayAttribute
     }
   }
 
-  protected function handleEdit($key)
+  protected function handleEdit ($key)
   {
   }
 
@@ -170,7 +170,7 @@ class SnapshotsAttribute extends OrderedArrayAttribute
   {
   }
 
-  function addValue($value)
+  function addValue ($value)
   {
     $this->value[] = $value;
     $this->reIndexValues();
@@ -181,37 +181,37 @@ class SnapshotsAttribute extends OrderedArrayAttribute
     return '';
   }
 
-  protected function getAttributeArrayValue($key, $value)
+  protected function getAttributeArrayValue ($key, $value)
   {
-    $values = array(
+    $values = [
       date(_('Y-m-d, H:i:s'), preg_replace('/\-.*$/', '', $value['gosaSnapshotTimestamp'][0])),
       $value['description'][0]
-    );
+    ];
     if ($this->plugin->global) {
       array_unshift($values, $value['gosaSnapshotDN'][0]);
     }
     return $values;
   }
 
-  protected function genRowIcons($key, $value)
+  protected function genRowIcons ($key, $value)
   {
     $id = $this->getHtmlId();
-    list ($img, $nbicons) = parent::genRowIcons($key, $value);
+    list($img, $nbicons) = parent::genRowIcons($key, $value);
     $img = $this->renderInputField(
       'image', $id.'_restore_'.$key,
-      array(
+      [
         'src'   => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
         'title' => _('Restore'),
         'alt'   => _('Restore'),
         'class' => 'center'
-      )
+      ]
     ).$img;
     $nbicons++;
 
-    return array ($img, $nbicons);
+    return  [$img, $nbicons];
   }
 
-  protected function handlePostValueActions($id, $postValue)
+  protected function handlePostValueActions ($id, $postValue)
   {
     if (parent::handlePostValueActions($id, $postValue)) {
       return TRUE;
@@ -243,33 +243,33 @@ class SnapshotRestoreDialog extends simplePlugin
   protected $snapDn;
   protected $snapAction;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName' => 'SnapshotRestoreDialog',
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('Restoring snapshots'),
-        'class' => array('fullwidth'),
-        'attrs' => array(
-          new DisplayAttribute (
+        'class' => ['fullwidth'],
+        'attrs' => [
+          new DisplayAttribute(
             _('Object'), _('DN of the object you are creating a snapshot of'),
             'object_dn', FALSE
           ),
-          new SnapshotsAttribute (
+          new SnapshotsAttribute(
             _('Snapshots'), _('Existing snapshots for this object'),
             'snapshots', FALSE,
-            array(),
+            [],
             'SnapshotHandler'
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($dn, $parent, $global, $aclCategory)
@@ -298,28 +298,28 @@ class SnapshotRestoreDialog extends simplePlugin
   {
     global $ui;
     if ($this->dialog == 'delete') {
-      $objects = array(
-        array(
+      $objects = [
+        [
           'name'  => 'snapshot',
           'dn'    => $this->snapDn,
           'icon'  => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
           'type'  => 'Snapshot'
-        )
-      );
+        ]
+      ];
 
       // Display confirmation dialog.
       $smarty = get_smarty();
       $smarty->assign('objects', $objects);
       $str = $smarty->fetch(get_template_path('simple-remove.tpl'));
     } elseif ($this->dialog == 'restore') {
-      $objects = array(
-        array(
+      $objects = [
+        [
           'name'  => 'snapshot',
           'dn'    => $this->snapDn,
           'icon'  => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
           'type'  => 'Snapshot'
-        )
-      );
+        ]
+      ];
 
       // Display confirmation dialog.
       $smarty = get_smarty();
@@ -348,7 +348,7 @@ class SnapshotRestoreDialog extends simplePlugin
     return $str;
   }
 
-  function attrIsWriteable($attr)
+  function attrIsWriteable ($attr)
   {
     global $ui;
 
@@ -362,19 +362,19 @@ class SnapshotRestoreDialog extends simplePlugin
     }
   }
 
-  function triggerRestore($dn)
+  function triggerRestore ($dn)
   {
     $this->dialog = 'restore';
     $this->snapDn = $dn;
   }
 
-  function triggerDelete($dn)
+  function triggerDelete ($dn)
   {
     $this->dialog = 'delete';
     $this->snapDn = $dn;
   }
 
-  function save_object()
+  function save_object ()
   {
     if ($this->dialog == 'delete') {
       if (isset($_POST['delete_confirmed'])) {
diff --git a/include/class_SnapshotHandler.inc b/include/class_SnapshotHandler.inc
index 185fec9dd7faeb3dec3aeeee944ef9ce329bf696..7fbf9449a0cbdca754bfe9adcc429fe96c93a45c 100644
--- a/include/class_SnapshotHandler.inc
+++ b/include/class_SnapshotHandler.inc
@@ -30,29 +30,29 @@
  */
 class SnapshotHandler
 {
-  var $snapshotBases  = array();
+  var $snapshotBases  = [];
 
   protected $enabled;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Snapshot'),
       'plDescription' => _('Snapshot handler'),
       /* Categories for snapshots are computed in config class */
-      'plCategory'    => array(),
+      'plCategory'    => [],
 
-      'plProvidedAcls' => array(
+      'plProvidedAcls' => [
         'restore_over'    => _('Restore over an existing object'),
         'restore_deleted' => _('Restore a deleted object'),
-      )
-    );
+      ]
+    ];
   }
 
   /*!
    * \brief Create handler
    */
-  function __construct()
+  function __construct ()
   {
     global $config;
     $this->enabled = $config->snapshotEnabled();
@@ -73,7 +73,7 @@ class SnapshotHandler
    *
    * \return boolean TRUE if is enable, return FALSE otherwise
    */
-  function enabled()
+  function enabled ()
   {
     return $this->enabled;
   }
@@ -83,7 +83,7 @@ class SnapshotHandler
    *
    * \param array $bases
    */
-  function setSnapshotBases($bases)
+  function setSnapshotBases ($bases)
   {
     $this->snapshotBases = $bases;
   }
@@ -93,14 +93,14 @@ class SnapshotHandler
    *
    * \return array $bases
    */
-  function getSnapshotBases()
+  function getSnapshotBases ()
   {
     return $this->snapshotBases;
   }
 
   /* \brief Get the snapshot dn of an object dn
    */
-  protected function snapshot_dn($dn)
+  protected function snapshot_dn ($dn)
   {
     global $config;
     return preg_replace("/".preg_quote($config->current['BASE'], '/')."$/", "", $dn)
@@ -110,7 +110,7 @@ class SnapshotHandler
   /*!
    * \brief Check if there are deleted snapshots
    */
-  function hasDeletedSnapshots()
+  function hasDeletedSnapshots ()
   {
     foreach ($this->getSnapshotBases() as $base) {
       if (count($this->getAllDeletedSnapshots($base)) > 0) {
@@ -123,7 +123,7 @@ class SnapshotHandler
   /*!
    * \brief Cache Snapshot information for all objects in $base
    */
-  function initSnapshotCache($base)
+  function initSnapshotCache ($base)
   {
     global $config;
     if (!$this->enabled()) {
@@ -137,10 +137,10 @@ class SnapshotHandler
 
     /* Fetch all objects with */
     $ldap->cd($base);
-    $ldap->search('(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=*))', array('gosaSnapshotDN'));
+    $ldap->search('(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=*))', ['gosaSnapshotDN']);
 
     /* Store for which object we have snapshots */
-    $this->snapshotsCache = array();
+    $this->snapshotsCache = [];
     while ($entry = $ldap->fetch()) {
       $this->snapshotsCache[$entry['gosaSnapshotDN'][0]] = TRUE;
     }
@@ -151,7 +151,7 @@ class SnapshotHandler
    *
    * \return the numbers of snapshots
    */
-  function hasSnapshots($dn)
+  function hasSnapshots ($dn)
   {
     return isset($this->snapshotsCache[$dn]);
   }
@@ -163,11 +163,11 @@ class SnapshotHandler
    *
    * \param string $raw FALSE
    */
-  function getSnapshots($dn, $raw = FALSE)
+  function getSnapshots ($dn, $raw = FALSE)
   {
     global $config;
     if (!$this->enabled()) {
-      return array();
+      return [];
     }
 
     $ldap = $config->get_ldap_link();
@@ -181,12 +181,12 @@ class SnapshotHandler
     $ldap->cd($base);
     $ldap->search(
       '(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN='.ldap_escape_f($dn).'))',
-      array('gosaSnapshotTimestamp','gosaSnapshotDN','description'),
+      ['gosaSnapshotTimestamp','gosaSnapshotDN','description'],
       'one'
     );
 
     /* Put results into a list and add description if missing */
-    $objects = array();
+    $objects = [];
     while ($entry = $ldap->fetch()) {
       if (!isset($entry['description'][0])) {
         $entry['description'][0]  = "";
@@ -198,7 +198,7 @@ class SnapshotHandler
     if ($raw) {
       return $objects;
     } else {
-      $tmp = array();
+      $tmp = [];
       foreach ($objects as $entry) {
         $tmp[base64_encode($entry['dn'])] = $entry['description'][0];
       }
@@ -214,11 +214,11 @@ class SnapshotHandler
    *
    * \param array $description Snapshot description
    */
-  function createSnapshot($dn, $description = array())
+  function createSnapshot ($dn, $description = [])
   {
     global $config;
     if (!$this->enabled()) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to create snapshot');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to create snapshot');
       return;
     }
 
@@ -226,14 +226,14 @@ class SnapshotHandler
       $dns  = $dn;
       $dn   = $dns[0];
     } else {
-      $dns = array($dn);
+      $dns = [$dn];
     }
 
     $ldap = $config->get_ldap_link();
 
     /* check if the dn exists */
     if (!$ldap->dn_exists($dn)) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Tried to snapshot non-existing dn');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Tried to snapshot non-existing dn');
       return;
     }
 
@@ -241,7 +241,7 @@ class SnapshotHandler
     list($usec, $sec) = explode(" ", microtime());
 
     /* Collect some infos */
-    $base_of_object = preg_replace ('/^[^,]+,/i', '', $dn);
+    $base_of_object = preg_replace('/^[^,]+,/i', '', $dn);
     $new_base       = $this->snapshot_dn($base_of_object);
     /* Create object */
     $data = '';
@@ -252,9 +252,9 @@ class SnapshotHandler
       }
     }
 
-    $target   = array();
+    $target   = [];
 
-    $target['objectClass']            = array('top', 'gosaSnapshotObject');
+    $target['objectClass']            = ['top', 'gosaSnapshotObject'];
     $target['gosaSnapshotData']       = gzcompress($data, 6);
     $target['gosaSnapshotDN']         = $dn;
     $target['description']            = $description;
@@ -287,7 +287,7 @@ class SnapshotHandler
    *
    * \param string $dn The DN
    */
-  function removeSnapshot($dn)
+  function removeSnapshot ($dn)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -303,25 +303,25 @@ class SnapshotHandler
    *
    * \return available snapshots for the given base
    */
-  function getAvailableSnapsShots($dn)
+  function getAvailableSnapsShots ($dn)
   {
     global $config;
     if (!$this->enabled()) {
-      return array();
+      return [];
     }
 
     $ldap = $config->get_ldap_link();
 
     /* Prepare bases and some other infos */
-    $base_of_object = preg_replace ('/^[^,]+,/i', '', $dn);
+    $base_of_object = preg_replace('/^[^,]+,/i', '', $dn);
     $new_base       = $this->snapshot_dn($base_of_object);
-    $tmp            = array();
+    $tmp            = [];
 
     /* Fetch all objects with  gosaSnapshotDN=$dn */
     $ldap->cd($new_base);
     $ldap->search(
       '(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN='.ldap_escape_f($dn).'))',
-      array('gosaSnapshotTimestamp','gosaSnapshotDN','description'),
+      ['gosaSnapshotTimestamp','gosaSnapshotDN','description'],
       'one'
     );
 
@@ -341,11 +341,11 @@ class SnapshotHandler
    *
    * \param string $base_of_object
    */
-  function getAllDeletedSnapshots($base_of_object)
+  function getAllDeletedSnapshots ($base_of_object)
   {
     global $config;
     if (!$this->enabled()) {
-      return array();
+      return [];
     }
 
     $ldap = $config->get_ldap_link();
@@ -353,11 +353,11 @@ class SnapshotHandler
     /* Prepare bases */
     $new_base       = $this->snapshot_dn($base_of_object);
     /* Fetch all objects and check if they do not exist anymore */
-    $tmp  = array();
+    $tmp  = [];
     $ldap->cd($new_base);
     $ldap->search(
       '(objectClass=gosaSnapshotObject)',
-      array('gosaSnapshotTimestamp','gosaSnapshotDN','description'),
+      ['gosaSnapshotTimestamp','gosaSnapshotDN','description'],
       'one'
     );
     while ($entry = $ldap->fetch()) {
@@ -389,28 +389,28 @@ class SnapshotHandler
    *
    * \param string $dn The DN
    */
-  function restoreSnapshot($dn)
+  function restoreSnapshot ($dn)
   {
     global $config;
     if (!$this->enabled()) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to restore snapshot');
-      return array();
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to restore snapshot');
+      return [];
     }
 
     $ldap = $config->get_ldap_link();
 
     /* Get the snapshot */
-    $ldap->cat($dn, array('gosaSnapshotData'), '(gosaSnapshotData=*)');
+    $ldap->cat($dn, ['gosaSnapshotData'], '(gosaSnapshotData=*)');
     if ($attrs = $ldap->fetch()) {
       /* Prepare import string */
       $data = gzuncompress($attrs['gosaSnapshotData'][0]);
       if ($data === FALSE) {
         msg_dialog::display(_('Error'), _('There was a problem uncompressing snapshot data'), ERROR_DIALOG);
-        return array();
+        return [];
       }
     } else {
       msg_dialog::display(_('Error'), _('Snapshot data could not be fetched'), ERROR_DIALOG);
-      return array();
+      return [];
     }
 
     /* Import the given data */
diff --git a/include/class_acl.inc b/include/class_acl.inc
index 203b6adad617782513d40721c4da7ecb4f62f7bb..abe7403400b317938a1ac6fc92d5c785b5e825ba 100644
--- a/include/class_acl.inc
+++ b/include/class_acl.inc
@@ -29,21 +29,21 @@
  */
 class acl
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('ACL'),
       'plDescription' => _('Manage access control lists'),
-      'plCategory'    => array(
-        'acl' => array(
+      'plCategory'    => [
+        'acl' => [
           'description'  => _('ACL').'&nbsp;&amp;&nbsp;'._('ACL roles'),
-          'objectClass'  => array('gosaAcl','gosaRole')
-        )
-      ),
-      'plObjectType'  => array(),
+          'objectClass'  => ['gosaAcl','gosaRole']
+        ]
+      ],
+      'plObjectType'  => [],
 
-      'plProvidedAcls'  => array()
-    );
+      'plProvidedAcls'  => []
+    ];
   }
 
   /*!
@@ -51,7 +51,7 @@ class acl
    *
    *  \param Array $list Array to be sorted
    */
-  static function sort_by_priority($list)
+  static function sort_by_priority ($list)
   {
     uksort($list,
       function ($a, $b)
@@ -75,13 +75,13 @@ class acl
    *
    * \param string $role ACL role to be exploded
    */
-  static function explodeRole($role)
+  static function explodeRole ($role)
   {
     if (!is_array($role)) {
-      $role = array($role);
+      $role = [$role];
     }
     unset($role['count']);
-    $result = array();
+    $result = [];
     foreach ($role as $aclTemplate) {
       $list = explode(':', $aclTemplate, 2);
       $result[$list[0]] = static::extractACL($list[1]);
@@ -95,7 +95,7 @@ class acl
    *
    * \param string $acl ACL to be exploded
    */
-  static function explodeACL($acl)
+  static function explodeACL ($acl)
   {
     $list = explode(':', $acl);
     if (count($list) == 5) {
@@ -106,17 +106,17 @@ class acl
       list($index, $type,$role,$members) = $list;
     }
 
-    $a = array( $index => array(
+    $a = [ $index => [
       'type'    => $type,
       'filter'  => $filter,
       'members' => acl::extractMembers($members),
       'acl'     => base64_decode($role),
-    ));
+    ]];
 
     /* Handle unknown types */
-    if (!in_array($type, array('subtree', 'base'))) {
+    if (!in_array($type, ['subtree', 'base'])) {
       msg_dialog::display(_("Internal error"), sprintf(_("Unkown ACL type '%s'!\nYou might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."), $type), ERROR_DIALOG);
-      $a = array();
+      $a = [];
     }
     return $a;
   }
@@ -128,10 +128,10 @@ class acl
    *
    * \return an array with members
    */
-  static function extractMembers($ms)
+  static function extractMembers ($ms)
   {
     global $config;
-    $a = array();
+    $a = [];
 
     /* Seperate by ',' and place it in an array */
     $ma = explode(',', $ms);
@@ -147,7 +147,7 @@ class acl
           continue;
         }
 
-        $ldap->cat($dn, array('cn', 'objectClass', 'description', 'uid'));
+        $ldap->cat($dn, ['cn', 'objectClass', 'description', 'uid']);
 
         /* Found entry... */
         if ($ldap->count()) {
@@ -182,12 +182,12 @@ class acl
    *
    * \param string $acl The acl to be extracted
    */
-  static function extractACL($acl)
+  static function extractACL ($acl)
   {
     /* Rip acl off the string, seperate by ',' and place it in an array */
     $as = preg_replace('/^[^:]+:[^:]+:[^:]*:([^:]*).*$/', '\1', $acl);
     $aa = explode(',', $as);
-    $a  = array();
+    $a  = [];
 
     /* Dis-assemble single ACLs */
     foreach ($aa as $sacl) {
@@ -203,11 +203,11 @@ class acl
         if ($idx == 0) {
           /* Create hash for this object */
           $gobject      = $object;
-          $a[$gobject]  = array();
+          $a[$gobject]  = [];
 
           /* Append ACL if set */
           if ($gacl != "") {
-            $a[$gobject] = array($gacl);
+            $a[$gobject] = [$gacl];
           }
         } else {
           /* All other entries get appended... */
diff --git a/include/class_baseSelector.inc b/include/class_baseSelector.inc
index 1e9f5f1c0dd5faaea95cf389a0fd8fc4b33ab990..9aa823bf9746d9e9798023d06838699679227495 100644
--- a/include/class_baseSelector.inc
+++ b/include/class_baseSelector.inc
@@ -45,7 +45,7 @@ class baseSelector
    *
    * \param String $base Empty string
    */
-  function __construct($bases, $base = "")
+  function __construct ($bases, $base = "")
   {
     // Initialize pid
     $this->pid = preg_replace("/[^0-9]/", "", microtime(TRUE));
@@ -58,7 +58,7 @@ class baseSelector
   /*!
    * \brief Returns id of the html field
    */
-  function getInputHtmlId()
+  function getInputHtmlId ()
   {
     return 'bs_input_'.$this->pid;
   }
@@ -68,7 +68,7 @@ class baseSelector
    *
    * \param Boolean $flag Flag for the submit button
    */
-  function setSubmitButton($flag)
+  function setSubmitButton ($flag)
   {
     $this->submitButton = $flag;
   }
@@ -78,7 +78,7 @@ class baseSelector
    *
    * \param Integer $value The new value of the height
    */
-  function setHeight($value)
+  function setHeight ($value)
   {
     $this->height = $value;
   }
@@ -88,7 +88,7 @@ class baseSelector
    *
    * \param String $base The new value of the base
    */
-  function setBase($base)
+  function setBase ($base)
   {
     if (isset($this->pathMapping[$base])) {
       $this->base       = $base;
@@ -105,7 +105,7 @@ class baseSelector
    *
    * \return Boolean the last state of the object
    */
-  function checkLastBaseUpdate()
+  function checkLastBaseUpdate ()
   {
     return $this->lastState;
   }
@@ -115,11 +115,11 @@ class baseSelector
    *
    * \param Array $bases The new value of the bases
    */
-  function setBases($bases)
+  function setBases ($bases)
   {
     global $config;
 
-    $this->pathMapping = array();
+    $this->pathMapping = [];
 
     foreach ($bases as $base => $dummy) {
       // Build path style display
@@ -130,7 +130,7 @@ class baseSelector
     }
 
     // Save bases to session for autocompletion
-    session::global_set('pathMapping', $this->pathMapping);
+    session::set('pathMapping', $this->pathMapping);
   }
 
   /*!
@@ -138,7 +138,7 @@ class baseSelector
    *
    * \param Boolean $force FALSE
    */
-  function update($force = FALSE)
+  function update ($force = FALSE)
   {
     if (!isset($this->base) || ($this->base == '')) {
       $this->lastState = FALSE;
@@ -187,7 +187,7 @@ class baseSelector
     return TRUE;
   }
 
-  protected function renderTree()
+  protected function renderTree ()
   {
     global $config;
     $link = "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($config->current['BASE'])."';  $('submit_tree_base_".$this->pid."').click();\"";
@@ -204,7 +204,7 @@ class baseSelector
                   "<script type='text/javascript'>".
                   "new Ajax.Autocompleter('".$this->getInputHtmlId()."', 'autocomplete_".$this->pid."', 'autocomplete.php?type=base', { minChars: 3, frequency: 0.5 });";
     if ($this->submitButton) {
-      $this->tree .= "$('".$this->getInputHtmlId()."').observe('keypress', function(event) { if(event.keyCode == Event.KEY_RETURN) { $('submit_base_".$this->pid."').click(); } });";
+      $this->tree .= "$('".$this->getInputHtmlId()."').observe('keypress', function(event) { if (event.keyCode == Event.KEY_RETURN) { $ ('submit_base_".$this->pid."').click (); } });";
     }
     $this->tree .= "</script>";
 
@@ -285,7 +285,7 @@ class baseSelector
    *
    * \param String $string The string which his space will be replaced
    */
-  function escape($string)
+  function escape ($string)
   {
     return str_replace(' ', '&nbsp;', htmlentities($string, ENT_COMPAT, 'UTF-8'));
   }
@@ -295,7 +295,7 @@ class baseSelector
    *
    * \return members tree of the ACL class
    */
-  function render()
+  function render ()
   {
     return $this->tree;
   }
@@ -305,7 +305,7 @@ class baseSelector
    *
    * \return String containts the base of the object
    */
-  function getBase()
+  function getBase ()
   {
     return $this->base;
   }
@@ -315,7 +315,7 @@ class baseSelector
    *
    * \return Array containts the bases and their display text
    */
-  function getBases()
+  function getBases ()
   {
     return $this->pathMapping;
   }
diff --git a/include/class_config.inc b/include/class_config.inc
index c07ae223b1f6fb1e42aa4a46542c1a25a71441ee..40b927297bc2e22be2364eb8b237a6af06a24e61 100644
--- a/include/class_config.inc
+++ b/include/class_config.inc
@@ -33,7 +33,7 @@ class config
   /* XML parser */
   var $parser;
   var $config_found     = FALSE;
-  var $tags             = array();
+  var $tags             = [];
   var $level            = 0;
   var $gpc              = 0;
   var $section          = '';
@@ -42,28 +42,28 @@ class config
   /*!
    * \brief Store configuration for current location
    */
-  var $current = array();
+  var $current = [];
 
   /* Link to LDAP-server */
   var $ldap       = NULL;
-  var $referrals  = array();
+  var $referrals  = [];
 
   /*
    * \brief Configuration data
    *
    * - $data['SERVERS'] contains server informations.
    */
-  var $data = array(
-    'LOCATIONS' => array(),
-    'SERVERS'   => array(),
-    'MAIN'      => array(),
-  );
+  var $data = [
+    'LOCATIONS' => [],
+    'SERVERS'   => [],
+    'MAIN'      => [],
+  ];
   var $basedir        = '';
 
   /* Keep a copy of the current department list */
-  var $departments      = array();
-  var $idepartments     = array();
-  var $department_info  = array();
+  var $departments      = [];
+  var $idepartments     = [];
+  var $department_info  = [];
   var $filename         = '';
   var $last_modified    = 0;
 
@@ -74,7 +74,7 @@ class config
    *
    * \param string $basedir base directory
    */
-  function __construct($filename, $basedir = '')
+  function __construct ($filename, $basedir = '')
   {
     $this->basedir  = $basedir;
 
@@ -91,22 +91,22 @@ class config
    * read the last time and reloads it. It uses the file mtime to check
    * weither the file changed or not.
    */
-  function check_and_reload($force = FALSE)
+  function check_and_reload ($force = FALSE)
   {
     /* Check if class_location.inc has changed, this is the case
         if we have installed or removed plugins. */
     $tmp = stat(CACHE_DIR.'/'.CLASS_CACHE);
-    if (session::global_is_set('class_location.inc:timestamp')) {
-      if ($tmp['mtime'] != session::global_get('class_location.inc:timestamp')) {
-        session::global_un_set('plist');
+    if (session::is_set('class_location.inc:timestamp')) {
+      if ($tmp['mtime'] != session::get('class_location.inc:timestamp')) {
+        session::un_set('plist');
       }
     }
-    session::global_set('class_location.inc:timestamp', $tmp['mtime']);
+    session::set('class_location.inc:timestamp', $tmp['mtime']);
 
     if (($this->filename != '') && ((filemtime($this->filename) != $this->last_modified) || $force)) {
 
       $this->config_found     = FALSE;
-      $this->tags             = array();
+      $this->tags             = [];
       $this->level            = 0;
       $this->gpc              = 0;
       $this->section          = '';
@@ -125,7 +125,7 @@ class config
    *
    * \param string $filename The filename of the configuration file.
    */
-  function parse($filename)
+  function parse ($filename)
   {
     $this->last_modified  = filemtime($filename);
     $this->filename       = $filename;
@@ -137,11 +137,11 @@ class config
 
   function parse_data ($xmldata)
   {
-    $this->data = array(
-      'LOCATIONS' => array(),
-      'SERVERS'   => array(),
-      'MAIN'      => array(),
-    );
+    $this->data = [
+      'LOCATIONS' => [],
+      'SERVERS'   => [],
+      'MAIN'      => [],
+    ];
 
     $this->parser = xml_parser_create();
     xml_set_object($this->parser, $this);
@@ -166,7 +166,7 @@ class config
    *
    * \param string $attrs
    */
-  function tag_open($parser, $tag, $attrs)
+  function tag_open ($parser, $tag, $attrs)
   {
     /* Save last and current tag for reference */
     $this->tags[$this->level] = $tag;
@@ -223,7 +223,7 @@ class config
 
           /* Add location elements */
           if (!isset($this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'])) {
-            $this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'] = array();
+            $this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'] = [];
           }
 
           $this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'][$server] = $attrs;
@@ -232,7 +232,7 @@ class config
 
       /* Load main parameters */
       case 'MAIN':
-        $this->data['MAIN'] = array_merge ($this->data['MAIN'], $attrs);
+        $this->data['MAIN'] = array_merge($this->data['MAIN'], $attrs);
         break;
 
       /* Ignore other tags */
@@ -248,7 +248,7 @@ class config
    *
    * \param string $tag
    */
-  function tag_close($parser, $tag)
+  function tag_close ($parser, $tag)
   {
     /* Close config section */
     if ($tag == 'CONF') {
@@ -267,17 +267,17 @@ class config
    *
    * \return string the password corresponding to the keyword
    */
-  function get_credentials($creds)
+  function get_credentials ($creds)
   {
     if (isset($_SERVER['HTTP_FDKEY'])) {
-      if (!session::global_is_set('HTTP_FDKEY_CACHE')) {
-        session::global_set('HTTP_FDKEY_CACHE', array());
+      if (!session::is_set('HTTP_FDKEY_CACHE')) {
+        session::set('HTTP_FDKEY_CACHE', []);
       }
-      $cache = session::global_get('HTTP_FDKEY_CACHE');
+      $cache = session::get('HTTP_FDKEY_CACHE');
       if (!isset($cache[$creds])) {
         try {
           $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_FDKEY']);
-          session::global_set('HTTP_FDKEY_CACHE', $cache);
+          session::set('HTTP_FDKEY_CACHE', $cache);
         } catch (FusionDirectoryException $e) {
           $msg = sprintf(
             _('It seems you are trying to decode something which is not encoded : %s<br/>'."\n".
@@ -311,13 +311,13 @@ class config
    *
    * \return ldapMultiplexer object
    */
-  function get_ldap_link($sizelimit = FALSE)
+  function get_ldap_link ($sizelimit = FALSE)
   {
     global $ui;
 
     if ($this->ldap === NULL || !is_resource($this->ldap->cid)) {
       /* Build new connection */
-      $this->ldap = ldap_init ($this->current['SERVER'], $this->current['BASE'],
+      $this->ldap = ldap_init($this->current['SERVER'], $this->current['BASE'],
           $this->current['ADMINDN'], $this->get_credentials($this->current['ADMINPASSWORD']));
 
       /* Check for connection */
@@ -328,7 +328,7 @@ class config
 
       /* Move referrals */
       if (!isset($this->current['REFERRAL'])) {
-        $this->ldap->referrals = array();
+        $this->ldap->referrals = [];
       } else {
         $this->ldap->referrals = $this->current['REFERRAL'];
       }
@@ -348,7 +348,7 @@ class config
    *
    * \param string $name the name of the location
    */
-  function set_current($name)
+  function set_current ($name)
   {
     if (!isset($this->data['LOCATIONS'][$name])) {
       msg_dialog::display(_('Error'), sprintf(_('Location "%s" could not be found in the configuration file'), $name), FATAL_ERROR_DIALOG);
@@ -357,12 +357,12 @@ class config
     $this->current = $this->data['LOCATIONS'][$name];
 
     if (isset($this->current['INITIAL_BASE'])) {
-      session::global_set('CurrentMainBase', $this->current['INITIAL_BASE']);
+      session::set('CurrentMainBase', $this->current['INITIAL_BASE']);
     }
 
     /* Sort referrals, if present */
     if (isset($this->current['REFERRAL'])) {
-      $servers  = array();
+      $servers  = [];
       foreach ($this->current['REFERRAL'] as $server => $ref) {
         $servers[$server] = strlen($ref['BASE']);
       }
@@ -398,7 +398,7 @@ class config
     if (isset($this->data['MAIN']['DEBUGLEVEL'])) {
       $debugLevel |= $this->data['MAIN']['DEBUGLEVEL'];
     }
-    session::global_set('DEBUGLEVEL', $debugLevel);
+    session::set('DEBUGLEVEL', $debugLevel);
 
     IconTheme::loadThemes('themes');
 
@@ -424,12 +424,12 @@ class config
     $ldap = $this->get_ldap_link();
 
     /* Get samba servers from LDAP */
-    $this->data['SERVERS']['SAMBA'] = array();
+    $this->data['SERVERS']['SAMBA'] = [];
     if (class_available('sambaAccount')) {
       $ldap->cd($this->current['BASE']);
       $ldap->search('(objectClass=sambaDomain)');
       while ($attrs = $ldap->fetch()) {
-        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]] = array( 'SID' => '','RIDBASE' => '');
+        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]] = [ 'SID' => '','RIDBASE' => ''];
         if (isset($attrs['sambaSID'][0])) {
           $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]['SID'] = $attrs['sambaSID'][0];
         }
@@ -441,10 +441,10 @@ class config
       /* If no samba servers are found, look for configured sid/ridbase */
       if (count($this->data['SERVERS']['SAMBA']) == 0) {
         if (isset($this->current['SAMBASID']) && isset($this->current['SAMBARIDBASE'])) {
-          $this->data['SERVERS']['SAMBA']['DEFAULT'] = array(
+          $this->data['SERVERS']['SAMBA']['DEFAULT'] = [
             'SID'     => $this->get_cfg_value('SAMBASID'),
             'RIDBASE' => $this->get_cfg_value('SAMBARIDBASE')
-          );
+          ];
         }
       }
     }
@@ -459,7 +459,7 @@ class config
 
     if (!$forceReload) {
       $ldap = $this->get_ldap_link();
-      $ldap->cat($dn, array('fusionConfigMd5'));
+      $ldap->cat($dn, ['fusionConfigMd5']);
       if ($attrs = $ldap->fetch()) {
         if (isset($attrs['fusionConfigMd5'][0]) && ($attrs['fusionConfigMd5'][0] == md5_file(CACHE_DIR.'/'.CLASS_CACHE))) {
           return;
@@ -474,7 +474,7 @@ class config
     del_lock($dn);
   }
 
-  function load_inldap_config()
+  function load_inldap_config ()
   {
     $ldap = $this->get_ldap_link();
     $ldap->cat(CONFIGRDN.$this->current['BASE']);
@@ -488,10 +488,10 @@ class config
             $mode   = strtoupper($parts[1]);
             $cmd    = $parts[2];
             if (!isset($this->data['HOOKS'][$class])) {
-              $this->data['HOOKS'][$class] = array('CLASS' => $parts[0]);
+              $this->data['HOOKS'][$class] = ['CLASS' => $parts[0]];
             }
             if (!isset($this->data['HOOKS'][$class][$mode])) {
-              $this->data['HOOKS'][$class][$mode] = array();
+              $this->data['HOOKS'][$class][$mode] = [];
             }
             $this->data['HOOKS'][$class][$mode][] = $cmd;
           }
@@ -512,10 +512,10 @@ class config
   /*!
    * \brief Store the departments from ldap in $this->departments
    */
-  function get_departments()
+  function get_departments ()
   {
     /* Initialize result hash */
-    $result = array();
+    $result = [];
 
     $result['/'] = $this->current['BASE'];
 
@@ -528,7 +528,7 @@ class config
 
     /* Create a list of attributes to fetch */
     $filter       = '';
-    $ldap_values  = array('objectClass', 'description');
+    $ldap_values  = ['objectClass', 'description'];
     foreach ($types as $type) {
       $i = objects::infos($type);
       $filter         .= $i['filter'];
@@ -539,8 +539,8 @@ class config
 
     /* Get list of department objects */
     $ldap = $this->get_ldap_link();
-    $ldap->cd ($this->current['BASE']);
-    $ldap->search ($filter, $ldap_values);
+    $ldap->cd($this->current['BASE']);
+    $ldap->search($filter, $ldap_values);
     while ($attrs = $ldap->fetch()) {
 
       /* Detect department type */
@@ -559,11 +559,11 @@ class config
 
       $dn   = $attrs['dn'];
       $data = objects::infos($oc);
-      $this->department_info[$dn] = array(
+      $this->department_info[$dn] = [
         'img'         => $data['icon'],
         'description' => (isset($attrs['description'][0]) ? $attrs['description'][0] : ''),
         'name'        => $attrs[$data['mainAttr']][0]
-      );
+      ];
 
       /* Only assign non-root departments */
       if ($dn != $result['/']) {
@@ -575,14 +575,14 @@ class config
     $this->departments = $result;
   }
 
-  function make_idepartments($max_size = 28)
+  function make_idepartments ($max_size = 28)
   {
     $base   = $this->current['BASE'];
     $qbase  = preg_quote($base, '/');
 
-    $arr  = array();
+    $arr  = [];
 
-    $this->idepartments = array();
+    $this->idepartments = [];
 
     /* Create multidimensional array, with all departments. */
     foreach ($this->departments as $key => $val) {
@@ -632,9 +632,9 @@ class config
    *
    * \param int $max_size initialized at 256
    */
-  function generateDepartmentArray($arr, $depth = -1, $max_size = 256)
+  function generateDepartmentArray ($arr, $depth = -1, $max_size = 256)
   {
-    $ret = array();
+    $ret = [];
     $depth++;
 
     /* Walk through array */
@@ -687,11 +687,11 @@ class config
    *
    *  \return array of hook commands or empty array
    */
-  function searchHooks($class, $value)
+  function searchHooks ($class, $value)
   {
     $class = strtoupper($class);
     $value = strtoupper($value);
-    return (isset($this->data['HOOKS'][$class][$value]) ? $this->data['HOOKS'][$class][$value] : array());
+    return (isset($this->data['HOOKS'][$class][$value]) ? $this->data['HOOKS'][$class][$value] : []);
   }
 
   /*!
@@ -711,7 +711,7 @@ class config
    *
    * \return string the configuration value if found or the default value
    */
-  function get_cfg_value($name, $default = '')
+  function get_cfg_value ($name, $default = '')
   {
     $name = strtoupper($name);
     $res  = $default;
@@ -725,7 +725,7 @@ class config
     }
 
     if (is_array($default) && !is_array($res)) {
-      $res = array($res);
+      $res = [$res];
     }
 
     return $res;
@@ -744,7 +744,7 @@ class config
    *  or not. If SESSIONLIFETIME is not configured in FusionDirectory it always returns
    *  TRUE.
    */
-  function check_session_lifetime()
+  function check_session_lifetime ()
   {
     $cfg_lifetime = $this->get_cfg_value('SESSIONLIFETIME', 0);
     if ($cfg_lifetime > 0) {
@@ -761,7 +761,7 @@ class config
    *
    * \return boolean TRUE if snapshot are enabled, FALSE otherwise
    */
-  function snapshotEnabled()
+  function snapshotEnabled ()
   {
     if ($this->get_cfg_value('enableSnapshots') != 'TRUE') {
       return FALSE;
@@ -794,14 +794,14 @@ class config
 
   function loadPlist (pluglist $plist)
   {
-    $this->data['OBJECTS']    = array();
-    $this->data['SECTIONS']   = array();
-    $this->data['CATEGORIES'] = array();
-    $this->data['MENU']       = array();
-    $this->data['TABS']       = array();
+    $this->data['OBJECTS']    = [];
+    $this->data['SECTIONS']   = [];
+    $this->data['CATEGORIES'] = [];
+    $this->data['MENU']       = [];
+    $this->data['TABS']       = [];
     foreach ($plist->info as $class => &$plInfo) {
       if (isset($plInfo['plObjectType'])) {
-        $entry = array('CLASS' => $class,'NAME' => $plInfo['plShortName']);
+        $entry = ['CLASS' => $class,'NAME' => $plInfo['plShortName']];
         if (isset($plInfo['plSubTabs'])) {
           $entry['SUBTABS'] = strtoupper($plInfo['plSubTabs']);
         }
@@ -812,9 +812,9 @@ class config
             if (($tabclass == 'GROUPTABS') && class_available('mixedGroup')) {
               $tabclass = 'OGROUP-USERTABS';
             }
-            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class to tab list");
+            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class to tab list");
             if (!isset($this->data['TABS'][$tabclass])) {
-              $this->data['TABS'][$tabclass] = array();
+              $this->data['TABS'][$tabclass] = [];
             }
             $this->data['TABS'][$tabclass][] = $entry;
           } else {
@@ -827,7 +827,7 @@ class config
             $value['mainTab']         = $class;
             $value['templateActive']  = FALSE;
             $value['snapshotActive']  = FALSE;
-            foreach (array('ou', 'tabClass') as $i) {
+            foreach (['ou', 'tabClass'] as $i) {
               if (!isset($value[$i])) {
                 $value[$i] = NULL;
               }
@@ -852,32 +852,32 @@ class config
               $value['tabClass'] = 'simpleTabs';
             }
             $this->data['OBJECTS'][strtoupper($key)] = $value;
-            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class as main tab of");
+            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class as main tab of");
             if (!isset($this->data['TABS'][$tabclass])) {
-              $this->data['TABS'][$tabclass] = array();
+              $this->data['TABS'][$tabclass] = [];
             }
             array_unshift($this->data['TABS'][$tabclass], $entry);
           }
         }
       } elseif (class_available($class) && is_subclass_of($class, 'simpleService')) {
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, "Adding service");
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, "Adding service");
         if (!isset($this->data['TABS']['SERVERSERVICE'])) {
-          $this->data['TABS']['SERVERSERVICE'] = array();
+          $this->data['TABS']['SERVERSERVICE'] = [];
         }
-        $this->data['TABS']['SERVERSERVICE'][] = array(
+        $this->data['TABS']['SERVERSERVICE'][] = [
           'CLASS' => $class,
           'NAME' => $plInfo['plShortName']
-        );
+        ];
       }
       /* Feed categories */
       if (isset($plInfo['plCategory'])) {
         /* Walk through supplied list and feed only translated categories */
-        $cats = array();
+        $cats = [];
         foreach ($plInfo['plCategory'] as $idx => $data) {
           $cat    = (is_numeric($idx) ? $data : $idx);
           $cats[] = $cat;
           if (!isset($this->data['CATEGORIES'][$cat])) {
-            $this->data['CATEGORIES'][$cat] = array( 'classes' => array('0') );
+            $this->data['CATEGORIES'][$cat] = [ 'classes' => ['0'] ];
           }
           if (!empty($plInfo['plProvidedAcls'])) {
             $this->data['CATEGORIES'][$cat]['classes'][] = $class;
@@ -886,7 +886,7 @@ class config
             /* Non numeric index means -> base object containing more informations */
             $this->data['CATEGORIES'][$cat]['description'] = $data['description'];
             if (!is_array($data['objectClass'])) {
-              $data['objectClass'] = array($data['objectClass']);
+              $data['objectClass'] = [$data['objectClass']];
             }
             $this->data['CATEGORIES'][$cat]['objectClass'] = $data['objectClass'];
           }
@@ -895,18 +895,18 @@ class config
       }
     }
     unset($plInfo);
-    $this->data['CATEGORIES']['all'] = array(
-      'classes'     => array('all'),
+    $this->data['CATEGORIES']['all'] = [
+      'classes'     => ['all'],
       'description' => '*&nbsp;'._('All categories'),
-      'objectClass' => array(),
-    );
+      'objectClass' => [],
+    ];
     /* Extract categories definitions from object types */
     foreach ($this->data['OBJECTS'] as $key => $infos) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['aclCategory'], "ObjectType $key category");
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['aclCategory'], "ObjectType $key category");
       if (strtoupper($infos['aclCategory']) == $key) {
         $cat = $infos['aclCategory'];
         if (!isset($this->data['CATEGORIES'][$cat])) {
-          $this->data['CATEGORIES'][$cat] = array('classes' => array('0'));
+          $this->data['CATEGORIES'][$cat] = ['classes' => ['0']];
         }
         if (!isset($this->data['CATEGORIES'][$cat]['description'])) {
           $this->data['CATEGORIES'][$cat]['description'] = $infos['name'];
@@ -917,11 +917,11 @@ class config
     }
     /* Now that OBJECTS are filled, place tabs in categories */
     foreach ($plist->info as $class => &$plInfo) {
-      $acl = array();
+      $acl = [];
       if (isset($plInfo['plCategory'])) {
         $acl = $plInfo['plCategory'];
         if (!is_array($acl)) {
-          $acl = array($acl);
+          $acl = [$acl];
         }
       }
       if (isset($plInfo['plObjectType'])) {
@@ -980,12 +980,12 @@ class config
           }
         }
       }
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, join(',', array_unique($acl)), "Class $class categories");
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, join(',', array_unique($acl)), "Class $class categories");
       /* Feed menu */
       if (isset($plInfo['plSection'])) {
         $section = $plInfo['plSection'];
         if (!is_array($acl)) {
-          $acl = array($acl);
+          $acl = [$acl];
         }
         if (!is_numeric(key($acl))) {
           $acl = array_keys($acl);
@@ -1004,9 +1004,9 @@ class config
           $this->data['SECTIONS'][$section] = array_change_key_case($plInfo['plSection'][$section], CASE_UPPER);
         }
         if (!isset($this->data['MENU'][$section])) {
-          $this->data['MENU'][$section] = array();
+          $this->data['MENU'][$section] = [];
         }
-        $attrs = array('CLASS' => $class);
+        $attrs = ['CLASS' => $class];
         if (!empty($acl)) {
           $attrs['ACL'] = $acl;
         }
@@ -1019,7 +1019,7 @@ class config
             $this->data['SECTIONS'][$section] = array_change_key_case($infos, CASE_UPPER);
           }
           if (!isset($this->data['MENU'][$section])) {
-            $this->data['MENU'][$section] = array();
+            $this->data['MENU'][$section] = [];
           }
         }
         foreach ($entries as $section => $section_entries) {
@@ -1035,15 +1035,15 @@ class config
       $infos['classes'] = array_unique($infos['classes']);
       if (!isset($infos['description'])) {
         $infos['description'] = $name;
-        $infos['objectClass'] = array();
+        $infos['objectClass'] = [];
       }
     }
     unset($infos);
-    $this->data['SECTIONS']['personal'] = array('NAME' => _('My account'), 'PRIORITY' => 40);
-    $personal = array();
+    $this->data['SECTIONS']['personal'] = ['NAME' => _('My account'), 'PRIORITY' => 40];
+    $personal = [];
     foreach ($this->data['TABS']['USERTABS'] as $tab) {
       if ($plist->info[$tab['CLASS']]['plSelfModify']) {
-        $personal[] = array('CLASS' => $tab['CLASS'], 'ACL' => 'user/'.$tab['CLASS'].':self');
+        $personal[] = ['CLASS' => $tab['CLASS'], 'ACL' => 'user/'.$tab['CLASS'].':self'];
       }
     }
     if (!isset($this->data['MENU']['personal'])) {
diff --git a/include/class_departmentSortIterator.inc b/include/class_departmentSortIterator.inc
index ce23a7b6ad757f096d07f093d465abc9f5d2fbcb..da4a6059890af3ed72d29f5c77d0d1a32e9edf51 100644
--- a/include/class_departmentSortIterator.inc
+++ b/include/class_departmentSortIterator.inc
@@ -35,7 +35,7 @@ class departmentSortIterator extends listingSortIterator {
    *
    * \param $direction Direction
    */
-  public function __construct($data, $direction)
+  public function __construct ($data, $direction)
   {
     parent::__construct($data, $direction, 'sort-attribute', 'department');
   }
diff --git a/include/class_divSelectBox.inc b/include/class_divSelectBox.inc
index 1964e81c9fa3135fc0636ba6a2182e774c8d5c94..1f54867f54f98816af1b4250b43d6d59c097708f 100644
--- a/include/class_divSelectBox.inc
+++ b/include/class_divSelectBox.inc
@@ -44,10 +44,10 @@ class divSelectBox
   /*!
    * \brief Default divSelectBox constructor
    */
-  function __construct($id)
+  function __construct ($id)
   {
     $this->s_summary  = '';
-    $this->a_entries  = array();
+    $this->a_entries  = [];
     $this->cols       = 0;
     $this->id         = $id;
   }
@@ -57,7 +57,7 @@ class divSelectBox
    *
    * \param integer $h Height
    */
-  function setHeight($h)
+  function setHeight ($h)
   {
     if (is_numeric($h)) {
       $this->height = $h.'px';
@@ -71,7 +71,7 @@ class divSelectBox
    *
    * \param array $a_entriedata
    */
-  function AddEntry($a_entriedata)
+  function AddEntry ($a_entriedata)
   {
     $this->a_entries[] = $a_entriedata;
   }
@@ -81,7 +81,7 @@ class divSelectBox
    *
    * \param array $headers
    */
-  function SetHeaders($headers)
+  function SetHeaders ($headers)
   {
     $this->headers = $headers;
   }
@@ -89,7 +89,7 @@ class divSelectBox
   /*!
    * \brief Draw the list
    */
-  function DrawList()
+  function DrawList ()
   {
     $s_return = '';
     $s_return .= '<div style="border:1px solid rgb(170,170,170);padding-right:1px;height:'.$this->height.';width:100%">'."\n";
@@ -117,7 +117,7 @@ class divSelectBox
   /*!
    * \brief Get the number of entries
    */
-  function _numentries()
+  function _numentries ()
   {
     $cnt = count($this->a_entries);
     return $cnt;
@@ -128,7 +128,7 @@ class divSelectBox
    *
    * \param string $msg
    */
-  function SetSummary($msg)
+  function SetSummary ($msg)
   {
     $this->s_summary = $msg;
   }
@@ -136,7 +136,7 @@ class divSelectBox
   /*!
    * \brief Generate the page
    */
-  function _generatePage()
+  function _generatePage ()
   {
     $display = '';
     if ($this->headers !== FALSE) {
@@ -155,7 +155,7 @@ class divSelectBox
   /*!
    * \brief Generate the body
    */
-  function _generateBody()
+  function _generateBody ()
   {
     $s_value  = '';
     $s_key    = '';
diff --git a/include/class_filter.inc b/include/class_filter.inc
index aa3a4d58ba4df5a802daef40b3048f08ddf6c5df..2c5c030a9dd30405cc7ac1118127c00ab3e6a560 100644
--- a/include/class_filter.inc
+++ b/include/class_filter.inc
@@ -30,19 +30,19 @@
 class filter
 {
   var $xmlData;
-  var $elements         = array();
-  var $elementValues    = array();
-  var $alphabetElements = array();
-  var $autocompleter    = array();
+  var $elements         = [];
+  var $elementValues    = [];
+  var $alphabetElements = [];
+  var $autocompleter    = [];
   var $category         = '';
-  var $objectStorage    = array();
+  var $objectStorage    = [];
   var $base             = '';
   var $scope            = '';
   var $query;
   var $initial          = FALSE;
   var $scopeMode        = 'auto';
   var $alphabet         = NULL;
-  var $converter        = array();
+  var $converter        = [];
   var $pid;
   var $headpage;
 
@@ -51,7 +51,7 @@ class filter
    *
    * \param string $filename
    */
-  function __construct($filename)
+  function __construct ($filename)
   {
     // Load eventually passed filename
     if (!$this->load($filename)) {
@@ -66,7 +66,7 @@ class filter
    *
    * \param string $filename
    */
-  function load($filename)
+  function load ($filename)
   {
     $contents       = file_get_contents($filename);
     $this->xmlData  = xml::xml2array($contents, 1);
@@ -79,7 +79,7 @@ class filter
 
     // Load filter
     if (!isset($this->xmlData['search']['query'][0])) {
-      $this->xmlData['search']['query'] = array($this->xmlData['search']['query']);
+      $this->xmlData['search']['query'] = [$this->xmlData['search']['query']];
     }
 
     // Move information
@@ -101,7 +101,7 @@ class filter
     // Generate formular data
     if (isset($this->xmlData['element'])) {
       if (!isset($this->xmlData['element'][0])) {
-        $this->xmlData['element'] = array($this->xmlData['element']);
+        $this->xmlData['element'] = [$this->xmlData['element']];
       }
       foreach ($this->xmlData['element'] as $element) {
         // Ignore elements without type
@@ -113,7 +113,7 @@ class filter
 
         // Fix arrays
         if (isset($element['value']) && !isset($element['value'][0])) {
-          $element['value'] = array($element['value']);
+          $element['value'] = [$element['value']];
         }
 
         // Store element for quick access
@@ -144,7 +144,7 @@ class filter
    *
    * \param array $element
    */
-  function getTextfield($element)
+  function getTextfield ($element)
   {
     $tag  = $element['tag'];
     $size = 30;
@@ -155,7 +155,7 @@ class filter
     if (isset($element['maxlength'])) {
       $maxlength = $element['maxlength'];
     }
-    $result = '<input class="filter_textfield" id="'.$tag.'" name="'.$tag.'" type="text" size="'.$size.'"'.(empty($maxlength) ? '' : ' maxlength="'.$maxlength.'"').' value="'.$this->elementValues[$tag].'"/>';
+    $result = '<input class="filter_textfield" id="'.$tag.'" name="'.$tag.'" type="text" size="'.$size.'"'.(empty($maxlength) ? '' : ' maxlength="'.$maxlength.'"').' value="'.htmlentities($this->elementValues[$tag], ENT_COMPAT, 'UTF-8').'"/>';
     if (isset($element['autocomplete'])) {
       $frequency  = "0.5";
       $characters = "1";
@@ -181,7 +181,7 @@ class filter
    *
    * \param array $element
    */
-  function getCheckbox($element)
+  function getCheckbox ($element)
   {
     $tag      = $element['tag'];
     $checked  = "";
@@ -198,7 +198,7 @@ class filter
    *
    * \param array $element
    */
-  function getCombobox($element)
+  function getCombobox ($element)
   {
     $result = "<select name='".$element['tag']."' size='1' onChange='document.mainform.submit();'>";
 
@@ -236,7 +236,7 @@ class filter
    *
    * \param array $element
    */
-  function getDatePicker($element)
+  function getDatePicker ($element)
   {
     global $lang;
     $tag    = $element['tag'];
@@ -263,12 +263,12 @@ class filter
    *
    * \param array $options
    */
-  function setComboBoxOptions($tag, $options)
+  function setComboBoxOptions ($tag, $options)
   {
     if (isset($this->elements[$tag]) && ($this->elements[$tag]['type'] == "combobox")) {
-      $this->elements[$tag]['value'] = array();
+      $this->elements[$tag]['value'] = [];
       foreach ($options as $key => $label) {
-        $this->elements[$tag]['value'][] = array('label' => $label, 'key' => $key);
+        $this->elements[$tag]['value'][] = ['label' => $label, 'key' => $key];
       }
     }
   }
@@ -280,7 +280,7 @@ class filter
    *
    * \param string $hook
    */
-  function setConverter($field, $hook)
+  function setConverter ($field, $hook)
   {
     $this->converter[$field] = $hook;
   }
@@ -290,7 +290,7 @@ class filter
    *
    * \param string $storage
    */
-  function setObjectStorage($storage)
+  function setObjectStorage ($storage)
   {
     $this->objectStorage = $storage;
   }
@@ -301,7 +301,7 @@ class filter
    *
    * \param string $base
    */
-  function setBase($base)
+  function setBase ($base)
   {
     $this->base = $base;
   }
@@ -311,7 +311,7 @@ class filter
    *
    * \param string $scope
    */
-  function setCurrentScope($scope)
+  function setCurrentScope ($scope)
   {
     $this->scope = $scope;
   }
@@ -321,7 +321,7 @@ class filter
    *
    * \param integer $columns
    */
-  function renderAlphabet($columns = 10)
+  function renderAlphabet ($columns = 10)
   {
     // Return pre-rendered alphabet if available
     if ($this->alphabet) {
@@ -364,7 +364,7 @@ class filter
    *
    * \return string
    */
-  function renderApply()
+  function renderApply ()
   {
     return "<input type='submit' name='apply' value='"._("Apply filter")."'>";
   }
@@ -374,7 +374,7 @@ class filter
    *
    * \return string
    */
-  function renderScope()
+  function renderScope ()
   {
     $checked = ($this->scope == 'sub' ? ' checked' : '');
     return "<input type='checkbox' id='SCOPE' name='SCOPE' value='1' onClick='document.mainform.submit();'$checked>&nbsp;<LABEL for='SCOPE'>"._("Search in subtrees")."</LABEL>";
@@ -383,7 +383,7 @@ class filter
   /*!
    * \brief Render
    */
-  function render()
+  function render ()
   {
     /* If template is not filled, we display nothing */
     if (!isset ($this->xmlData['definition']['template'])) {
@@ -417,7 +417,7 @@ class filter
           break;
 
         default:
-          throw new Exception ('Unknown element type specified: '.$element['type'].'!');
+          throw new Exception('Unknown element type specified: '.$element['type'].'!');
       }
       $smarty->assign("$tag", $htmlCode);
     }
@@ -437,10 +437,10 @@ class filter
   /*!
    * \brief Query
    */
-  function query()
+  function query ()
   {
     global $class_mapping;
-    $result = array();
+    $result = [];
 
     // Return empty list if initial is not set
     if (!$this->initial) {
@@ -465,10 +465,10 @@ class filter
       $attributes = $query['attribute'];
 
       if ($attributes === '*') {
-        $attributes = array($attributes);
+        $attributes = [$attributes];
       } else {
         if (!is_array($attributes)) {
-          $attributes = array($attributes);
+          $attributes = [$attributes];
         }
         // ObjectClass is required to check permissions later.
         if (!in_array('objectClass', $attributes)) {
@@ -485,8 +485,8 @@ class filter
         // Handle converters if present
         if (isset($this->converter[$tag])) {
           preg_match('/([^:]+)::(.*)$/', $this->converter[$tag], $m);
-          $e_set    = call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->elementValues[$tag], is_array($element['set']) ? '' : $element['set']));
-          $e_unset  = call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->elementValues[$tag], is_array($element['unset']) ? '' : $element['unset']));
+          $e_set    = call_user_func([$m[1], $m[2]], preg_replace('/\$/', $this->elementValues[$tag], is_array($element['set']) ? '' : $element['set']));
+          $e_unset  = call_user_func([$m[1], $m[2]], preg_replace('/\$/', $this->elementValues[$tag], is_array($element['unset']) ? '' : $element['unset']));
         } else {
           $e_set    = (is_array($element['set']) ? '' : $element['set']);
           $e_unset  = (is_array($element['unset']) ? '' : $element['unset']);
@@ -519,7 +519,7 @@ class filter
         );
       }
       // Now call filter method and merge resulting entries.
-      $result = array_merge($result, call_user_func(array($backend, 'query'),
+      $result = array_merge($result, call_user_func([$backend, 'query'],
             $this, $this->base, $this->scope, $filter, $attributes, $this->category, $objectStorage));
     }
 
@@ -531,7 +531,7 @@ class filter
    *
    * \return TRUE if is valid, FALSE otherwise
    */
-  function isValid()
+  function isValid ()
   {
     foreach ($this->elements as $tag => $element) {
       if (isset($element->regex)) {
@@ -546,7 +546,7 @@ class filter
   /*!
    * \brief Update
    */
-  function update()
+  function update ()
   {
     /* React on alphabet links if needed */
     if (isset($_GET['filter'])) {
@@ -593,10 +593,10 @@ class filter
    *
    * \param string $value
    */
-  function getCompletitionList($cfg, $tag, $value = "*")
+  function getCompletitionList ($cfg, $tag, $value = "*")
   {
     global $class_mapping;
-    $res = array();
+    $res = [];
 
     // Is backend available?
     $backend = "filter".$cfg['backend'];
@@ -608,7 +608,7 @@ class filter
     $filter     = $cfg['filter'];
     $attributes = $cfg['attribute'];
     if (!is_array($attributes)) {
-      $attributes = array($attributes);
+      $attributes = [$attributes];
     }
 
     // ObjectClass is required to check permissions later.
@@ -619,10 +619,10 @@ class filter
     // Make filter
     $filter = preg_replace("/\\$$tag/", ldap_escape_f($value), $filter);
     if (isset($cfg['base']) && isset($cfg['scope']) && isset($cfg['category'])) {
-      $result = call_user_func(array($backend, 'query'), $this, $cfg['base'], $cfg['scope'], $filter, $attributes,
+      $result = call_user_func([$backend, 'query'], $this, $cfg['base'], $cfg['scope'], $filter, $attributes,
                            $cfg["category"], $cfg["objectStorage"]);
     } else {
-      $result = call_user_func(array($backend, 'query'), $this, $this->base, $this->scope, $filter, $attributes,
+      $result = call_user_func([$backend, 'query'], $this, $this->base, $this->scope, $filter, $attributes,
                            $this->category, $this->objectStorage);
     }
 
@@ -646,9 +646,9 @@ class filter
   /*!
    * \brief Auto complete
    */
-  function processAutocomplete()
+  function processAutocomplete ()
   {
-    $result = array();
+    $result = [];
 
     // Introduce maximum number of entries
     $max = 25;
@@ -680,7 +680,7 @@ class filter
  *
  * \param array $b
  */
-function strlenSort($a, $b)
+function strlenSort ($a, $b)
 {
   if (strlen($a['tag']) == strlen($b['tag'])) {
     return 0;
diff --git a/include/class_filterLDAP.inc b/include/class_filterLDAP.inc
index 5e677b4bbb7e8eac5a5a55e11a6ec2ac4f6ea9e7..14fd21aadafa486feadfbb89e8774b6b5012f34b 100644
--- a/include/class_filterLDAP.inc
+++ b/include/class_filterLDAP.inc
@@ -48,7 +48,7 @@ class filterLDAP
    *
    * \param array $objectStorage
    */
-  static function query($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = array(""))
+  static function query ($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = [""])
   {
     return static::get_list($parent, $base, $filter, $attributes, $category, $objectStorage, (($scope == 'sub') ? 'subtree' : 'one'), TRUE);
   }
@@ -74,17 +74,17 @@ class filterLDAP
    *
    * \param boolean $skipAcl
    */
-  static function get_list($parent, $base, $filter, $attributes, $category, $objectStorage, $scope, $sizelimit = TRUE, $skipAcl = FALSE)
+  static function get_list ($parent, $base, $filter, $attributes, $category, $objectStorage, $scope, $sizelimit = TRUE, $skipAcl = FALSE)
   {
     global $config, $ui;
 
     // Move to arrays for category and objectStorage
     if (!is_array($category)) {
-      $category = array($category);
+      $category = [$category];
     }
 
     // Initialize search bases
-    $bases = array();
+    $bases = [];
 
     foreach ($objectStorage as $oc) {
       $oc = preg_replace('/,$/', '', $oc);
@@ -103,7 +103,7 @@ class filterLDAP
         }
         $parts    = ldap_explode_dn($oc, 0);
         unset($parts['count']);
-        $dnFilter = array();
+        $dnFilter = [];
         foreach ($parts as $part) {
           preg_match('/([^=]+)=(.*)$/', $part, $m);
           $dnFilter[] = '('.$m[1].':dn:='.$m[2].')';
@@ -120,7 +120,7 @@ class filterLDAP
     $ldap = $config->get_ldap_link($sizelimit);
 
     // Do search for every base
-    $result = array();
+    $result = [];
     $limit_exceeded = FALSE;
     $ui->getSizeLimitHandler()->setLimitExceeded(FALSE);
 
diff --git a/include/class_ldap.inc b/include/class_ldap.inc
index eb0ebb9893eee29962d75d9d50e4f2a2866a80e1..a287777f97fca5bb207e7d09c321cb8699fc9441 100644
--- a/include/class_ldap.inc
+++ b/include/class_ldap.inc
@@ -40,13 +40,13 @@ class LDAP
   /* connection identifier */
   var $cid;
 
-  var $hasres         = array();
-  var $sr             = array();
-  var $re             = array();
+  var $hasres         = [];
+  var $sr             = [];
+  var $re             = [];
   var $basedn         = "";
 
   /* 0 if we are fetching the first entry, otherwise 1 */
-  var $start          = array();
+  var $start          = [];
 
   /* Any error messages to be returned can be put here */
   var $error          = "";
@@ -54,14 +54,14 @@ class LDAP
   var $srp            = 0;
 
   /* Information read from slapd.oc.conf */
-  var $objectClasses    = array();
+  var $objectClasses    = [];
   /* the dn for the bind */
   var $binddn           = "";
   /* the dn's password for the bind */
   var $bindpw           = "";
   var $hostname         = "";
   var $follow_referral  = FALSE;
-  var $referrals        = array();
+  var $referrals        = [];
 
   /* 0, empty or negative values will disable this check */
   var $max_ldap_query_time  = 0;
@@ -79,7 +79,7 @@ class LDAP
    *
    * \param boolean $tls FALSE
    */
-  function __construct($binddn, $bindpw, $hostname, $follow_referral = FALSE, $tls = FALSE)
+  function __construct ($binddn, $bindpw, $hostname, $follow_referral = FALSE, $tls = FALSE)
   {
     global $config;
     $this->follow_referral  = $follow_referral;
@@ -102,7 +102,7 @@ class LDAP
    *
    * \return increase srp
    */
-  function getSearchResource()
+  function getSearchResource ()
   {
     $this->sr[$this->srp]     = NULL;
     $this->start[$this->srp]  = 0;
@@ -115,7 +115,7 @@ class LDAP
    *
    * \param string $dn The DN
    */
-  static function prepare4filter($dn)
+  static function prepare4filter ($dn)
   {
     trigger_error('deprecated, use ldap_escape_f instead');
     return ldap_escape_f($dn);
@@ -126,7 +126,7 @@ class LDAP
    *
    *  The string $error containts result of the connection
    */
-  function connect()
+  function connect ()
   {
     $this->hascon     = FALSE;
     $this->reconnect  = FALSE;
@@ -134,7 +134,7 @@ class LDAP
       @ldap_set_option($this->cid, LDAP_OPT_PROTOCOL_VERSION, 3);
       if (function_exists("ldap_set_rebind_proc") && $this->follow_referral) {
         @ldap_set_option($this->cid, LDAP_OPT_REFERRALS, 1);
-        @ldap_set_rebind_proc($this->cid, array(&$this, "rebind"));
+        @ldap_set_rebind_proc($this->cid, [&$this, "rebind"]);
       }
       if (function_exists("ldap_start_tls") && $this->tls) {
         @ldap_start_tls($this->cid);
@@ -161,7 +161,7 @@ class LDAP
   /*!
    *  \brief Rebind
    */
-  function rebind($ldap, $referral)
+  function rebind ($ldap, $referral)
   {
     $credentials = $this->get_credentials($referral);
     if (@ldap_bind($ldap, $credentials['ADMINDN'], $credentials['ADMINPASSWORD'])) {
@@ -178,7 +178,7 @@ class LDAP
   /*!
    *  \brief Reconnect to LDAP server
    */
-  function reconnect()
+  function reconnect ()
   {
     if ($this->reconnect) {
       $this->unbind();
@@ -188,7 +188,7 @@ class LDAP
   /*!
    *  \brief Unbind to LDAP server
    */
-  function unbind()
+  function unbind ()
   {
     @ldap_unbind($this->cid);
     $this->cid = NULL;
@@ -197,7 +197,7 @@ class LDAP
   /*!
    *  \brief Disconnect to LDAP server
    */
-  function disconnect()
+  function disconnect ()
   {
     if ($this->hascon) {
       @ldap_close($this->cid);
@@ -210,7 +210,7 @@ class LDAP
    *
    * \param string $dir The new directory
    */
-  function cd($dir)
+  function cd ($dir)
   {
     if ($dir == '..') {
       $this->basedn = $this->getParentDir();
@@ -226,7 +226,7 @@ class LDAP
    *
    * \return String, the parent directory
    */
-  function getParentDir($basedn = '')
+  function getParentDir ($basedn = '')
   {
     if ($basedn == '') {
       $basedn = $this->basedn;
@@ -245,7 +245,7 @@ class LDAP
    *
    * \param string $scope Scope of the search: subtree/base/one
    */
-  function search($srp, $filter, $attrs = array(), $scope = 'subtree')
+  function search ($srp, $filter, $attrs = [], $scope = 'subtree')
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -297,7 +297,7 @@ class LDAP
    *
    * \param array $attrs
    */
-  function ls($srp, $filter = "(objectclass=*)", $basedn = "", $attrs = array("*"))
+  function ls ($srp, $filter = "(objectclass=*)", $basedn = "", $attrs = ["*"])
   {
     trigger_error('deprecated');
     $this->cd($basedn);
@@ -315,7 +315,7 @@ class LDAP
    *
    * \param string $filter Initialized at "(objectclass=*)"
    */
-  function cat($srp, $dn, $attrs = array("*"), $filter = "(objectclass=*)")
+  function cat ($srp, $dn, $attrs = ["*"], $filter = "(objectclass=*)")
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -341,13 +341,13 @@ class LDAP
    *
    * \param string $filter The filter of the research
    */
-  function object_match_filter($dn, $filter)
+  function object_match_filter ($dn, $filter)
   {
     if ($this->hascon) {
       if ($this->reconnect) {
         $this->connect();
       }
-      $res  = @ldap_read($this->cid, $dn, $filter, array("objectClass"));
+      $res  = @ldap_read($this->cid, $dn, $filter, ["objectClass"]);
       $rv   = @ldap_count_entries($this->cid, $res);
       return $rv;
     } else {
@@ -361,7 +361,7 @@ class LDAP
    *
    * \param $size The limit
    */
-  function set_size_limit($size)
+  function set_size_limit ($size)
   {
     /* Ignore zero settings */
     if ($size == 0) {
@@ -379,9 +379,9 @@ class LDAP
    *
    * \param integer $srp
    */
-  function fetch($srp)
+  function fetch ($srp)
   {
-    $att = array();
+    $att = [];
     if ($this->hascon) {
       if ($this->hasres[$srp]) {
         if ($this->start[$srp] == 0) {
@@ -389,7 +389,7 @@ class LDAP
             $this->start[$srp]  = 1;
             $this->re[$srp]     = @ldap_first_entry($this->cid, $this->sr[$srp]);
           } else {
-            return array();
+            return [];
           }
         } else {
           $this->re[$srp] = @ldap_next_entry($this->cid, $this->re[$srp]);
@@ -400,7 +400,7 @@ class LDAP
         }
         $this->error = @ldap_error($this->cid);
         if (!isset($att)) {
-          $att = array();
+          $att = [];
         }
         return $att;
       } else {
@@ -418,7 +418,7 @@ class LDAP
    *
    * \param integer $srp Value to be reset
    */
-  function resetResult($srp)
+  function resetResult ($srp)
   {
     $this->start[$srp] = 0;
   }
@@ -428,7 +428,7 @@ class LDAP
    *
    * \param integer $srp The result to clear
    */
-  function clearResult($srp)
+  function clearResult ($srp)
   {
     if ($this->hasres[$srp]) {
       $this->hasres[$srp] = FALSE;
@@ -441,7 +441,7 @@ class LDAP
    *
    * \param $srp srp
    */
-  function getDN($srp)
+  function getDN ($srp)
   {
     if ($this->hascon) {
       if ($this->hasres[$srp]) {
@@ -468,7 +468,7 @@ class LDAP
    *
    * \param $srp srp
    */
-  function count($srp)
+  function count ($srp)
   {
     if ($this->hascon) {
       if ($this->hasres[$srp]) {
@@ -493,7 +493,7 @@ class LDAP
    *
    * \param string $dn Empty string
    */
-  function rm($attrs = "", $dn = "")
+  function rm ($attrs = "", $dn = "")
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -512,7 +512,7 @@ class LDAP
     }
   }
 
-  function mod_add($attrs = "", $dn = "")
+  function mod_add ($attrs = "", $dn = "")
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -536,7 +536,7 @@ class LDAP
    *
    * \param string $deletedn The DN to be deleted
   */
-  function rmdir($deletedn)
+  function rmdir ($deletedn)
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -561,7 +561,7 @@ class LDAP
    *
    * \return Boolean TRUE on success else FALSE.
    */
-  function rename_dn($source, $dest)
+  function rename_dn ($source, $dest)
   {
     /* Check if source and destination are the same entry */
     if (strtolower($source) == strtolower($dest)) {
@@ -615,17 +615,17 @@ class LDAP
    *
    * \return TRUE on sucessfull , 0 in error, and "" when we don't get a ldap conection
    */
-  function rmdir_recursive($srp, $deletedn)
+  function rmdir_recursive ($srp, $deletedn)
   {
     if ($this->hascon) {
       if ($this->reconnect) {
         $this->connect();
       }
-      $delarray = array();
+      $delarray = [];
 
       /* Get sorted list of dn's to delete */
       $this->cd($deletedn);
-      $this->search($srp, '(objectClass=*)', array('dn'));
+      $this->search($srp, '(objectClass=*)', ['dn']);
       while ($attrs = $this->fetch($srp)) {
         $delarray[$attrs['dn']] = strlen($attrs['dn']);
       }
@@ -647,7 +647,7 @@ class LDAP
     }
   }
 
-  function makeReadableErrors($error, $attrs)
+  function makeReadableErrors ($error, $attrs)
   {
     if ($this->success()) {
       return "";
@@ -658,7 +658,7 @@ class LDAP
       if (isset($attrs['objectClass'])) {
         $ocs = $attrs['objectClass'];
         if (!is_array($ocs)) {
-          $ocs = array($ocs);
+          $ocs = [$ocs];
         }
         if (isset($ocs[$m[1]])) {
           $str .= " - <b>objectClass: ".$ocs[$m[1]]."</b>";
@@ -679,7 +679,7 @@ class LDAP
    *
    * \param array $attrs The new entry
    */
-  function modify(array $attrs)
+  function modify (array $attrs)
   {
     if (count($attrs) == 0) {
       return 0;
@@ -705,7 +705,7 @@ class LDAP
    *
    * \param string $attrs The entry to add
    */
-  function add($attrs)
+  function add ($attrs)
   {
     if ($this->hascon) {
       if ($this->reconnect) {
@@ -728,12 +728,12 @@ class LDAP
    *
    * Creates missing trees, in our example ou=orga,dc=base will get created if not existing, same thing for ou=example,ou=orga,dc=base
    * */
-  function create_missing_trees($srp, $target, $ignoreReferralBases = TRUE)
+  function create_missing_trees ($srp, $target, $ignoreReferralBases = TRUE)
   {
     $real_path = substr($target, 0, strlen($target) - strlen($this->basedn) - 1);
 
     if ($target == $this->basedn) {
-      $l = array('dummy');
+      $l = ['dummy'];
     } else {
       $l = array_reverse(ldap_explode_dn($real_path, 0));
     }
@@ -757,7 +757,7 @@ class LDAP
         }
       }
 
-      $this->cat ($srp, $cdn);
+      $this->cat($srp, $cdn);
       $attrs = $this->fetch($srp);
 
       /* Create missing entry? */
@@ -767,29 +767,29 @@ class LDAP
 
       $type   = preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
       $param  = preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn);
-      $param  = preg_replace(array('/\\\\,/','/\\\\"/'), array(',','"'), $param);
+      $param  = preg_replace(['/\\\\,/','/\\\\"/'], [',','"'], $param);
 
-      $attrs = array($type => $param);
+      $attrs = [$type => $param];
 
       /* Hardcoded classes */
       switch ($type) {
         case 'ou':
-          $attrs['objectClass']  = array('organizationalUnit');
+          $attrs['objectClass']  = ['organizationalUnit'];
           break;
         case 'd':
-          $attrs['objectClass']  = array('domain');
+          $attrs['objectClass']  = ['domain'];
           break;
         case 'dc':
-          $attrs['objectClass']  = array('dcObject');
+          $attrs['objectClass']  = ['dcObject'];
           break;
         case 'o':
-          $attrs['objectClass']  = array('organization');
+          $attrs['objectClass']  = ['organization'];
           break;
         case 'l':
-          $attrs['objectClass']  = array('locality');
+          $attrs['objectClass']  = ['locality'];
           break;
         case 'c':
-          $attrs['objectClass']  = array('country');
+          $attrs['objectClass']  = ['country'];
           break;
         default:
           /* Fallback to autodetection of objectClass */
@@ -798,22 +798,22 @@ class LDAP
             exit();
           }
           /* Get name of first matching objectClass */
-          $attrs['objectClass']  = array();
+          $attrs['objectClass']  = [];
           foreach ($classes as $class) {
             if (isset($class['MUST']) && in_array($type, $class['MUST'])) {
               /* Look for first class that is structural... */
               if (isset($class['STRUCTURAL'])) {
-                $attrs['objectClass'] = array($class['NAME']);
+                $attrs['objectClass'] = [$class['NAME']];
                 break;
               }
 
               /* Look for class that is auxiliary... */
               if (empty($attrs['objectClass']) && isset($class['AUXILIARY'])) {
-                $attrs['objectClass'] = array($class['NAME']);
+                $attrs['objectClass'] = [$class['NAME']];
               }
             } elseif (empty($attrs['objectClass']) && isset($class['MAY']) && in_array($type, $class['MAY'])) {
               /* Better than nothing */
-              $attrs['objectClass'] = array($class['NAME']);
+              $attrs['objectClass'] = [$class['NAME']];
             }
           }
 
@@ -867,10 +867,10 @@ class LDAP
    *
    * \return string $error containts LDAP_OPT_ERROR_STRING
    */
-  function get_additional_error()
+  function get_additional_error ()
   {
     $error = "";
-    @ldap_get_option ($this->cid, LDAP_OPT_ERROR_STRING, $error);
+    @ldap_get_option($this->cid, LDAP_OPT_ERROR_STRING, $error);
     return $error;
   }
 
@@ -879,15 +879,15 @@ class LDAP
    *
    * \return boolean TRUE if Success is found in $error, else return FALSE
    */
-  function success()
+  function success ()
   {
-    return preg_match('/Success/i', $this->error);
+    return (trim($this->error) === 'Success');
   }
 
   /*!
    * \brief Get the error
    */
-  function get_error()
+  function get_error ()
   {
     if ($this->error == 'Success') {
       return $this->error;
@@ -907,7 +907,7 @@ class LDAP
    *
    * Must be run right after the ldap request
    */
-  function get_errno()
+  function get_errno ()
   {
     if ($this->error == 'Success') {
       return 0;
@@ -921,15 +921,15 @@ class LDAP
    *
    * Must be run right after the search
    */
-  function hitSizeLimit()
+  function hitSizeLimit ()
   {
     /* LDAP_SIZELIMIT_EXCEEDED 0x04 */
     return ($this->get_errno() == 0x04);
   }
 
-  function get_credentials($url, $referrals = NULL)
+  function get_credentials ($url, $referrals = NULL)
   {
-    $ret    = array();
+    $ret    = [];
     $url    = preg_replace('!\?\?.*$!', '', $url);
     $server = preg_replace('!^([^:]+://[^/]+)/.*$!', '\\1', $url);
 
@@ -970,7 +970,7 @@ class LDAP
 
     // Check scope values
     $scope = trim($scope);
-    if (!empty($scope) && !in_array($scope, array('base', 'one', 'sub', 'children'))) {
+    if (!empty($scope) && !in_array($scope, ['base', 'one', 'sub', 'children'])) {
         trigger_error(sprintf("Invalid parameter for scope '%s', please use 'base', 'one', 'sub' or 'children'."), $scope);
         return NULL;
     }
@@ -986,11 +986,11 @@ class LDAP
     $cmd = 'ldapsearch'.($this->tls ? ' -ZZ' : '')." -x -LLLL -D {$admin} {$filter} {$limit} {$scope} -H {$host} -b {$dn} -w {$pwd} ";
 
     // Create list of process pipes
-    $descriptorspec = array(
-      0 => array("pipe", "r"),  // stdin
-      1 => array("pipe", "w"),  // stdout
-      2 => array("pipe", "w")   // stderr
-    );
+    $descriptorspec = [
+      0 => ["pipe", "r"],  // stdin
+      1 => ["pipe", "w"],  // stdout
+      2 => ["pipe", "w"]   // stderr
+    ];
 
     // Try to open the process
     $process = proc_open($cmd, $descriptorspec, $pipes);
@@ -1015,9 +1015,9 @@ class LDAP
     return $res;
   }
 
-  function dn_exists($dn)
+  function dn_exists ($dn)
   {
-    return @ldap_read($this->cid, $dn, "(objectClass=*)", array("objectClass"));
+    return @ldap_read($this->cid, $dn, "(objectClass=*)", ["objectClass"]);
   }
 
   /*!
@@ -1035,7 +1035,7 @@ class LDAP
    *
    * \param boolean $DeleteOldEntries
    */
-  function import_complete_ldif($srp, $str_attr, $JustModify, $DeleteOldEntries)
+  function import_complete_ldif ($srp, $str_attr, $JustModify, $DeleteOldEntries)
   {
     if ($this->reconnect) {
       $this->connect();
@@ -1049,8 +1049,8 @@ class LDAP
 
     /* Joining lines */
     $line       = NULL;
-    $entry      = array();
-    $entries    = array();
+    $entry      = [];
+    $entries    = [];
     $entryStart = -1;
     foreach ($fileLines as $lineNumber => $fileLine) {
       if (preg_match('/^ /', $fileLine)) {
@@ -1067,7 +1067,7 @@ class LDAP
             /* Ignore version number */
           } else {
             /* Line has ended */
-            list ($key, $value) = explode(':', $line, 2);
+            list($key, $value) = explode(':', $line, 2);
             $value = trim($value);
             if (preg_match('/^:/', $value)) {
               $value = base64_decode(trim(substr($value, 1)));
@@ -1088,7 +1088,7 @@ class LDAP
               throw new LDIFImportException(sprintf(_('Error line %s, an entry bloc should start with the dn'), $lineNumber));
             } else {
               if (!isset($entry[$key])) {
-                $entry[$key] = array();
+                $entry[$key] = [];
               }
               $entry[$key][] = $value;
             }
@@ -1102,7 +1102,7 @@ class LDAP
             $entries[$entryStart] = $entry;
           }
           /* Start a new entry */
-          $entry      = array();
+          $entry      = [];
           $entryStart = -1;
           $line       = NULL;
         }
@@ -1138,7 +1138,7 @@ class LDAP
    *
    * \param boolean $delete
    */
-  protected function import_single_entry($srp, $data, $modify, $delete)
+  protected function import_single_entry ($srp, $data, $modify, $delete)
   {
     global $config;
 
@@ -1184,11 +1184,11 @@ class LDAP
           $attrs = $this->fetch($srp);
           foreach (array_keys($attrs) as $name) {
             if (!is_numeric($name)) {
-              if (in_array($name, array('dn','count'))) {
+              if (in_array($name, ['dn','count'])) {
                 continue;
               }
               if (!isset($data[$name])) {
-                $data[$name] = array();
+                $data[$name] = [];
               }
             }
           }
@@ -1215,30 +1215,30 @@ class LDAP
    *
    * \param boolean $force_reload FALSE
    */
-  function get_objectclasses($force_reload = FALSE)
+  function get_objectclasses ($force_reload = FALSE)
   {
-    $objectclasses = array();
+    $objectclasses = [];
 
     /* Return the cached results. */
-    if (class_available('session') && session::global_is_set('LDAP_CACHE::get_objectclasses') && !$force_reload) {
-      $objectclasses = session::global_get('LDAP_CACHE::get_objectclasses');
+    if (class_available('session') && session::is_set('LDAP_CACHE::get_objectclasses') && !$force_reload) {
+      $objectclasses = session::get('LDAP_CACHE::get_objectclasses');
       return $objectclasses;
     }
 
     // Get base to look for schema
-    $sr   = @ldap_read($this->cid, '', 'objectClass=*', array('subschemaSubentry'));
+    $sr   = @ldap_read($this->cid, '', 'objectClass=*', ['subschemaSubentry']);
     $attr = @ldap_get_entries($this->cid, $sr);
     if (!isset($attr[0]['subschemasubentry'][0])) {
-      return array();
+      return [];
     }
 
     /* Get list of objectclasses and fill array */
     $nb = $attr[0]['subschemasubentry'][0];
-    $objectclasses = array();
-    $sr = ldap_read ($this->cid, $nb, 'objectClass=*', array('objectclasses'));
+    $objectclasses = [];
+    $sr = ldap_read($this->cid, $nb, 'objectClass=*', ['objectclasses']);
     $attrs = ldap_get_entries($this->cid, $sr);
     if (!isset($attrs[0])) {
-      return array();
+      return [];
     }
     foreach ($attrs[0]['objectclasses'] as $val) {
       if (preg_match('/^[0-9]+$/', $val)) {
@@ -1247,7 +1247,7 @@ class LDAP
       $name = "OID";
       $pattern = explode(' ', $val);
       $ocname = preg_replace("/^.* NAME\s+\(*\s*'([^']+)'\s*\)*.*$/", '\\1', $val);
-      $objectclasses[$ocname] = array();
+      $objectclasses[$ocname] = [];
 
       foreach ($pattern as $chunk) {
         switch ($chunk) {
@@ -1259,8 +1259,8 @@ class LDAP
           case ')':
             if ($name != '') {
               $v = $this->value2container($value);
-              if (in_array($name, array('MUST', 'MAY')) && !is_array($v)) {
-                $v = array($v);
+              if (in_array($name, ['MUST', 'MAY']) && !is_array($v)) {
+                $v = [$v];
               }
               $objectclasses[$ocname][$name] = $v;
             }
@@ -1278,8 +1278,8 @@ class LDAP
           case 'MAY':
             if ($name != '') {
               $v = $this->value2container($value);
-              if (in_array($name, array('MUST','MAY')) && !is_array($v)) {
-                $v = array($v);
+              if (in_array($name, ['MUST','MAY']) && !is_array($v)) {
+                $v = [$v];
               }
               $objectclasses[$ocname][$name] = $v;
             }
@@ -1293,14 +1293,14 @@ class LDAP
 
     }
     if (class_available('session')) {
-      session::global_set('LDAP_CACHE::get_objectclasses', $objectclasses);
+      session::set('LDAP_CACHE::get_objectclasses', $objectclasses);
     }
 
     return $objectclasses;
   }
 
 
-  function value2container($value)
+  function value2container ($value)
   {
     /* Set emtpy values to "TRUE" only */
     if (preg_match('/^\s*$/', $value)) {
@@ -1326,12 +1326,12 @@ class LDAP
    *
    * \param string $string
    */
-  function log($string)
+  function log ($string)
   {
-    if (session::global_is_set('config')) {
-      $cfg = session::global_get('config');
+    if (session::is_set('config')) {
+      $cfg = session::get('config');
       if (isset($cfg->current['LDAPSTATS']) && preg_match('/true/i', $cfg->current['LDAPSTATS'])) {
-        syslog (LOG_INFO, $string);
+        syslog(LOG_INFO, $string);
       }
     }
   }
@@ -1343,7 +1343,7 @@ class LDAP
    *
    * \param $dn The DN
    */
-  function getCn($dn)
+  function getCn ($dn)
   {
     $simple = explode(",", $dn);
 
@@ -1356,18 +1356,18 @@ class LDAP
     }
   }
 
-  function get_naming_contexts($server, $admin = '', $password = '')
+  function get_naming_contexts ($server, $admin = '', $password = '')
   {
     /* Build LDAP connection */
-    $ds = ldap_connect ($server);
+    $ds = ldap_connect($server);
     if (!$ds) {
-      die ('Can\'t bind to LDAP. No check possible!');
+      die('Can\'t bind to LDAP. No check possible!');
     }
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
-    ldap_bind ($ds, $admin, $password);
+    ldap_bind($ds, $admin, $password);
 
     /* Get base to look for naming contexts */
-    $sr   = @ldap_read ($ds, '', 'objectClass=*', array('namingContexts'));
+    $sr   = @ldap_read($ds, '', 'objectClass=*', ['namingContexts']);
     $attr = @ldap_get_entries($ds, $sr);
 
     return $attr[0]['namingcontexts'];
diff --git a/include/class_ldapFilter.inc b/include/class_ldapFilter.inc
index b9921b8550423fcf709f68dcca2cb246706aa9bd..8078627d06ba0d5687320fbf2b74652bfc846f57 100644
--- a/include/class_ldapFilter.inc
+++ b/include/class_ldapFilter.inc
@@ -29,30 +29,30 @@
   * \brief This class allows to parse and execute on a array an LDAP filter
   * Example:
   * $filter = ldapFilter::parse("(&(objectClass=testClass)(testField=value))");
-  * $array = array('objectClass' => array('testClass'), 'testField' => array ('value1', 'value'));
+  * $array = array('objectClass' => array('testClass'), 'testField' => array('value1', 'value'));
   * if ($filter($array)) {
   *   // do something
   * }
   */
 class ldapFilter
 {
-  static $operators = array('!', '&', '|');
+  static $operators = ['!', '&', '|'];
 
   protected $operator;
   protected $subparts;
 
-  function __construct($operator, $subparts)
+  function __construct ($operator, $subparts)
   {
     $this->operator = $operator;
     $this->subparts = $subparts;
   }
 
-  function __toString()
+  function __toString ()
   {
     return '('.$this->operator.join($this->subparts).')';
   }
 
-  function __invoke($array)
+  function __invoke ($array)
   {
     $stopValue = FALSE;
     switch ($this->operator) {
@@ -72,17 +72,17 @@ class ldapFilter
     }
   }
 
-  function getOperator()
+  function getOperator ()
   {
     return $this->operator;
   }
 
-  function getSubparts()
+  function getSubparts ()
   {
     return $this->subparts;
   }
 
-  function listUsedAttributes(&$result = array())
+  function listUsedAttributes (&$result = [])
   {
     foreach ($this->subparts as $subpart) {
       $subpart->listUsedAttributes($result);
@@ -90,13 +90,13 @@ class ldapFilter
     return $result;
   }
 
-  static function parse($filter)
+  static function parse ($filter)
   {
     // Remove starting and ending parenthesis
-    $filter = preg_replace(array('/^\\s*\\(/', '/\\)\\s*$/'), '', $filter);
+    $filter = preg_replace(['/^\\s*\\(/', '/\\)\\s*$/'], '', $filter);
 
     if (in_array($filter[0], ldapFilter::$operators)) {
-      $subfilters = array();
+      $subfilters = [];
       /* We need an ending parenthesis in order to catch last subpart correctly */
       $filter .= ')';
       $offset = 0;
@@ -116,7 +116,7 @@ class ldapFilter
           }
         }
       }
-      if (in_array($filter[0], array('&', '|')) && (count($subfilters) == 1)) {
+      if (in_array($filter[0], ['&', '|']) && (count($subfilters) == 1)) {
         /* Avoid empty levels */
         return $subfilters[0];
       } else {
@@ -135,18 +135,18 @@ class ldapFilter
  */
 class ldapFilterLeaf extends ldapFilter
 {
-  static $operators = array('=','~=','>=','<=');
+  static $operators = ['=','~=','>=','<='];
 
   protected $pattern;
   protected $dnFilter = FALSE;
 
-  function __construct($left, $operator, $right)
+  function __construct ($left, $operator, $right)
   {
     if (strrpos($left, ':dn:', -4) !== FALSE) {
       $this->dnFilter = TRUE;
       $left = substr($left, 0, -4);
     }
-    parent::__construct($operator, array($left, $right));
+    parent::__construct($operator, [$left, $right]);
     if (($this->operator == '=') || ($this->operator == '~=')) {
       $prefix = '';
       $suffix = '';
@@ -156,7 +156,7 @@ class ldapFilterLeaf extends ldapFilter
       if (preg_match('/\\*$/', $this->subparts[1])) {
         $suffix = '.*';
       }
-      $search = preg_replace(array('/^\\*/','/\\*$/'), '', $this->subparts[1]);
+      $search = preg_replace(['/^\\*/','/\\*$/'], '', $this->subparts[1]);
       if ($this->dnFilter) {
         $this->pattern = '/'.$left.'='.$prefix.preg_quote($search, '/').$suffix.',/';
       } elseif ($this->subparts[1] == '*') {
@@ -167,17 +167,17 @@ class ldapFilterLeaf extends ldapFilter
     }
   }
 
-  function isDnFilter()
+  function isDnFilter ()
   {
     return $this->dnFilter;
   }
 
-  function __toString()
+  function __toString ()
   {
     return '('.$this->subparts[0].($this->dnFilter ? ':dn:' : '').$this->operator.$this->subparts[1].')';
   }
 
-  function __invoke($array)
+  function __invoke ($array)
   {
     if ($this->dnFilter) {
       switch ($this->operator) {
@@ -192,7 +192,7 @@ class ldapFilterLeaf extends ldapFilter
     if (isset($array[$this->subparts[0]])) {
       $values = $array[$this->subparts[0]];
       if (!is_array($values)) {
-        $values = array($values);
+        $values = [$values];
       }
       foreach ($values as $value) {
         switch ($this->operator) {
@@ -221,7 +221,7 @@ class ldapFilterLeaf extends ldapFilter
     return FALSE;
   }
 
-  function listUsedAttributes(&$result = array())
+  function listUsedAttributes (&$result = [])
   {
     if ($this->dnFilter) {
       $result['dn'] = 'dn';
@@ -232,7 +232,7 @@ class ldapFilterLeaf extends ldapFilter
   }
 }
 
-function fdTemplateFilter($filter)
+function fdTemplateFilter ($filter)
 {
   if ($filter instanceof ldapFilterLeaf) {
     if ($filter->isDnFilter()) {
diff --git a/include/class_ldapMultiplexer.inc b/include/class_ldapMultiplexer.inc
index 5563720a8030f9283c5e8c44a49da50ac92dc8c2..1eedd35a2165bcb4faf155914e1c3ccaf86254d7 100644
--- a/include/class_ldapMultiplexer.inc
+++ b/include/class_ldapMultiplexer.inc
@@ -41,7 +41,7 @@ class ldapMultiplexer {
    *
    * \param $object Object LDAP
    */
-  public function __construct(&$object)
+  public function __construct (&$object)
   {
     /* Store object */
     $this->object = $object;
@@ -57,14 +57,14 @@ class ldapMultiplexer {
    *
    * \param $parameters Parameters for the method
    */
-  public function __call($methodName, $parameters)
+  public function __call ($methodName, $parameters)
   {
     /* Add resource pointer if the mentioned methods are used */
-    if (in_array($methodName, array('search','ls','cat','fetch','clearResult','resetResult','count','getDN','rmdir_recursive','create_missing_trees','import_single_entry','import_complete_ldif'))) {
+    if (in_array($methodName, ['search','ls','cat','fetch','clearResult','resetResult','count','getDN','rmdir_recursive','create_missing_trees','import_single_entry','import_complete_ldif'])) {
       array_unshift($parameters, $this->sr);
     }
 
-    return call_user_func_array(array($this->object, $methodName), $parameters);
+    return call_user_func_array([$this->object, $methodName], $parameters);
   }
 
   /*
@@ -72,7 +72,7 @@ class ldapMultiplexer {
    *
    * \param string $memberName
    */
-  public function __get($memberName)
+  public function __get ($memberName)
   {
     return $this->object->$memberName;
   }
diff --git a/include/class_ldapSizeLimit.inc b/include/class_ldapSizeLimit.inc
index 32d3666fb721c0ef9b634097e8f9d454d3a3b9b5..1b89d5efb6d6c80a3a80c998f9a90e00972a6887 100644
--- a/include/class_ldapSizeLimit.inc
+++ b/include/class_ldapSizeLimit.inc
@@ -39,7 +39,7 @@ class ldapSizeLimit
   /*! \brief Limit was exceeded */
   protected $limitExceeded;
 
-  function __construct()
+  function __construct ()
   {
     global $config;
 
@@ -47,17 +47,17 @@ class ldapSizeLimit
     $this->ignore     = preg_match('/true/i', $config->get_cfg_value('LDAPSIZEIGNORE', 'TRUE'));
   }
 
-  function getSizeLimit()
+  function getSizeLimit ()
   {
     return $this->sizeLimit;
   }
 
-  function setSizeLimit($limit)
+  function setSizeLimit ($limit)
   {
     $this->sizeLimit = $limit;
   }
 
-  function setLimitExceeded($exceeded = TRUE)
+  function setLimitExceeded ($exceeded = TRUE)
   {
     $this->limitExceeded = $exceeded;
   }
@@ -65,7 +65,7 @@ class ldapSizeLimit
   /*!
    * \brief Handle sizelimit dialog related posts
    */
-  function update()
+  function update ()
   {
     if (isset($_POST['set_size_action']) && isset($_POST['action'])) {
       switch ($_POST['action']) {
@@ -99,7 +99,7 @@ class ldapSizeLimit
    * Show sizelimit configuration dialog when number
    * of entries exceeded the sizelimit
    */
-  function check()
+  function check ()
   {
     global $config;
 
@@ -125,7 +125,7 @@ class ldapSizeLimit
    * Print a sizelimit warning when number
    * of entries exceeded the sizelimit
    */
-  function renderWarning()
+  function renderWarning ()
   {
     if (($this->sizeLimit >= 10000000) || $this->limitExceeded) {
       $config = '<input type="submit" name="edit_sizelimit" value="'._('Configure').'"/>';
diff --git a/include/class_listing.inc b/include/class_listing.inc
index b948254cf4d54174efe63ed72eb8b7edc977c887..2d856971ee8256f0d68693584b594559ccdc0ccb 100644
--- a/include/class_listing.inc
+++ b/include/class_listing.inc
@@ -32,7 +32,7 @@ class listing
 {
   var $xmlData;
   var $entries;
-  var $departments            = array();
+  var $departments            = [];
   var $departmentBrowser      = FALSE;
   var $departmentRootVisible  = FALSE;
   var $multiSelect            = FALSE;
@@ -45,31 +45,31 @@ class listing
   var $sortType;
   var $numColumns;
   var $baseMode = FALSE;
-  var $bases    = array();
-  var $header   = array();
-  var $colprops = array();
-  var $filters  = array();
+  var $bases    = [];
+  var $header   = [];
+  var $colprops = [];
+  var $filters  = [];
   var $filter   = NULL;
   var $pid;
-  protected $departmentTypes  = array();
-  var $objectTypes      = array();
-  var $objectTypeCount  = array();
-  protected $objectDnMapping  = array();
+  protected $departmentTypes  = [];
+  var $objectTypes      = [];
+  var $objectTypeCount  = [];
+  protected $objectDnMapping  = [];
   protected $copyPasteHandler = NULL;
   protected $snapshotHandler  = NULL;
-  var $exporter       = array();
-  var $exportColumns  = array();
+  var $exporter       = [];
+  var $exportColumns  = [];
   var $height         = 0;
   var $scrollPosition = 0;
   var $baseSelector;
-  protected $filterCache = array();
+  protected $filterCache = [];
 
   /*!
    * \brief Create a listing
    *
    * \param string $data either a filename or an array representation of the XML
    */
-  function __construct($data)
+  function __construct ($data)
   {
     global $config;
     global $class_mapping;
@@ -87,7 +87,7 @@ class listing
 
     // Set base for filter
     if ($this->baseMode) {
-      $this->base = session::global_get("CurrentMainBase");
+      $this->base = session::get("CurrentMainBase");
       if ($this->base == NULL) {
         $this->base = $config->current['BASE'];
       }
@@ -110,7 +110,7 @@ class listing
     // Load exporters
     foreach (array_keys($class_mapping) as $class) {
       if (preg_match('/Exporter$/', $class)) {
-        $info = call_user_func(array($class, "getInfo"));
+        $info = call_user_func([$class, "getInfo"]);
         if ($info != NULL) {
           $this->exporter = array_merge($this->exporter, $info);
         }
@@ -128,7 +128,7 @@ class listing
    *
    * \see CopyPasteHandler
    */
-  function setCopyPasteHandler($handler)
+  function setCopyPasteHandler ($handler)
   {
     $this->copyPasteHandler = $handler;
   }
@@ -138,7 +138,7 @@ class listing
    *
    * \param integer $height
    */
-  function setHeight($height)
+  function setHeight ($height)
   {
     $this->height = $height;
   }
@@ -150,7 +150,7 @@ class listing
    *
    * \see  SnapshotHandler
    */
-  function setSnapshotHandler($handler)
+  function setSnapshotHandler ($handler)
   {
     if ($handler->enabled()) {
       $this->snapshotHandler = $handler;
@@ -166,7 +166,7 @@ class listing
    *
    * \see filter
    */
-  function setFilter($filter)
+  function setFilter ($filter)
   {
     $this->filter     = $filter;
     $filter->headpage = $this;
@@ -183,7 +183,7 @@ class listing
    *
    * \param string $call
    */
-  function registerElementFilter($name, $call)
+  function registerElementFilter ($name, $call)
   {
     if (!isset($this->filters[$name])) {
       $this->filters[$name] = $call;
@@ -198,7 +198,7 @@ class listing
    *
    * \param string $data either a filename or an array representation of the XML
    */
-  function load($data)
+  function load ($data)
   {
     if (is_array($data)) {
       $this->xmlData = $data;
@@ -207,7 +207,7 @@ class listing
       $this->xmlData = xml::xml2array($contents, 1);
     }
 
-    $this->filterCache = array();
+    $this->filterCache = [];
 
     if (!isset($this->xmlData['list'])) {
       return FALSE;
@@ -216,7 +216,7 @@ class listing
     $this->xmlData = $this->xmlData["list"];
 
     // Load some definition values
-    foreach (array("departmentBrowser", "departmentRootVisible", "multiSelect", "baseMode") as $token) {
+    foreach (["departmentBrowser", "departmentRootVisible", "multiSelect", "baseMode"] as $token) {
       if (isset($this->xmlData['definition'][$token]) &&
           $this->xmlData['definition'][$token] == "true") {
         $this->$token = TRUE;
@@ -227,19 +227,19 @@ class listing
     $types = departmentManagement::getDepartmentTypes();
     foreach ($types as $type) {
       $i = objects::infos($type);
-      $this->departmentTypes[strtoupper($type)] = array(
+      $this->departmentTypes[strtoupper($type)] = [
         'label'       => $i['name'],
         'image'       => $i['icon'],
         'category'    => $i['aclCategory'],
         'class'       => $i['mainTab'],
         'filter'      => objects::getFilterObject($type),
         'nameAttr'    => $i['nameAttr'],
-      );
+      ];
     }
-    $this->categories = array();
+    $this->categories = [];
     if (isset($this->xmlData['definition']['objectType'])) {
       if (isset($this->xmlData['definition']['objectType']['label'])) {
-        $this->xmlData['definition']['objectType'] = array($this->xmlData['definition']['objectType']);
+        $this->xmlData['definition']['objectType'] = [$this->xmlData['definition']['objectType']];
       }
       foreach ($this->xmlData['definition']['objectType'] as $index => $otype) {
         $this->objectTypes[$otype['objectClass']] = $otype;
@@ -259,7 +259,7 @@ class listing
     // Assign headline/Categories
     $this->headline = _($this->xmlData['definition']['label']);
     if (!is_array($this->categories)) {
-      $this->categories = array($this->categories);
+      $this->categories = [$this->categories];
     }
 
     // Evaluate columns to be exported
@@ -272,17 +272,17 @@ class listing
     }
 
     if (isset($this->xmlData['actiontriggers']['action']['type'])) {
-      $this->xmlData['actiontriggers']['action'] = array($this->xmlData['actiontriggers']['action']);
+      $this->xmlData['actiontriggers']['action'] = [$this->xmlData['actiontriggers']['action']];
     }
 
     return TRUE;
   }
 
 
-  function renderHeader()
+  function renderHeader ()
   {
-    $this->header = array();
-    $this->plainHeader = array();
+    $this->header = [];
+    $this->plainHeader = [];
 
     // Initialize sort?
     $sortInit = FALSE;
@@ -293,7 +293,7 @@ class listing
       } else {
         $this->sortAttribute = "";
       }
-      $this->sortDirection = array();
+      $this->sortDirection = [];
       $sortInit = TRUE;
     }
 
@@ -336,7 +336,7 @@ class listing
   /*!
    * \brief Render
    */
-  function render()
+  function render ()
   {
     global $ui;
 
@@ -478,7 +478,7 @@ class listing
     // Add scroll positioner
     $result .= '<script type="text/javascript">';
     $result .= '$("t_nscrollbody").scrollTop= '.$this->scrollPosition.';';
-    $result .= 'var box = $("t_nscrollbody").onscroll= function() {$("position_'.$this->pid.'").value= this.scrollTop;}';
+    $result .= 'var box = $("t_nscrollbody").onscroll= function() {$ ("position_'.$this->pid.'").value= this.scrollTop;}';
     $result .= '</script>';
 
     $smarty = get_smarty();
@@ -518,7 +518,7 @@ class listing
   /*!
    * \brief Update a listing
    */
-  function update()
+  function update ()
   {
     $ui = get_userinfo();
 
@@ -535,13 +535,13 @@ class listing
     $refresh = FALSE;
     if ($this->baseMode) {
       $this->base = $this->baseSelector->getBase();
-      session::global_set("CurrentMainBase", $this->base);
+      session::set("CurrentMainBase", $this->base);
       $refresh = TRUE;
     }
 
     // Reset object counter / DN mapping
-    $this->objectTypeCount = array();
-    $this->objectDnMapping = array();
+    $this->objectTypeCount = [];
+    $this->objectDnMapping = [];
 
     // Do not do anything if this is not our PID
     if ($refresh || !(isset($_REQUEST['PID']) && $_REQUEST['PID'] != $this->pid)) {
@@ -566,12 +566,12 @@ class listing
           $exporter = $this->exporter[$_POST['act']];
           $userinfo = ", "._("created by")." ".$ui->cn." - ".strftime('%A, %d. %B %Y, %H:%M:%S');
           $entryIterator = new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
-          $sortedEntries = array();
+          $sortedEntries = [];
           foreach ($entryIterator as $entry) {
             $sortedEntries[] = $entry;
           }
           $instance = new $exporter['class']($this->headline.$userinfo, $this->plainHeader, $sortedEntries, $this->exportColumns);
-          $type = call_user_func(array($exporter['class'], "getInfo"));
+          $type = call_user_func([$exporter['class'], "getInfo"]);
           $type = $type[$_POST['act']];
           send_binary_content($instance->query(), $type['filename'], $type = $type['mime']);
         }
@@ -628,10 +628,10 @@ class listing
 
     // Fix filter if querie returns NULL
     if ($this->entries == NULL) {
-      $this->entries = array();
+      $this->entries = [];
     }
 
-    $this->dnToRow = array();
+    $this->dnToRow = [];
     foreach ($this->entries as $row => $entry) {
       $this->dnToRow[$entry['dn']] = $row;
     }
@@ -647,16 +647,16 @@ class listing
    *
    * \param string $base
    */
-  function setBase($base)
+  function setBase ($base)
   {
     $this->base = $base;
     if ($this->baseMode) {
       $this->baseSelector->setBase($this->base);
-      session::global_set('CurrentMainBase', $this->base);
+      session::set('CurrentMainBase', $this->base);
     }
   }
 
-  function tryAndSetBase($base)
+  function tryAndSetBase ($base)
   {
     $ui   = get_userinfo();
     $deps = $ui->get_module_departments($this->categories);
@@ -670,7 +670,7 @@ class listing
    *
    * \return the base
    */
-  function getBase()
+  function getBase ()
   {
     return $this->base;
   }
@@ -680,9 +680,9 @@ class listing
    *
    * \param string $layout
    */
-  function parseLayout($layout)
+  function parseLayout ($layout)
   {
-    $result = array();
+    $result = [];
     $layout = preg_replace("/^\|/", "", $layout);
     $layout = preg_replace("/\|$/", "", $layout);
     $cols   = explode("|", $layout);
@@ -736,7 +736,7 @@ class listing
   }
 
 
-  function renderCell($table, $index, $data, $cfg, $row)
+  function renderCell ($table, $index, $data, $cfg, $row)
   {
     // Replace flat attributes in data string
     $offset = 0;
@@ -761,7 +761,7 @@ class listing
   }
 
 
-  function renderBase()
+  function renderBase ()
   {
     if (!$this->baseMode) {
       return;
@@ -771,14 +771,14 @@ class listing
   }
 
 
-  function processElementFilter($type, $index, $data, $cfg, $row)
+  function processElementFilter ($type, $index, $data, $cfg, $row)
   {
     if (isset($this->filterCache[$type.$index])) {
       $filters = $this->filterCache[$type.$index];
     } else {
       preg_match_all('/%{filter:([^(]+)\((.*)\)}/', $data, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
 
-      $filters = array();
+      $filters = [];
       foreach ($matches as $match) {
         $cl     = '';
         $method = '';
@@ -794,15 +794,15 @@ class listing
         // Prepare params for function call
         preg_match_all('/"[^"]+"|[^,]+/', $match[2][0], $parts);
 
-        $filters[$match[0][0]] = array($cl, $method, $parts[0], $match[0][1]);
+        $filters[$match[0][0]] = [$cl, $method, $parts[0], $match[0][1]];
       }
 
       $this->filterCache[$type.$index] = $filters;
     }
 
     foreach ($filters as $filterstring => $filter) {
-      list ($cl, $method, $parts, $offset) = $filter;
-      $params = array();
+      list($cl, $method, $parts, $offset) = $filter;
+      $params = [];
       foreach ($parts as $param) {
         switch ($param) {
           case 'row':
@@ -844,10 +844,10 @@ class listing
       // Replace information
       if ($cl == 'listing') {
         // Non static call
-        $data = substr_replace($data, call_user_func_array(array($this, $method), $params), $offset, strlen($filterstring));
+        $data = substr_replace($data, call_user_func_array([$this, $method], $params), $offset, strlen($filterstring));
       } else {
         // Static call
-        $data = substr_replace($data, call_user_func_array(array($cl, $method), $params), $offset, strlen($filterstring));
+        $data = substr_replace($data, call_user_func_array([$cl, $method], $params), $offset, strlen($filterstring));
       }
     }
 
@@ -860,7 +860,7 @@ class listing
    * \param string $dn dn of the object
    * \param string $attrs LDAP attributes of the object
    */
-  function getObjectType($dn, $attrs)
+  function getObjectType ($dn, $attrs)
   {
     return $this->genericGetType($dn, $attrs, $this->objectTypes);
   }
@@ -871,7 +871,7 @@ class listing
    * \param string $dn dn of the object
    * \param string $attrs LDAP attributes of the object
    */
-  function getDepartmentType($dn, $attrs)
+  function getDepartmentType ($dn, $attrs)
   {
     return $this->genericGetType($dn, $attrs, $this->departmentTypes);
   }
@@ -879,7 +879,7 @@ class listing
   /*!
    * \brief Get the object or department type
    */
-  protected function genericGetType($dn, $attrs, $types)
+  protected function genericGetType ($dn, $attrs, $types)
   {
     if (isset($this->objectDnMapping[$dn])) {
       return $this->objectDnMapping[$dn];
@@ -897,7 +897,7 @@ class listing
       }
       $ocs = $objectType['objectClass'];
       if (!is_array($ocs)) {
-        $ocs = array($ocs);
+        $ocs = [$ocs];
       }
 
       $found = TRUE;
@@ -923,7 +923,7 @@ class listing
     return NULL;
   }
 
-  function getObjectTypeInfos($dn, $attrs)
+  function getObjectTypeInfos ($dn, $attrs)
   {
     $type = $this->getObjectType($dn, $attrs);
     if ($type === NULL) {
@@ -939,7 +939,7 @@ class listing
    *
    * \param string $dn The DN
    */
-  function filterObjectType($row, $dn)
+  function filterObjectType ($row, $dn)
   {
     return $this->filterGenericType($dn, $this->objectTypes, $this->getObjectType($dn, $this->entries[$row]));
   }
@@ -947,7 +947,7 @@ class listing
   /*!
    * \brief Generic method for department and objects once type is known
    */
-  protected function filterGenericType($dn, $types, $type)
+  protected function filterGenericType ($dn, $types, $type)
   {
     $result = "&nbsp;";
 
@@ -969,7 +969,7 @@ class listing
    *
    * \param string $dn The DN
    */
-  function filterDepartmentType($row, $dn)
+  function filterDepartmentType ($row, $dn)
   {
     return $this->filterGenericType($dn, $this->departmentTypes, $this->getDepartmentType($dn, $this->departments[$row]));
   }
@@ -983,7 +983,7 @@ class listing
    *
    * \param string $classes
    */
-  function filterActions($dn, $row, $classes)
+  function filterActions ($dn, $row, $classes)
   {
     // Do nothing if there's no menu defined
     if (!isset($this->xmlData['actiontriggers']['action'])) {
@@ -1082,7 +1082,7 @@ class listing
    *
    * \param array $description
    */
-  function filterDepartmentLink($row, $dn, $description)
+  function filterDepartmentLink ($row, $dn, $description)
   {
     $attr = $this->departments[$row]['sort-attribute'];
     $name = $this->departments[$row][$attr];
@@ -1096,7 +1096,7 @@ class listing
   /*!
    * \brief Filter link with object name
    */
-  function filterNameLink($row, $dn)
+  function filterNameLink ($row, $dn)
   {
     $infos  = $this->getObjectTypeInfos($dn, $this->entries[$row]);
     $value  = $this->entries[$row][$infos['nameAttr']];
@@ -1109,12 +1109,12 @@ class listing
   /*!
    * \brief Filter link
    */
-  function filterLink()
+  function filterLink ()
   {
     $row    = func_get_arg(0);
     $pid    = $this->pid;
     $dn     = func_get_arg(1);
-    $params = array(func_get_arg(2));
+    $params = [func_get_arg(2)];
 
     // Collect sprintf params
     for ($i = 3;$i < func_num_args();$i++) {
@@ -1123,7 +1123,7 @@ class listing
         continue;
       }
       if (!is_array($val)) {
-        $val = array($val);
+        $val = [$val];
       }
       $val = array_map(
         function ($v)
@@ -1147,9 +1147,9 @@ class listing
   }
 
 
-  function renderNavigation()
+  function renderNavigation ()
   {
-    $result = array();
+    $result = [];
     $enableBack = TRUE;
     $enableRoot = TRUE;
     $enableHome = TRUE;
@@ -1203,7 +1203,7 @@ class listing
   /*!
    * \brief Get action
    */
-  function getAction()
+  function getAction ()
   {
     global $config, $ui;
 
@@ -1217,7 +1217,7 @@ class listing
       $this->scrollPosition = $_POST['position_'.$this->pid];
     }
 
-    $result = array("targets" => array(), "action" => "");
+    $result = ["targets" => [], "action" => ""];
 
     // Filter GET with "act" attributes
     if (isset($_GET['act'])) {
@@ -1293,7 +1293,7 @@ class listing
         $target = preg_replace('/^listing_[a-zA-Z_]+_([0-9]+)(|_x)$/', '$1', $key);
         if (isset($this->entries[$target]['dn'])) {
           $result['action']   = preg_replace('/^listing_([a-zA-Z_]+)_[0-9]+(|_x)$/', '$1', $key);
-          $result['targets']  = array($this->entries[$target]['dn']);
+          $result['targets']  = [$this->entries[$target]['dn']];
         }
         break;
       }
@@ -1324,7 +1324,7 @@ class listing
   }
 
 
-  function renderActionMenu()
+  function renderActionMenu ()
   {
     // Don't send anything if the menu is not defined
     if (!isset($this->xmlData['actionmenu']['action'])) {
@@ -1333,7 +1333,7 @@ class listing
 
     // Make sure we got an array of actions
     if (isset($this->xmlData['actionmenu']['action']['type'])) {
-      $this->xmlData['actionmenu']['action'] = array($this->xmlData['actionmenu']['action']);
+      $this->xmlData['actionmenu']['action'] = [$this->xmlData['actionmenu']['action']];
     }
 
     // Load shortcut
@@ -1348,7 +1348,7 @@ class listing
     return '<div id="pulldown">'.$result.'</li></ul></div>';
   }
 
-  function renderActionMenuActionLink($separator, $action, $name, $icon)
+  function renderActionMenuActionLink ($separator, $action, $name, $icon)
   {
     return '<li'.$separator.' id="actionmenu_'.$action.'">'
                   .'<a href="#" onClick="'
@@ -1358,7 +1358,7 @@ class listing
                   .'</li>';
   }
 
-  function recurseActions(&$actions)
+  function recurseActions (&$actions)
   {
     global $class_mapping;
     static $level = 2;
@@ -1374,7 +1374,7 @@ class listing
 
       // Skip entry if there're missing dependencies
       if (isset($action['depends'])) {
-        $deps = is_array($action['depends']) ? $action['depends'] : array($action['depends']);
+        $deps = is_array($action['depends']) ? $action['depends'] : [$action['depends']];
         foreach ($deps as $clazz) {
           if (!isset($class_mapping[$clazz])) {
             continue 2;
@@ -1400,7 +1400,7 @@ class listing
 
         // Ensure we've an array of actions, this enables sub menus with only one action.
         if (isset($action['action']['type'])) {
-          $action['action'] = array($action['action']);
+          $action['action'] = [$action['action']];
         }
 
         $result .= $this->recurseActions($action['action'])."</li>";
@@ -1453,7 +1453,7 @@ class listing
    * \param string $row
    *
    */
-  function hasActionPermission(&$action, $dn, $row = NULL)
+  function hasActionPermission (&$action, $dn, $row = NULL)
   {
     global $ui;
 
@@ -1469,14 +1469,14 @@ class listing
         }
         $acls = $action['acl'];
         if (!is_array($acls)) {
-          $acls = array($acls);
+          $acls = [$acls];
         }
-        $aclInfos = array();
+        $aclInfos = [];
 
         // Every ACL has to pass
         foreach ($acls as $acl) {
           $module   = $this->categories;
-          $aclList  = array();
+          $aclList  = [];
 
           // Replace %acl if available
           if ($otype) {
@@ -1486,12 +1486,12 @@ class listing
           // Split for category and plugins if needed
           if (preg_match('/^\[([rwcdm]+)\]$/', $acl, $match)) {
             // match for "[rw]" style entries
-            $aclList = array($match[1]);
+            $aclList = [$match[1]];
           } elseif (preg_match('/^([a-zA-Z0-9]+\/?[a-zA-Z0-9]+)\[([rwcdm]+)\]$/', $acl, $match)) {
             // match for "user[rw]" style entries
             // match for "user/user[rw]" style entries
             $module   = $match[1];
-            $aclList  = array($match[2]);
+            $aclList  = [$match[2]];
           } elseif (preg_match('/^([a-zA-Z0-9]+\/[a-zA-Z0-9]+)\[([a-zA-Z0-9]+:[rwcdm]+(,[a-zA-Z0-9]+:[rwcdm]+)*)\]$/', $acl, $match)) {
             // match "user/user[userPassword:rw(,...)*]" style entries
             $module   = $match[1];
@@ -1500,16 +1500,16 @@ class listing
 
           $modules = $module;
           if (!is_array($modules)) {
-            $modules = array($modules);
+            $modules = [$modules];
           }
 
-          $aclInfos[] = array($aclList, $modules);
+          $aclInfos[] = [$aclList, $modules];
         }
         $action['aclInfos'] = $aclInfos;
       }
 
       foreach ($aclInfos as $aclInfo) {
-        list ($aclList, $modules) = $aclInfo;
+        list($aclList, $modules) = $aclInfo;
         // Walk thru prepared ACL by using $module
         foreach ($aclList as $sAcl) {
           $checkAcl = '';
@@ -1546,13 +1546,13 @@ class listing
   /*!
    * \brief Refresh the bases list
    */
-  function refreshBasesList()
+  function refreshBasesList ()
   {
     global $config;
     $ui = get_userinfo();
 
     // Fill internal bases list
-    $this->bases = array();
+    $this->bases = [];
     $deps = $ui->get_module_departments($this->categories);
     foreach ($config->idepartments as $key => $dep) {
       if (in_array_ics($key, $deps)) {
@@ -1573,9 +1573,9 @@ class listing
   }
 
   /*! \brief Get the departments */
-  function getDepartments()
+  function getDepartments ()
   {
-    $departments = array();
+    $departments = [];
     $ui = get_userinfo();
 
     // Get list of supported department types
@@ -1589,12 +1589,12 @@ class listing
       $i    = objects::infos($type);
       $deps = objects::ls(
         $type,
-        array(
+        [
           'dn'            => 'raw',
           'objectClass'   => 'raw',
           'description'   => 'raw',
           $i['mainAttr']  => 'raw'
-        ),
+        ],
         $this->base,
         '',
         FALSE,
@@ -1628,7 +1628,7 @@ class listing
   }
 
 
-  function renderCopyPasteMenu($separator, $copy = TRUE, $cut = TRUE)
+  function renderCopyPasteMenu ($separator, $copy = TRUE, $cut = TRUE)
   {
     // We can only provide information if we've got a copypaste handler
     // instance
@@ -1676,7 +1676,7 @@ class listing
   }
 
 
-  function renderCopyPasteActions($row, $dn, $category, $class, $copy = TRUE, $cut = TRUE)
+  function renderCopyPasteActions ($row, $dn, $category, $class, $copy = TRUE, $cut = TRUE)
   {
     // We can only provide information if we've got a copypaste handler
     // instance
@@ -1716,7 +1716,7 @@ class listing
   }
 
 
-  function renderSnapshotMenu($separator)
+  function renderSnapshotMenu ($separator)
   {
     // We can only provide information if we've got a snapshot handler instance
     if (!is_object($this->snapshotHandler)) {
@@ -1740,7 +1740,7 @@ class listing
   }
 
 
-  function renderExporterMenu($separator)
+  function renderExporterMenu ($separator)
   {
     // Presets
     $result = "";
@@ -1760,7 +1760,7 @@ class listing
   }
 
 
-  function renderSnapshotActions($row, $dn, $category)
+  function renderSnapshotActions ($row, $dn, $category)
   {
     /* We can only provide information if we've got a snapshot handler instance */
     if (!is_object($this->snapshotHandler)) {
@@ -1801,7 +1801,7 @@ class listing
   }
 
 
-  function renderDaemonMenu($separator)
+  function renderDaemonMenu ($separator)
   {
     $result = "";
 
@@ -1820,7 +1820,7 @@ class listing
   }
 
 
-  function getEntry($dn)
+  function getEntry ($dn)
   {
     if (isset($this->dnToRow[$dn])) {
       return $this->entries[$this->dnToRow[$dn]];
@@ -1831,7 +1831,7 @@ class listing
   /*!
    * \brief Get listing entries
    */
-  function getEntries()
+  function getEntries ()
   {
     return $this->entries;
   }
@@ -1841,7 +1841,7 @@ class listing
    *
    * \param string $dn The DN
    */
-  function getType($dn)
+  function getType ($dn)
   {
     if (isset($this->objectDnMapping[$dn])) {
       return $this->objectDnMapping[$dn];
diff --git a/include/class_listingSortIterator.inc b/include/class_listingSortIterator.inc
index 610378580cea37db5199119a0a1ee9c5bf88945e..f011ebaf04f907fb08d828dfd06d1d36bb780ccd 100644
--- a/include/class_listingSortIterator.inc
+++ b/include/class_listingSortIterator.inc
@@ -42,7 +42,7 @@ class listingSortIterator implements Iterator {
    *
    * \param string $type
    */
-  public function __construct($data, $direction, $attribute, $type = 'string')
+  public function __construct ($data, $direction, $attribute, $type = 'string')
   {
     // Sort for attribute
     if ($attribute != '') {
@@ -127,7 +127,7 @@ class listingSortIterator implements Iterator {
    *
    * \return the first element of the array
    */
-  function rewind()
+  function rewind ()
   {
     return reset($this->data);
   }
@@ -137,7 +137,7 @@ class listingSortIterator implements Iterator {
    *
    * \return The current element pointed by array pointer
    */
-  function current()
+  function current ()
   {
     return current($this->data);
   }
@@ -147,7 +147,7 @@ class listingSortIterator implements Iterator {
    *
    * \return the key element of the array
    */
-  function key()
+  function key ()
   {
     return key($this->data);
   }
@@ -157,7 +157,7 @@ class listingSortIterator implements Iterator {
    *
    * \return The next element pointed by array pointer
    */
-  function next()
+  function next ()
   {
     return next($this->data);
   }
@@ -167,7 +167,7 @@ class listingSortIterator implements Iterator {
    *
    * \return TRUE if the array is valid, return FALSE otherwise
    */
-  function valid()
+  function valid ()
   {
     return (key($this->data) !== NULL);
   }
diff --git a/include/class_logging.inc b/include/class_logging.inc
index b64c18d30a50aa2511973ca46b980aa7b35543a2..ec244038e1de7d76f4c558c2ca05a61bc5a3497a 100644
--- a/include/class_logging.inc
+++ b/include/class_logging.inc
@@ -34,7 +34,7 @@
  * \date    11.04.2007
  */
 class logging {
-  static $validActions = array('modify','create','remove','copy','snapshot','view','security','debug');
+  static $validActions = ['modify','create','remove','copy','snapshot','view','security','debug'];
 
   /*!
    * \brief logging method
@@ -49,7 +49,7 @@ class logging {
    *
    * \param $result         A status message, containing errors or success messages
    */
-  static function log ($action, $objecttype, $object, array $changes_array = array(), $result = '')
+  static function log ($action, $objecttype, $object, array $changes_array = [], $result = '')
   {
     global $config, $ui;
 
@@ -59,14 +59,14 @@ class logging {
     }
 
     /* Create data object */
-    $entry = array(
-      'timestamp'   => time(),
+    $entry = [
+      'timestamp'   => microtime(TRUE),
       'action'      => $action,
       'objecttype'  => $objecttype,
       'object'      => $object,
       'changes'     => $changes_array,
       'result'      => $result
-    );
+    ];
     if (isset($ui->dn) && !empty($ui->dn)) {
       $entry['user']  = $ui->dn;
     } else {
@@ -83,7 +83,7 @@ class logging {
     } else {
       if (is_object($config) && preg_match('/true/i', $config->get_cfg_value('logging', ''))) {
         static::log_into_syslog($entry);
-        if (in_array($action, $config->get_cfg_value('auditActions', array()))) {
+        if (in_array($action, $config->get_cfg_value('auditActions', []))) {
           static::log_into_ldap($entry);
         }
       }
@@ -95,9 +95,9 @@ class logging {
    *
    * \param Array $entry to be checked
    */
-  static protected function check($entry = array())
+  static protected function check ($entry = [])
   {
-    $msgs = array();
+    $msgs = [];
 
     if (!isset($entry['action']) || !in_array($entry['action'], static::$validActions)) {
       $msgs[] = sprintf(_('Invalid option "%s" specified!'), $entry['action']);
@@ -115,7 +115,7 @@ class logging {
    *
    * \param Array $entry Entry to be loged
    */
-  static protected function log_into_syslog($entry)
+  static protected function log_into_syslog ($entry)
   {
     $str = '';
     if (empty($entry['object']) && empty($entry['changes'])) {
@@ -131,7 +131,7 @@ class logging {
    *
    * \param Array $entry Entry to be loged
    */
-  static protected function log_into_ldap($entry)
+  static protected function log_into_ldap ($entry)
   {
     global $config;
     if ($entry['objecttype'] == 'plugin/auditEvent') {
@@ -143,7 +143,7 @@ class logging {
     }
     $tabObject = objects::create('auditEvent');
     $baseObject = $tabObject->getBaseObject();
-    $baseObject->fdAuditDateTime    = new DateTime('@'.$entry['timestamp']);
+    $baseObject->fdAuditDateTime    = DateTime::createFromFormat('U.u', number_format($entry['timestamp'], 6, '.', ''));
     $baseObject->fdAuditAction      = $entry['action'];
     $baseObject->fdAuditAuthorDN    = $entry['user'];
     $baseObject->fdAuditObjectType  = $entry['objecttype'];
diff --git a/include/class_msgPool.inc b/include/class_msgPool.inc
index dfbc1f44f3d350abdcf75ea9f575df3a43eac950..a4ca1009649e76705b68e6b16dd57fbfb16a57ba 100644
--- a/include/class_msgPool.inc
+++ b/include/class_msgPool.inc
@@ -25,19 +25,19 @@
  * Source code for class msgPool
  */
 
-define ("LDAP_READ",   1);
-define ("LDAP_ADD",    2);
-define ("LDAP_MOD",    3);
-define ("LDAP_DEL",    4);
-define ("LDAP_SEARCH", 5);
-define ("LDAP_AUTH",   6);
+define("LDAP_READ",   1);
+define("LDAP_ADD",    2);
+define("LDAP_MOD",    3);
+define("LDAP_DEL",    4);
+define("LDAP_SEARCH", 5);
+define("LDAP_AUTH",   6);
 
 /*!
  * \brief This class contains all the messages for the various actions
  */
 class msgPool {
 
-  public static function selectToView($type, $o_type = "")
+  public static function selectToView ($type, $o_type = "")
   {
     if ($o_type == "") {
       return sprintf(_("Select to list objects of type '%s'."), $type);
@@ -60,7 +60,7 @@ class msgPool {
    *
    * \param string $type Type of the object which will be deleted
    */
-  public static function deleteInfo($name = "", $type = "")
+  public static function deleteInfo ($name = "", $type = "")
   {
     if ($name == "") {
       if ($type == "") {
@@ -95,7 +95,7 @@ class msgPool {
    *
    * \param string $name Name of the object which will be deleted
    */
-  public static function permDelete($name = "")
+  public static function permDelete ($name = "")
   {
     if ($name == "") {
       return _("You have no permission to delete this object!");
@@ -117,7 +117,7 @@ class msgPool {
    *
    * \param string $name Name of the object which will be created
    */
-  public static function permCreate($name = "")
+  public static function permCreate ($name = "")
   {
     if ($name == "") {
       return _("You have no permission to create this object!");
@@ -140,7 +140,7 @@ class msgPool {
    * \param string $name Name of the object which cannot be modified (or array of objects names)
    * \param string $field Name of the field of the object which cannot be modified
    */
-  public static function permModify($name = '', $field = '')
+  public static function permModify ($name = '', $field = '')
   {
     if ($name == '') {
       return _('You have no permission to modify this object!');
@@ -166,7 +166,7 @@ class msgPool {
    *
    * \param string $name Name of the object which will be viewed
    */
-  public static function permView($name = "")
+  public static function permView ($name = "")
   {
     if ($name == "") {
       return _("You have no permission to view this object!");
@@ -188,7 +188,7 @@ class msgPool {
    *
    * \param string $name Name of the object which will be moved
    */
-  public static function permMove($name = "")
+  public static function permMove ($name = "")
   {
     if ($name == "") {
       return _("You have no permission to move this object!");
@@ -214,7 +214,7 @@ class msgPool {
    *
    * \param string $dbinfo Database information
    */
-  public static function dbconnect($name, $error = "", $dbinfo = "")
+  public static function dbconnect ($name, $error = "", $dbinfo = "")
   {
     if ($error != "") {
       $error = "<br><br><i>"._("Error").":</i> ".$error;
@@ -234,7 +234,7 @@ class msgPool {
    *
    * \param string $dbinfo Database information
    */
-  public static function dbselect($name, $error = "", $dbinfo = "")
+  public static function dbselect ($name, $error = "", $dbinfo = "")
   {
     if ($error != "") {
       $error = "<br><br><i>"._("Error").":</i> ".$error;
@@ -250,7 +250,7 @@ class msgPool {
    *
    * \param string $name Name of the server
    */
-  public static function noserver($name)
+  public static function noserver ($name)
   {
     return sprintf(_("No %s server defined!"), $name);
   }
@@ -264,7 +264,7 @@ class msgPool {
    *
    * \param string $dbinfo Database information
    */
-  public static function dbquery($name, $error = "", $dbinfo = "")
+  public static function dbquery ($name, $error = "", $dbinfo = "")
   {
     if ($error != "") {
       $error = "<br><br><i>"._("Error").":</i> ".$error;
@@ -280,7 +280,7 @@ class msgPool {
    *
    * \param string $name The field which contains reserved keyword
    */
-  public static function reserved($name)
+  public static function reserved ($name)
   {
     return sprintf(_("The field '%s' contains a reserved keyword!"), $name);
   }
@@ -292,7 +292,7 @@ class msgPool {
    *
    * \param string $plugin Name of the plugin
    */
-  public static function cmdnotfound($type, $plugin)
+  public static function cmdnotfound ($type, $plugin)
   {
     return sprintf(_("Command specified as %s hook for plugin '%s' does not exist!"), $type, $plugin);
   }
@@ -306,7 +306,7 @@ class msgPool {
    *
    * \param string $plugin Name of the plugin
    */
-  public static function cmdinvalid($type, $command = "", $plugin = "")
+  public static function cmdinvalid ($type, $command = "", $plugin = "")
   {
     if ($command == "") {
       if ($plugin == "") {
@@ -332,7 +332,7 @@ class msgPool {
    *
    * \param string $plugin Name of the plugin
    */
-  public static function cmdexecfailed($type, $command = "", $plugin = "")
+  public static function cmdexecfailed ($type, $command = "", $plugin = "")
   {
     if ($command == "") {
       if ($plugin == "") {
@@ -356,7 +356,7 @@ class msgPool {
    *
    * \param string $min The largest value
    */
-  public static function toobig($name, $min = "")
+  public static function toobig ($name, $min = "")
   {
     if ($min == "") {
       return sprintf(_("Value for '%s' is too large!"), $name);
@@ -372,7 +372,7 @@ class msgPool {
    *
    * \param string $min The smallest value
    */
-  public static function toosmall($name, $min = "")
+  public static function toosmall ($name, $min = "")
   {
     if ($min == "") {
       return sprintf(_("Value for '%s' is too small!"), $name);
@@ -388,7 +388,7 @@ class msgPool {
    *
    * \param string $name2 Second object
    */
-  public static function depends($name1, $name2)
+  public static function depends ($name1, $name2)
   {
     return sprintf(_("'%s' depends on '%s' - please provide both values!"), $name1, $name2);
   }
@@ -399,7 +399,7 @@ class msgPool {
    * \param string $name The attribute name
    * \param string $dn The existing entry dn
    */
-  public static function duplicated($name, $dn = NULL)
+  public static function duplicated ($name, $dn = NULL)
   {
     if ($dn == NULL) {
       return sprintf(_("There is already an entry with this '%s' attribute in the system!"), $name);
@@ -413,7 +413,7 @@ class msgPool {
    *
    * \param string $name Name of the field
    */
-  public static function required($name)
+  public static function required ($name)
   {
     return sprintf(_("The required field '%s' is empty!"), $name);
   }
@@ -429,7 +429,7 @@ class msgPool {
    *
    * \param string $example Example of a right submited data
    */
-  public static function invalid($name, $data = "", $regex = "", $example = "")
+  public static function invalid ($name, $data = "", $regex = "", $example = "")
   {
     /* Stylize example */
     if ($example != "") {
@@ -466,7 +466,7 @@ class msgPool {
    *
    * \param string $name The name of the extension
    */
-  public static function missingext($name)
+  public static function missingext ($name)
   {
     return sprintf(_("Missing %s PHP extension!"), $name);
   }
@@ -474,7 +474,7 @@ class msgPool {
   /*!
    * \brief Text for a cancel button
    */
-  public static function cancelButton()
+  public static function cancelButton ()
   {
     return _("Cancel");
   }
@@ -482,7 +482,7 @@ class msgPool {
   /*!
    * \brief Text for a ok button
    */
-  public static function okButton()
+  public static function okButton ()
   {
     return _("Ok");
   }
@@ -490,7 +490,7 @@ class msgPool {
   /*!
    * \brief Text for an apply button
    */
-  public static function applyButton()
+  public static function applyButton ()
   {
     return _("Apply");
   }
@@ -498,7 +498,7 @@ class msgPool {
   /*!
    * \brief Text for a save button
    */
-  public static function saveButton()
+  public static function saveButton ()
   {
     return _("Save");
   }
@@ -508,7 +508,7 @@ class msgPool {
    *
    * \param string $what Text for the button
    */
-  public static function addButton($what = '')
+  public static function addButton ($what = '')
   {
     return (($what == '') ? sprintf(_('Add')) : sprintf(_('Add %s'), $what));
   }
@@ -518,7 +518,7 @@ class msgPool {
    *
    * \param string $what Text for the button
    */
-  public static function delButton($what = '')
+  public static function delButton ($what = '')
   {
     return (($what == '') ? sprintf(_('Delete')) : sprintf(_('Delete %s'), $what));
   }
@@ -528,7 +528,7 @@ class msgPool {
    *
    * \param string $what Text for the button
    */
-  public static function editButton($what = '')
+  public static function editButton ($what = '')
   {
     return (($what == '') ? sprintf(_('Edit...')) : sprintf(_('Edit %s...'), $what));
   }
@@ -536,7 +536,7 @@ class msgPool {
   /*!
    * \brief Text for a back button
    */
-  public static function backButton()
+  public static function backButton ()
   {
     return _('Back');
   }
@@ -546,7 +546,7 @@ class msgPool {
    *
    * \param array $data Array with the elements of the list
    */
-  public static function buildList($data)
+  public static function buildList ($data)
   {
     $objects = "<ul>";
     foreach ($data as $key => $value) {
@@ -565,7 +565,7 @@ class msgPool {
    *
    * \param string $name Name of the extension
    */
-  public static function noValidExtension($name)
+  public static function noValidExtension ($name)
   {
     return sprintf(_("This account has no valid %s extensions!"), $name);
   }
@@ -577,7 +577,7 @@ class msgPool {
    *
    * \param array $depends Contains all the settings enabled
    */
-  public static function featuresEnabled($name, $depends = '')
+  public static function featuresEnabled ($name, $depends = '')
   {
     if (($depends == "") || (is_array($depends) && (count($depends) == 0))) {
       return sprintf(_("This account has %s settings enabled. You can disable them by clicking below."), $name);
@@ -598,7 +598,7 @@ class msgPool {
    *
    * \param array $conflicts Tabs this tab conflicts with
    */
-  public static function featuresDisabled($name, array $depends = array(), array $conflicts = array())
+  public static function featuresDisabled ($name, array $depends = [], array $conflicts = [])
   {
     if (empty($depends) && empty($conflicts)) {
       return sprintf(_('This account has %s settings disabled. You can enable them by clicking below.'), $name);
@@ -614,7 +614,7 @@ class msgPool {
    *
    * \param string $name Name of the feature
    */
-  public static function addFeaturesButton($name)
+  public static function addFeaturesButton ($name)
   {
     return sprintf(_("Add %s settings"), $name);
   }
@@ -625,36 +625,36 @@ class msgPool {
    * \param string $name Name of the feature
    */
 
-  public static function removeFeaturesButton($name)
+  public static function removeFeaturesButton ($name)
   {
     return sprintf(_("Remove %s settings"), $name);
   }
 
   /*!
-   * \brief Display : Click the 'Edit' button below to change information in this dialog
+   * \brief Display : Click the "Edit" button below to change information in this dialog
    */
-  public static function clickEditToChange()
+  public static function clickEditToChange ()
   {
-    return _("Click the 'Edit' button below to change information in this dialog");
+    return _('Click the "Edit" button on the bottom right corner of the page to edit the fields');
   }
 
   /*!
    * \brief Build an array with the months
    */
-  public static function months()
+  public static function months ()
   {
-    return array(_("January"), _("February"), _("March"), _("April"),
+    return [_("January"), _("February"), _("March"), _("April"),
         _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December"));
+        _("October"), _("November"), _("December")];
   }
 
   /*!
    * \brief Build an array with the days of a week.
    *    Start by Sunday
    */
-  public static function weekdays()
+  public static function weekdays ()
   {
-    return array( _("Sunday"), _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday"), _("Friday"), _("Saturday"));
+    return [ _("Sunday"), _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday"), _("Friday"), _("Saturday")];
   }
 
   /*!
@@ -668,11 +668,11 @@ class msgPool {
    *
    * \param string $plugin
    */
-  public static function ldaperror($error, $dn = '', $type = 0, $plugin = '')
+  public static function ldaperror ($error, $dn = '', $type = 0, $plugin = '')
   {
     /* Assign headline depending on type */
-    $typemap = array(1 => _('read operation'), _('add operation'), _('modify operation'),
-        _('delete operation'), _('search operation'), _('authentication'));
+    $typemap = [1 => _('read operation'), _('add operation'), _('modify operation'),
+        _('delete operation'), _('search operation'), _('authentication')];
 
     if (isset($typemap[$type])) {
       $msg = sprintf(_('LDAP %s failed!'), $typemap[$type]);
@@ -695,7 +695,7 @@ class msgPool {
    *
    * \param string $reason The reason of the upload failed
    */
-  public static function incorrectUpload($reason = "")
+  public static function incorrectUpload ($reason = "")
   {
     if ($reason == "") {
       return _("Upload failed!");
@@ -709,7 +709,7 @@ class msgPool {
    *
    * \param string $error The error of the communication failure
    */
-  public static function siError($error = "")
+  public static function siError ($error = "")
   {
     if ($error == "") {
       return _("Communication failure with the infrastructure service!");
@@ -724,7 +724,7 @@ class msgPool {
    *
    * \param array $objects
    */
-  public static function stillInUse($type, $objects = array())
+  public static function stillInUse ($type, $objects = [])
   {
     if (!is_array($objects)) {
       return sprintf(_("This '%s' is still in use by this object: %s"), $type, "<br><br>".$objects);
@@ -743,7 +743,7 @@ class msgPool {
    *
    * \param string $file Name of the file not found
    */
-  public static function fileDoesNotExist($file)
+  public static function fileDoesNotExist ($file)
   {
     return sprintf(_("File '%s' does not exist!"), $file);
   }
@@ -753,7 +753,7 @@ class msgPool {
    *
    * \param string $file Name of the file not readable
    */
-  public static function cannotReadFile($file)
+  public static function cannotReadFile ($file)
   {
     return sprintf(_("Cannot open file '%s' for reading!"), $file);
   }
@@ -763,7 +763,7 @@ class msgPool {
    *
    * \param string $file Name of the file not writable
    */
-  public static function cannotWriteFile($file)
+  public static function cannotWriteFile ($file)
   {
     return sprintf(_("Cannot open file '%s' for writing!"), $file);
   }
@@ -773,7 +773,7 @@ class msgPool {
    *
    * \param string $attr Name of the invalide attribute
    */
-  public static function invalidConfigurationAttribute($attr)
+  public static function invalidConfigurationAttribute ($attr)
   {
     return sprintf(_("The value for '%s' is currently unconfigured or invalid, please check your configuration file!"), $attr);
   }
@@ -783,7 +783,7 @@ class msgPool {
    *
    * \param string $file Filename which can't be deleted
    */
-  public static function cannotDeleteFile($file)
+  public static function cannotDeleteFile ($file)
   {
     return sprintf(_("Cannot delete file '%s'!"), $file);
   }
@@ -793,7 +793,7 @@ class msgPool {
    *
    * \param string $path Name of folder which can't be created
    */
-  public static function cannotCreateFolder($path)
+  public static function cannotCreateFolder ($path)
   {
     return sprintf(_("Cannot create folder '%s'!"), $path);
   }
@@ -803,7 +803,7 @@ class msgPool {
    *
    * \param string $path Name of folder which can't be deleted
    */
-  public static function cannotDeleteFolder($path)
+  public static function cannotDeleteFolder ($path)
   {
     return sprintf(_("Cannot delete folder '%s'!"), $path);
   }
@@ -813,7 +813,7 @@ class msgPool {
    *
    * \param string $what Name of the support
    */
-  public static function checkingFor($what)
+  public static function checkingFor ($what)
   {
     return sprintf(_("Checking for %s support"), $what);
   }
@@ -823,7 +823,7 @@ class msgPool {
    *
    * \param string $what Name of the module
    */
-  public static function installPhpModule($what)
+  public static function installPhpModule ($what)
   {
     return sprintf(_("Install and activate the %s PHP module."), $what);
   }
@@ -833,7 +833,7 @@ class msgPool {
    *
    * \param string $what Name of the module
    */
-  public static function installPearModule($what)
+  public static function installPearModule ($what)
   {
     return sprintf(_("Install and activate the %s Pear module."), $what);
   }
@@ -843,7 +843,7 @@ class msgPool {
    *
    * \param string $plugin Name of the class which can'b be initialized
    */
-  public static function class_not_found($plugin)
+  public static function class_not_found ($plugin)
   {
     return sprintf(_("Cannot initialize class '%s'! Maybe there is a plugin missing in your FusionDirectory setup?"), $plugin);
   }
@@ -851,7 +851,7 @@ class msgPool {
   /*!
    * \brief Display error when checking the base
    */
-  public static function check_base()
+  public static function check_base ()
   {
     return _("The supplied base is not valid and has been reset to the previous value!");
   }
diff --git a/include/class_msg_dialog.inc b/include/class_msg_dialog.inc
index b38f2b3f11854d5b65635f3e94cfb19990de88c0..35f9d70543a8f6abf8ae3764d3fa1d8571c73826 100644
--- a/include/class_msg_dialog.inc
+++ b/include/class_msg_dialog.inc
@@ -41,7 +41,7 @@ class msg_dialog
   private $s_Message  = 'Undefined';
   private $i_Type     = INFO_DIALOG;
   private $i_ID       = 0;
-  private $a_Trace    = array();
+  private $a_Trace    = [];
 
   /*!
    * \brief Message dialog constructor
@@ -52,9 +52,9 @@ class msg_dialog
    *
    * \param string $i_type The type of the message dialog, by default = INFO_DIALOG
    */
-  public function __construct($s_title, $s_message, $i_type)
+  public function __construct ($s_title, $s_message, $i_type)
   {
-    if (!in_array($i_type, array(INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG,FATAL_ERROR_DIALOG))) {
+    if (!in_array($i_type, [INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG,FATAL_ERROR_DIALOG])) {
       trigger_error('Invalid msg_dialog type.');
       $i_type = INFO_DIALOG;
     }
@@ -65,7 +65,7 @@ class msg_dialog
     $this->i_Type     = $i_type;
   }
 
-  protected function show()
+  protected function show ()
   {
     global $config;
 
@@ -74,7 +74,7 @@ class msg_dialog
     }
 
     if ((!session::is_set('errorsAlreadyPosted')) || !is_array(session::get('errorsAlreadyPosted'))) {
-      session::set('errorsAlreadyPosted', array());
+      session::set('errorsAlreadyPosted', []);
     }
 
     $errorsAlreadyPosted = session::get('errorsAlreadyPosted');
@@ -103,7 +103,7 @@ class msg_dialog
       if (session::is_set('msg_dialogs')) {
         $msg_dialogs = session::get('msg_dialogs');
       } else {
-        $msg_dialogs = array();
+        $msg_dialogs = [];
       }
       $msg_dialogs[] = $this;
       session::set('msg_dialogs', $msg_dialogs);
@@ -119,7 +119,7 @@ class msg_dialog
    *
    * \param string $i_type The type of the message dialog, by default = INFO_DIALOG
    */
-  public static function display($s_title, $s_message, $i_type = INFO_DIALOG)
+  public static function display ($s_title, $s_message, $i_type = INFO_DIALOG)
   {
     $dialog = new msg_dialog($s_title, $s_message, $i_type);
     $dialog->show();
@@ -130,7 +130,7 @@ class msg_dialog
    *
    * \param array $messages Contains messages
    */
-  public static function displayChecks($messages)
+  public static function displayChecks ($messages)
   {
     foreach ($messages as $error) {
       static::display(_('Error'), $error, ERROR_DIALOG);
@@ -142,7 +142,7 @@ class msg_dialog
    *
    * \return The identifier of the message dialog
    */
-  public function get_ID()
+  public function get_ID ()
   {
     return $this->i_ID;
   }
@@ -150,7 +150,7 @@ class msg_dialog
   /*!
    * \brief Run the message dialog
    */
-  public function execute()
+  public function execute ()
   {
     global $config;
     if ($this->i_Type == FATAL_ERROR_DIALOG) {
@@ -169,12 +169,12 @@ class msg_dialog
         '<table style="width:100%; border:2px solid red;">
           <tr>
             <td style="vertical-align:top;padding:10px">
-              <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" alt="'._('Error').'"/>
+              <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" alt="'.htmlentities(_('Error'), ENT_COMPAT, 'UTF-8').'"/>
             </td>
             <td style="width:100%">
-              <b>'.$this->s_Title.'</b><br/>
-              '.$this->s_Message.'<br><br/>
-              '._('Please fix the above error and reload the page.').'
+              <b>'.htmlentities($this->s_Title, ENT_COMPAT, 'UTF-8').'</b><br/>
+              '.htmlentities($this->s_Message, ENT_COMPAT, 'UTF-8').'<br><br/>
+              '.htmlentities(_('Please fix the above error and reload the page.'), ENT_COMPAT, 'UTF-8').'
             </td>
           </tr>
         </table></body></html>';
@@ -199,7 +199,7 @@ class msg_dialog
    *
    * \return True if is confirmed, else return false
    */
-  public function is_confirmed()
+  public function is_confirmed ()
   {
     return isset($_POST['MSG_OK'.$this->i_ID]);
   }
@@ -207,7 +207,7 @@ class msg_dialog
   /*!
    * \brief Accessor of the message dialog
    */
-  public static function get_dialogs()
+  public static function get_dialogs ()
   {
     $return     = "";
     $dialog_ids = "";
diff --git a/include/class_objects.inc b/include/class_objects.inc
index 4f6716d26db4c8fdcd59d61561c5f4edda77e9b3..e00d15fa64621a1681a2d8f1e33f9073c7b14563 100644
--- a/include/class_objects.inc
+++ b/include/class_objects.inc
@@ -51,7 +51,7 @@ class objects
     }
 
     if (!is_array($types)) {
-      $types = array($types);
+      $types = [$types];
     }
 
     if ($checkAcl) {
@@ -62,9 +62,9 @@ class objects
       $acl = $infos['aclCategory'].'/'.$infos['mainTab'];
     }
 
-    $attrsAcls = array();
+    $attrsAcls = [];
     if ($attrs === NULL) {
-      $attrs = array();
+      $attrs = [];
       foreach ($types as $type) {
         $infos = static::infos($type);
         if ($infos['mainAttr']) {
@@ -75,13 +75,13 @@ class objects
       if (count($attrs) == 1) {
         $attrs = $attrs[0];
       } elseif (count($attrs) == 0) {
-        $attrs = array('dn' => 'raw');
+        $attrs = ['dn' => 'raw'];
       }
     } elseif ($checkAcl) {
       if (is_array($attrs)) {
         $search_attrs = array_keys($attrs);
       } else {
-        $search_attrs = array($attrs);
+        $search_attrs = [$attrs];
       }
       foreach ($search_attrs as $search_attr) {
         $category = $ui->getAttributeCategory($types[0], $search_attr);
@@ -92,7 +92,7 @@ class objects
           continue;
         }
         if (strpos($ui->get_permissions($ou, $category, $search_attr), 'r') === FALSE) {
-          $attrsAcls[$search_attr] = array($category, $search_attr);
+          $attrsAcls[$search_attr] = [$category, $search_attr];
         }
       }
     }
@@ -100,15 +100,15 @@ class objects
     if (is_array($attrs)) {
       $search_attrs = array_keys($attrs);
     } else {
-      $search_attrs = array($attrs);
+      $search_attrs = [$attrs];
     }
 
     try {
       $ldap = static::search($types, $search_attrs, $ou, $filter, $checkAcl, $scope, FALSE, $partialFilterAcls);
     } catch (NonExistingBranchException $e) {
-      return array();
+      return [];
     }
-    $result = array();
+    $result = [];
     while ($fetched_attrs = $ldap->fetch()) {
       $key = $fetched_attrs['dn'];
       if ($checkAcl) {
@@ -122,7 +122,7 @@ class objects
         }
       }
       if (is_array($attrs)) {
-        $result[$key] = array();
+        $result[$key] = [];
         foreach ($attrs as $attr => $mode) {
           if (isset($fetched_attrs[$attr])) {
             if (isset($attrsAcls[$attr]) &&
@@ -168,7 +168,7 @@ class objects
   static function count ($types, $ou = NULL, $filter = '', $checkAcl = FALSE)
   {
     try {
-      $ldap = static::search($types, array('dn'), $ou, $filter, $checkAcl, 'subtree', FALSE, $partialFilterAcls);
+      $ldap = static::search($types, ['dn'], $ou, $filter, $checkAcl, 'subtree', FALSE, $partialFilterAcls);
       if (!empty($partialFilterAcls)) {
         throw new FusionDirectoryException('Not enough rights to use "'.$partialFilterAcls[0][1].'" in filter');
       }
@@ -180,21 +180,21 @@ class objects
     return $ldap->count();
   }
 
-  private static function search ($types, $search_attrs, $ou = NULL, $filter = '', $checkAcl = FALSE, $scope = 'subtree', $templateSearch = FALSE, &$partialFilterAcls = array())
+  private static function search ($types, $search_attrs, $ou = NULL, $filter = '', $checkAcl = FALSE, $scope = 'subtree', $templateSearch = FALSE, &$partialFilterAcls = [])
   {
     global $config, $ui;
 
-    $partialFilterAcls = array();
+    $partialFilterAcls = [];
 
     if (!is_array($types)) {
-      $types = array($types);
+      $types = [$types];
     }
 
     if ($ou === NULL) {
       $ou = $config->current['BASE'];
     }
 
-    $typeFilters = array();
+    $typeFilters = [];
     foreach ($types as $type) {
       $infos = static::infos($type);
 
@@ -236,7 +236,7 @@ class objects
             continue;
           }
           if (strpos($ui->get_permissions($ou, $category, $acl), 'r') === FALSE) {
-            $partialFilterAcls[] = array($category, $acl);
+            $partialFilterAcls[] = [$category, $acl];
           }
         }
       }
@@ -248,10 +248,10 @@ class objects
     if ($templateSearch) {
       $templateFilterObject = new ldapFilter(
         '&',
-        array(
+        [
           new ldapFilterLeaf('objectClass', '=', 'fdTemplate'),
           fdTemplateFilter(ldapFilter::parse($filter)),
-        )
+        ]
       );
       $filter = "$templateFilterObject";
     }
@@ -278,7 +278,7 @@ class objects
 
     $tabObject = new $tabClass($type, $dn);
     $tabObject->set_acl_base();
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, "Openned as $type object");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, "Openned as $type object");
 
     return $tabObject;
   }
@@ -301,7 +301,7 @@ class objects
 
     if ($text === NULL) {
       $ldap = $config->get_ldap_link();
-      $ldap->cat($dn, array($infos['nameAttr']));
+      $ldap->cat($dn, [$infos['nameAttr']]);
       if ($attrs = $ldap->fetch()) {
         if (isset($attrs[$infos['nameAttr']][0])) {
           $text = $attrs[$infos['nameAttr']][0];
@@ -343,7 +343,7 @@ class objects
       } else {
         $parts = ldap_explode_dn(preg_replace('/,$/', '', $infos['ou']), 0);
         unset($parts['count']);
-        $dnFilter = array();
+        $dnFilter = [];
         foreach ($parts as $part) {
           preg_match('/([^=]+)=(.*)$/', $part, $m);
           $dnFilter[] = '('.$m[1].':dn:='.$m[2].')';
@@ -396,11 +396,11 @@ class objects
 
     $infos = static::infos($type);
 
-    $templates = array();
+    $templates = [];
     foreach ($config->departments as $key => $value) {
       // Search all templates from the current dn.
       try {
-        $ldap = static::search($type, array('cn'), $infos['ou'].$value, $filter, FALSE, 'subtree', TRUE);
+        $ldap = static::search($type, ['cn'], $infos['ou'].$value, $filter, FALSE, 'subtree', TRUE);
       } catch (NonExistingBranchException $e) {
         continue;
       }
diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc
index 281ee55da02ca806905aa1b0026991f082835104..a725ea4d6f05a4b732ea6cc210f2c787d85522f6 100644
--- a/include/class_pluglist.inc
+++ b/include/class_pluglist.inc
@@ -40,28 +40,28 @@ class pluglist {
    * \brief The plInfo result for all plugin, using class as key.
    * Contains the plugin index in 'INDEX' and the path in 'PATH'
    */
-  var $info             = array();
+  var $info             = [];
 
   /*!
    * \brief Foreign references on DNs
    */
-  var $dnForeignRefs = array();
+  var $dnForeignRefs = [];
 
   /*!
    * \brief Using the plugin index as a key, the class of the plugin.
    */
-  var $dirlist          = array();
+  var $dirlist          = [];
 
   /*!
    * \brief List plugin indexes of all plugin that the user have acl for
    */
-  var $allowed_plugins  = array();
-  var $silly_cache      = array();
+  var $allowed_plugins  = [];
+  var $silly_cache      = [];
 
   /*!
    * \brief List the plugins
    */
-  function __construct()
+  function __construct ()
   {
     global $class_mapping;
 
@@ -71,13 +71,13 @@ class pluglist {
     sort($classes);
 
     $index = 0;
-    $depends_infos    = array();
-    $conflicts_infos  = array();
-    $foreign_refs     = array();
+    $depends_infos    = [];
+    $conflicts_infos  = [];
+    $foreign_refs     = [];
     foreach ($classes as $cname) {
       $cmethods = get_class_methods($cname);
       if (in_array_ics('plInfo', $cmethods)) {
-        $infos = call_user_func(array($cname, 'plInfo'));
+        $infos = call_user_func([$cname, 'plInfo']);
         if (empty($infos)) {
           continue;
         }
@@ -85,7 +85,7 @@ class pluglist {
           $infos['plSelfModify']  = FALSE;
           /* services are not part of any objectType */
           unset($infos['plObjectType']);
-          $infos['plCategory']    = array('server');
+          $infos['plCategory']    = ['server'];
         } else {
           if (!isset($infos['plSelfModify'])) {
             $infos['plSelfModify'] = FALSE;
@@ -103,10 +103,10 @@ class pluglist {
         if (isset($infos['plForeignKeys'])) {
           foreach ($infos['plForeignKeys'] as $ofield => &$pfks) {
             if (!is_array($pfks)) {
-              $pfks = array($pfks);
+              $pfks = [$pfks];
             }
             if (!is_array($pfks[0])) {
-              $pfks = array($pfks);
+              $pfks = [$pfks];
             }
             foreach ($pfks as &$pfk) {
               $class = $pfk[0];
@@ -125,32 +125,32 @@ class pluglist {
               }
               $pfk[2] = $filter;
               if (!isset($foreign_refs[$class])) {
-                $foreign_refs[$class] = array();
+                $foreign_refs[$class] = [];
               }
               if (!isset($foreign_refs[$class][$field])) {
-                $foreign_refs[$class][$field] = array();
+                $foreign_refs[$class][$field] = [];
               }
-              $foreign_refs[$class][$field][] = array($cname, $ofield, $filter);
+              $foreign_refs[$class][$field][] = [$cname, $ofield, $filter];
               if ($field == 'dn') {
-                $this->dnForeignRefs[] = array($cname, $ofield, $filter, (isset($pfk[3]) ? $pfk[3] : "$ofield=*%oldvalue%"));
+                $this->dnForeignRefs[] = [$cname, $ofield, $filter, (isset($pfk[3]) ? $pfk[3] : "$ofield=*%oldvalue%")];
               }
             }
             unset($pfk);
           }
           unset($pfks);
         } else {
-          $infos['plForeignKeys'] = array();
+          $infos['plForeignKeys'] = [];
         }
         if (!isset($infos['plProvidedAcls'])) {
-          $infos['plProvidedAcls'] = array();
+          $infos['plProvidedAcls'] = [];
         }
         if (!isset($infos['plCategory'])) {
-          $infos['plCategory'] = array();
+          $infos['plCategory'] = [];
         }
         if (!isset($infos['plTitle']) && isset($infos['plShortName'])) {
           $infos['plTitle'] = $infos['plShortName'];
         }
-        $infos['plForeignRefs']         = array();
+        $infos['plForeignRefs']         = [];
         $infos['INDEX']                 = $index;
         $this->info[$cname]             = $infos;
         $this->dirlist[$index++]        = $cname;
@@ -163,7 +163,7 @@ class pluglist {
           if (isset($this->info[$depend]['plDepending'])) {
             $this->info[$depend]['plDepending'][] = $cname;
           } else {
-            $this->info[$depend]['plDepending'] = array($cname);
+            $this->info[$depend]['plDepending'] = [$cname];
           }
         } else {
           trigger_error("$cname depends of the inexisting plugin $depend");
@@ -178,7 +178,7 @@ class pluglist {
               $this->info[$conflict]['plConflicts'][] = $cname;
             }
           } else {
-            $this->info[$conflict]['plConflicts'] = array($cname);
+            $this->info[$conflict]['plConflicts'] = [$cname];
           }
         }
       }
@@ -190,9 +190,9 @@ class pluglist {
     }
 
     /* Provide field for 'all' */
-    $this->info['all'] = array();
+    $this->info['all'] = [];
 
-    $this->info['all']['plProvidedAcls']  = array();
+    $this->info['all']['plProvidedAcls']  = [];
     $this->info['all']['plDescription']   = _("All objects in this category");
     $this->info['all']['plSelfModify']    = FALSE;
 
@@ -227,7 +227,7 @@ class pluglist {
    *
    * \return Boolean TRUE on success FALSE otherwise
    */
-  function check_access($infos)
+  function check_access ($infos)
   {
     global $ui;
 
@@ -248,11 +248,11 @@ class pluglist {
     /* Split given acl string into an array.
       e.g. "user,systems" => array("user","systems");
          */
-    $acls_to_check = array();
+    $acls_to_check = [];
     if (preg_match("/,/", $aclname)) {
       $acls_to_check = explode(",", $aclname);
     } else {
-      $acls_to_check = array($aclname);
+      $acls_to_check = [$aclname];
     }
 
     foreach ($acls_to_check as $acl_to_check) {
@@ -291,7 +291,7 @@ class pluglist {
   /*!
    * \brief Get headline, description and icon of a plugin
    */
-  function get_infos($cname)
+  function get_infos ($cname)
   {
     $plHeadline     = FALSE;
     $plIcon         = FALSE;
@@ -309,7 +309,7 @@ class pluglist {
         $plDescription = $this->info[$cname]['plDescription'];
       }
       if ($plHeadline && $plIcon && $plDescription) {
-        return array($plHeadline,$plDescription,$href,$plIcon);
+        return [$plHeadline,$plDescription,$href,$plIcon];
       }
     }
     $vars = get_class_vars($cname);
@@ -329,13 +329,13 @@ class pluglist {
     if (!$plIcon) {
       $plIcon = "icon.png";
     }
-    return array($plHeadline,$plDescription,$href,$plIcon);
+    return [$plHeadline,$plDescription,$href,$plIcon];
   }
 
   /*!
    * \brief Generate menu
    */
-  function gen_menu()
+  function gen_menu ()
   {
     global $config;
     if ($this->menu == "") {
@@ -352,7 +352,7 @@ class pluglist {
           if (isset($info['CLASS']) && plugin_available($info['CLASS'])) {
             $index  = $this->get_index($info['CLASS']);
             $this->allowed_plugins[$index] = $index;
-            list ($plHeadline, $plDescription, $href, ) = $this->get_infos($info['CLASS']);
+            list($plHeadline, $plDescription, $href, ) = $this->get_infos($info['CLASS']);
             $id             = $info['CLASS'];
           } elseif (!isset($info['CLASS'])) {
             $plHeadline     = $info['TITLE'];
@@ -398,7 +398,7 @@ class pluglist {
   /*!
    * \brief Show the menu icon
    */
-  function show_iconmenu()
+  function show_iconmenu ()
   {
     global $class_mapping, $config;
     if ($this->iconmenu == "") {
@@ -416,7 +416,7 @@ class pluglist {
           }
           if (isset($info['CLASS']) && plugin_available($info['CLASS'])) {
             /* Read information from class variable */
-            list ($plHeadline, $plDescription, $href, $plIcon) = $this->get_infos($info['CLASS']);
+            list($plHeadline, $plDescription, $href, $plIcon) = $this->get_infos($info['CLASS']);
             $id             = $info['CLASS'];
           } elseif (!isset($info['CLASS'])) {
             $plHeadline     = $info['TITLE'];
@@ -456,7 +456,7 @@ class pluglist {
    *
    * \param string $index The index which we want the path
    */
-  function get_path($index)
+  function get_path ($index)
   {
     if (!isset($this->dirlist[$index])) {
       return "";
@@ -469,7 +469,7 @@ class pluglist {
    *
    * \param string $class The name of the class
    */
-  function get_index($class)
+  function get_index ($class)
   {
     /* Search for plugin index (id), identify entry by class */
     if (isset($this->info[$class])) {
@@ -487,14 +487,14 @@ class pluglist {
    *
    * \return Boolean TRUE if we are allowed to view the plugin else FALSE
    */
-  function plugin_access_allowed($plug_id)
+  function plugin_access_allowed ($plug_id)
   {
     return isset($this->allowed_plugins[$plug_id]);
   }
 
-  static function pluginInfos($cname)
+  static function pluginInfos ($cname)
   {
-    $plist = session::global_get('plist');
+    $plist = session::get('plist');
     if ($plist) {
       return $plist->info[$cname];
     } else {
@@ -502,4 +502,3 @@ class pluglist {
     }
   }
 }
-?>
diff --git a/include/class_session.inc b/include/class_session.inc
index 7367f1e81fd3113eeae09952cc17517f74f377aa..d04becdfb0124c8886874e91e4232b22bd6c2175 100644
--- a/include/class_session.inc
+++ b/include/class_session.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -33,63 +33,17 @@ class session {
    *
    * \param string $name The name of the session
    */
-  public static function is_set($name)
-  {
-    $channel = "";
-    if (isset($_POST['_channel_'])) {
-      $channel = $_POST['_channel_'];
-    }
-
-    /* Global fallback if not set */
-    if ($channel == "") {
-      return isset($_SESSION[$name]);
-    }
-
-    /* Sanity check */
-    if (!session::channel_exists($channel)) {
-      msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
-      exit;
-    }
-
-    $channel = "gch_".$channel;
-    return isset($_SESSION[$channel][$name]);
-  }
-
-  /*!
-   * \brief Check if a session is defined
-   *
-   * \param string $name Name of the session
-   */
-  public static function global_is_set($name)
+  public static function is_set ($name)
   {
     return isset($_SESSION[$name]);
   }
 
   /*!
-   * \brief Set a value in a session
-   *
-   * \param string $name Name of the session
-   *
-   * \param $value The new value
+   * \brief Deprecated
    */
-  public static function set($name, $value)
+  public static function global_is_set ($name)
   {
-    $channel = "";
-    if (isset($_POST['_channel_'])) {
-      $channel = $_POST['_channel_'];
-    }
-
-    /* Global fallback if not set */
-    if ($channel == "") {
-      $_SESSION[$name] = $value;
-    } else {
-      /* Sanity check */
-      if (!session::channel_exists($channel)) {
-        msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
-        exit;
-      }
-      $_SESSION[$channel][$name] = $value;
-    }
+    return static::is_set($name);
   }
 
   /*!
@@ -99,38 +53,17 @@ class session {
    *
    * \param $value The new value
    */
-  public static function global_set($name, $value)
+  public static function set ($name, $value)
   {
     $_SESSION[$name] = $value;
   }
 
   /*!
-   * \brief Accessor of a session
-   *
-   * \param string $name Name of the session
+   * \brief Deprecated
    */
-  public static function &get($name)
+  public static function global_set ($name, $value)
   {
-    $channel = "";
-    if (isset($_POST['_channel_'])) {
-      $channel = $_POST['_channel_'];
-    }
-
-    /* Global fallback if not set */
-    if ($channel == "") {
-      $ret = &$_SESSION[$name];
-      return $ret;
-    }
-
-    /* Sanity check */
-    if (!session::channel_exists($channel)) {
-      msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
-      exit;
-    }
-
-    $channel  = "gch_".$channel;
-    $ret      = &$_SESSION[$channel][$name];
-    return $ret;
+    static::set($name, $value);
   }
 
   /*!
@@ -138,7 +71,7 @@ class session {
    *
    * \param string $name Name of the session var
    */
-  public static function global_get($name)
+  public static function get ($name)
   {
     if (isset($_SESSION[$name])) {
       return $_SESSION[$name];
@@ -147,51 +80,39 @@ class session {
     }
   }
 
+  /*!
+   * \brief Deprecated
+   */
+  public static function global_get ($name)
+  {
+    return static::get($name);
+  }
+
   /*!
    * \brief Accessor of a session var by reference
    *
    * \param string $name Name of the session var
    */
-  public static function &global_get_ref($name)
+  public static function &get_ref ($name)
   {
     $ret = &$_SESSION[$name];
     return $ret;
   }
 
   /*!
-   * \brief Delete a session
-   *
-   * \param string $name Name of the session to delete
+   * \brief Deprecated
    */
-  public static function delete($name)
+  public static function delete ($name)
   {
-    $channel = "";
-    if (isset($_POST['_channel_'])) {
-      $channel = $_POST['_channel_'];
-    }
-
-    /* Global fallback if not set */
-    if ($channel == "") {
-      if (isset($_SESSION[$name])) {
-        unset($_SESSION[$name]);
-      }
-    } else {
-      if (isset($_SESSION[$channel][$name])) {
-        unset($_SESSION[$channel][$name]);
-      }
-    }
+    return static::un_set($name);
   }
 
   /*!
-   * \brief Delete a session
-   *
-   * \param string $name Name of the session to delete
+   * \brief Deprecated
    */
-  public static function global_delete($name)
+  public static function global_delete ($name)
   {
-    if (isset($_SESSION[$name])) {
-      unset($_SESSION[$name]);
-    }
+    return static::un_set($name);
   }
 
   /*!
@@ -199,25 +120,25 @@ class session {
    *
    * \param string $name Name of the session to delete
    */
-  public static function un_set($name)
+  public static function un_set ($name)
   {
-    return session::delete($name);
+    if (isset($_SESSION[$name])) {
+      unset($_SESSION[$name]);
+    }
   }
 
   /*!
-   * \brief Unset a session
-   *
-   * \param string $name Name of the session to delete
+   * \brief Deprecated
    */
-  public static function global_un_set($name)
+  public static function global_un_set ($name)
   {
-    return session::global_delete($name);
+    return static::un_set($name);
   }
 
   /*!
    * \brief Start a session
    */
-  public static function start($id = NULL)
+  public static function start ($id = NULL)
   {
     session_name("FusionDirectory");
     /* Set cookie lifetime to one day (The parameter is in seconds ) */
@@ -230,6 +151,13 @@ class session {
        !! The garbage collector is a cron job on debian systems, the cronjob will fetch the timeout from
        the php.ini, so if you use debian, you must hardcode session.gc_maxlifetime in your php.ini */
     ini_set("session.gc_maxlifetime", 24 * 60 * 60);
+
+    /*
+     *  Set HttpOnly in order to enhance security by disabling execution of javascript on cookies,
+     *  allowing possible XSS attacks
+     */
+    ini_set("session.cookie_httponly", "1");
+
     if ($id !== NULL) {
       session_id($id);
     }
@@ -256,7 +184,7 @@ class session {
   /*!
    * \brief Destroy a session
    */
-  public static function destroy()
+  public static function destroy ()
   {
     @session_destroy();
   }
@@ -264,7 +192,7 @@ class session {
   /*!
    * \brief Get all sessions
    */
-  public static function &get_all()
+  public static function &get_all ()
   {
     $ret = &$_SESSION;
     return $ret;
diff --git a/include/class_template.inc b/include/class_template.inc
index 3dab9c506e17c19097252aac232e0a94f431ab4e..b923f86f0e6c31581d7dfe13d9923330d38746b7 100644
--- a/include/class_template.inc
+++ b/include/class_template.inc
@@ -35,25 +35,25 @@ class template
 
   protected $applied = FALSE;
 
-  static protected $uiSpecialAttributes = array('dn','cn','uid','sn','givenName');
+  static protected $uiSpecialAttributes = ['dn','cn','uid','sn','givenName'];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Template'),
       'plDescription' => _('Object template, used to create several objects with similar values'),
       /* Categories for templates are computed in config class */
-      'plCategory'    => array(),
+      'plCategory'    => [],
 
-      'plProvidedAcls' => array(
+      'plProvidedAcls' => [
         'template_cn' => _('Template name')
-      )
-    );
+      ]
+    ];
   }
 
-  static function getTemplatedTypes()
+  static function getTemplatedTypes ()
   {
-    $result = array();
+    $result = [];
     $types  = objects::types();
     foreach ($types as $type) {
       if (in_array($type, departmentManagement::getDepartmentTypes())) {
@@ -68,7 +68,7 @@ class template
     return $result;
   }
 
-  function __construct($type, $dn, $targetdn = NULL)
+  function __construct ($type, $dn, $targetdn = NULL)
   {
     $this->type = $type;
     $this->dn   = $dn;
@@ -82,11 +82,11 @@ class template
       $this->tabObject  = objects::open($this->dn, $this->type);
     }
     $tempTabObject    = objects::open($this->dn, $this->type); /* Used to know which tab is activated */
-    $this->attributes = array();
+    $this->attributes = [];
     $tempTabObject->setActiveTabs($this->tabObject);
     foreach ($this->tabObject->by_object as $class => $tab) {
       if ($tab->is_account || $tab->ignore_account) {
-        $this->attributes[$class] = array();
+        $this->attributes[$class] = [];
         $attrs = array_unique(array_merge($tab->getRequiredAttributes(), $this->needed));
         foreach (array_keys($tab->attributesAccess) as $attr) {
           if (!$tab->showInTemplate($attr, $this->attrs)) {
@@ -101,7 +101,7 @@ class template
   }
 
   /*! \brief Used when you need to re-apply the same template with different values */
-  function reset()
+  function reset ()
   {
     list($this->attrs, $depends) = templateHandling::fetch($this->dn);
     // This is needed because it removes %askme% values from attrs
@@ -118,12 +118,12 @@ class template
     $this->applied = FALSE;
   }
 
-  function getDn()
+  function getDn ()
   {
     return $this->dn;
   }
 
-  function getBase()
+  function getBase ()
   {
     if (is_object($this->tabObject)) {
       return $this->tabObject->getBaseObject()->base;
@@ -133,19 +133,19 @@ class template
     }
   }
 
-  function getNeeded()
+  function getNeeded ()
   {
     return $this->attributes;
   }
 
-  function serialize()
+  function serialize ()
   {
-    $attributes = array();
+    $attributes = [];
     foreach ($this->tabObject->by_object as $class => $plugin) {
       if (!isset($this->attributes[$class])) {
         continue;
       }
-      $attributes[$class] = array('name' => $this->tabObject->by_name[$class], 'attrs' => array());
+      $attributes[$class] = ['name' => $this->tabObject->by_name[$class], 'attrs' => []];
       foreach ($this->attributes[$class] as $attr) {
         $plugin->attributesAccess[$attr]->serializeAttribute($attributes[$class]['attrs'], FALSE);
       }
@@ -155,7 +155,7 @@ class template
     return $attributes;
   }
 
-  function deserialize($values)
+  function deserialize ($values)
   {
     foreach ($values as $class => $class_values) {
       $result = $this->tabObject->by_object[$class]->deserializeValues($class_values);
@@ -166,7 +166,7 @@ class template
     return TRUE;
   }
 
-  function save_object()
+  function save_object ()
   {
     foreach ($this->tabObject->by_object as $plugin) {
       $plugin->save_object();
@@ -178,11 +178,11 @@ class template
     return $this->tabObject->dialogOpened();
   }
 
-  function execute()
+  function execute ()
   {
     $smarty   = get_smarty();
-    $sections = array();
-    $posted   = array();
+    $sections = [];
+    $posted   = [];
     $smarty->assign('baseACL', 'rw');
     foreach ($this->tabObject->by_object as $class => &$plugin) {
       if (!isset($this->attributes[$class])) {
@@ -197,7 +197,7 @@ class template
           return $dialogResult;
         }
       }
-      $attributes = array();
+      $attributes = [];
       foreach ($this->attributes[$class] as $attr) {
         if ($plugin->attributesAccess[$attr]->getAclInfo() !== FALSE) {
           // We assign ACLs so that attributes can use them in their template code
@@ -225,7 +225,7 @@ class template
 
   /* Apply template and current values to an object and returns it for saving or edition
    * Cannot be called twice! If you need to, call reset between calls */
-  function apply($targetdn = NULL)
+  function apply ($targetdn = NULL)
   {
     if ($this->applied) {
       trigger_error('Templates can’t be applied twice without calling reset before');
@@ -262,7 +262,7 @@ class template
     unset($plugin);
     foreach ($this->attrs as &$array) {
       if (!is_array($array)) {
-        $array = array($array);
+        $array = [$array];
       }
       if (!isset($array['count'])) {
         $array['count'] = count($array);
@@ -271,7 +271,7 @@ class template
     unset($array);
 
     $ui           = get_userinfo();
-    $specialAttrs = array();
+    $specialAttrs = [];
     foreach (static::$uiSpecialAttributes as $attr) {
       $specialAttrs['caller'.strtoupper($attr)] = $ui->$attr;
     }
diff --git a/include/class_templateHandling.inc b/include/class_templateHandling.inc
index 2b56786c2e3ecc37a9ab6742698d37bf5af9df29..ef058d6740ad1d29338d44e9ee078846170669a0 100644
--- a/include/class_templateHandling.inc
+++ b/include/class_templateHandling.inc
@@ -28,7 +28,7 @@
 class templateHandling
 {
   /*! \brief Fetch a template from LDAP and returns its attributes and dependencies information */
-  public static function fetch($dn)
+  public static function fetch ($dn)
   {
     global $config;
 
@@ -39,7 +39,7 @@ class templateHandling
     list($depends, $errors) = static::attributesDependencies($attrs);
     msg_dialog::displayChecks($errors);
     $attrs    = static::sortAttributes($attrs, $depends);
-    return array($attrs, $depends);
+    return [$attrs, $depends];
   }
 
   /*! \brief Translate template attrs into $attrs as if taken from LDAP */
@@ -47,14 +47,14 @@ class templateHandling
   {
     unset($template_attrs['fdTemplateField']['count']);
     sort($template_attrs['fdTemplateField']);
-    $attrs = array();
+    $attrs = [];
     foreach ($template_attrs['fdTemplateField'] as $field) {
       preg_match('/^([^:]+):(.*)$/s', $field, $m);
       if (isset($attrs[$m[1]])) {
         $attrs[$m[1]][] = $m[2];
         $attrs[$m[1]]['count']++;
       } else {
-        $attrs[$m[1]]           = array($m[2]);
+        $attrs[$m[1]]           = [$m[2]];
         $attrs[$m[1]]['count']  = 1;
       }
     }
@@ -116,19 +116,19 @@ class templateHandling
   }
 
   /*! \brief Parse a mask (without surrounding %) using $attrs attributes, apply modifiers and returns an array containing possible results */
-  public static function parseMask($mask, array $attrs)
+  public static function parseMask ($mask, array $attrs)
   {
     if ($mask == '|') {
-      return array('%');
+      return ['%'];
     }
     $modifiers = '';
     if (preg_match('/^([^|]+)\|/', $mask, $m)) {
       $modifiers = $m[1];
       $mask = substr($mask, strlen($m[0]));
     }
-    $result = array('');
+    $result = [''];
     if (isset($attrs[$mask])) {
-      $result = array($attrs[$mask]);
+      $result = [$attrs[$mask]];
       if (is_array($result[0])) {
         unset($result[0]['count']);
       }
@@ -137,14 +137,14 @@ class templateHandling
     }
     $len    = strlen($modifiers);
     for ($i = 0; $i < $len; ++$i) {
-      $args     = array();
+      $args     = [];
       $modifier = $modifiers[$i];
       if (preg_match('/^\[([^\]]+)\].*$/', substr($modifiers, $i + 1), $m)) {
         /* get modifier args */
         $args = explode(',', $m[1]);
         $i += strlen($m[1]) + 2;
       }
-      $result_tmp = array();
+      $result_tmp = [];
       foreach ($result as $r) {
         $result_tmp = array_merge($result_tmp, static::applyModifier($modifier, $args, $r));
       }
@@ -164,9 +164,9 @@ class templateHandling
    *
    * \return array An array of attributes which are needed by the template
    */
-  public static function neededAttrs(array &$attrs, array $flatdepends)
+  public static function neededAttrs (array &$attrs, array $flatdepends)
   {
-    $needed = array();
+    $needed = [];
     foreach ($flatdepends as $attr => $depends) {
       if ((isset($depends[0])) && ($depends[0] == 'askme')) {
         $needed[] = $attr;
@@ -187,7 +187,7 @@ class templateHandling
    *
    * \return array An array with the final values of attributes
    */
-  public static function parseArray(array $attrs, array $specialAttrs)
+  public static function parseArray (array $attrs, array $specialAttrs)
   {
     foreach ($attrs as &$attr) {
       if (is_array($attr)) {
@@ -208,7 +208,7 @@ class templateHandling
    *
    * \return string the string with patterns replaced by their values
    */
-  public static function parseString($string, array $attrs, $escapeMethod = NULL)
+  public static function parseString ($string, array $attrs, $escapeMethod = NULL)
   {
     if (preg_match('/^%%/', $string)) {
       /* Special case: %% at beginning of string means do not touch it. Used by binary attributes. */
@@ -231,9 +231,9 @@ class templateHandling
    *
    * \return array An array with the names of the fields used in the string pattern
    */
-  public static function listFields($string)
+  public static function listFields ($string)
   {
-    $fields = array();
+    $fields = [];
     $offset = 0;
     while (preg_match('/%([^%]+)%/', $string, $m, PREG_OFFSET_CAPTURE, $offset)) {
       $mask   = $m[1][0];
@@ -249,7 +249,7 @@ class templateHandling
     return $fields;
   }
 
-  private static function modifierRemoveAccents($str)
+  private static function modifierRemoveAccents ($str)
   {
     $str = htmlentities($str, ENT_NOQUOTES, 'UTF-8');
 
@@ -257,22 +257,22 @@ class templateHandling
     // handle ligatures
     $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
     // delete unhandled characters
-    return array(preg_replace('#&[^;]+;#', '', $str));
+    return [preg_replace('#&[^;]+;#', '', $str)];
   }
 
-  private static function modifierTranslit(array $args, $str)
+  private static function modifierTranslit (array $args, $str)
   {
     $localesaved = setlocale(LC_CTYPE, 0);
-    $ret = array();
+    $ret = [];
     foreach ($args as $arg) {
-      setlocale(LC_CTYPE, array($arg,"$arg.UTF8"));
+      setlocale(LC_CTYPE, [$arg,"$arg.UTF8"]);
       $ret[] = iconv('UTF8', 'ASCII//TRANSLIT', $str);
     }
     setlocale(LC_CTYPE, $localesaved);
     return array_unique($ret);
   }
 
-  private static function modifierPregReplace(array $args, $str)
+  private static function modifierPregReplace (array $args, $str)
   {
     $pattern = '/\s/';
     $replace = '';
@@ -283,10 +283,10 @@ class templateHandling
       }
     }
 
-    return array(preg_replace($pattern.'u', $replace, $str));
+    return [preg_replace($pattern.'u', $replace, $str)];
   }
 
-  private static function modifierSubString(array $args, $str)
+  private static function modifierSubString (array $args, $str)
   {
     if (count($args) < 1) {
       trigger_error("Missing 's' substr modifier parameter");
@@ -295,17 +295,17 @@ class templateHandling
       array_unshift($args, 0);
     }
     if (preg_match('/^(\d+)-(\d+)$/', $args[1], $m)) {
-      $res = array();
+      $res = [];
       for ($i = $m[1];$i < $m[2]; ++$i) {
         $res[] = mb_substr($str, $args[0], $i);
       }
       return array_unique($res);
     } else {
-      return array(mb_substr($str, $args[0], $args[1]));
+      return [mb_substr($str, $args[0], $args[1])];
     }
   }
 
-  private static function modifierRandomString(array $args)
+  private static function modifierRandomString (array $args)
   {
     $length = 8;
     $chars  = 'b';
@@ -355,7 +355,7 @@ class templateHandling
     return $res;
   }
 
-  private static function modifierDate(array $args)
+  private static function modifierDate (array $args)
   {
     if (count($args) < 1) {
       $args[] = 'now';
@@ -366,9 +366,9 @@ class templateHandling
     $dateObject = new DateTime($args[0], new DateTimeZone('UTC'));
     if ($args[1] == 'epoch') {
       /* Special handling for shadowExpire: days since epoch */
-      return array(floor($dateObject->format('U') / 86400));
+      return [floor($dateObject->format('U') / 86400)];
     }
-    return array($dateObject->format($args[1]));
+    return [$dateObject->format($args[1])];
   }
 
   /*! \brief Apply a modifier
@@ -379,7 +379,7 @@ class templateHandling
    *
    * \return array an array of possible values
    * */
-  protected static function applyModifier($m, array $args, $str)
+  protected static function applyModifier ($m, array $args, $str)
   {
     mb_internal_encoding('UTF-8');
     mb_regex_encoding('UTF-8');
@@ -387,27 +387,27 @@ class templateHandling
       /* $str is an array and $m is lowercase, so it's a string modifier */
       $str = reset($str);
     }
-    $result = array($str);
+    $result = [$str];
     switch ($m) {
       case 'F':
         // First
-        $result = array(reset($str));
+        $result = [reset($str)];
         break;
       case 'L':
         // Last
-        $result = array(end($str));
+        $result = [end($str)];
         break;
       case 'J':
         // Join
         if (isset($args[0])) {
-          $result = array(join($args[0], $str));
+          $result = [join($args[0], $str)];
         } else {
-          $result = array(join($str));
+          $result = [join($str)];
         }
         break;
       case 'C':
         // Count
-        $result = array(count($str));
+        $result = [count($str)];
         break;
       case 'M':
         // Match
@@ -415,40 +415,40 @@ class templateHandling
           trigger_error('Missing "M" match modifier parameter');
           $args[] = '/.*/';
         }
-        $result = array(array_filter(
+        $result = [array_filter(
           $str,
           function ($s) use ($args)
           {
             return preg_match($args[0], $s);
           }
-        ));
+        )];
         break;
       case '4':
         // IPv4
-        $result = array(array_filter($str, 'tests::is_ipv4'));
+        $result = [array_filter($str, 'tests::is_ipv4')];
         break;
       case '6':
         // IPv6
-        $result = array(array_filter($str, 'tests::is_ipv6'));
+        $result = [array_filter($str, 'tests::is_ipv6')];
         break;
       case 'c':
         // comment
-        $result = array('');
+        $result = [''];
         break;
       case 'b':
         // base64
         if (isset($args[0]) && ($args[0] == 'd')) {
-          $result = array(base64_decode($str));
+          $result = [base64_decode($str)];
         }
-        $result = array(base64_encode($str));
+        $result = [base64_encode($str)];
         break;
       case 'u':
         // uppercase
-        $result = array(mb_strtoupper($str, 'UTF-8'));
+        $result = [mb_strtoupper($str, 'UTF-8')];
         break;
       case 'l':
         // lowercase
-        $result = array(mb_strtolower($str, 'UTF-8'));
+        $result = [mb_strtolower($str, 'UTF-8')];
         break;
       case 'a':
         // remove accent
@@ -468,22 +468,22 @@ class templateHandling
         break;
       case 'r':
         // random string
-        $result = array(static::modifierRandomString($args));
+        $result = [static::modifierRandomString($args)];
         break;
       case 'd':
         // date
-        $result = array(static::modifierDate($args));
+        $result = [static::modifierDate($args)];
         break;
       default:
         trigger_error("Unkown modifier '$m'");
-        $result = array($str);
+        $result = [$str];
         break;
     }
     return $result;
   }
 
   /*! \brief Flattens dependencies (if a depends of b which depends of c then a depends of c) */
-  protected static function flatDepends (&$cache, &$errors, $depends, $key, array $forbidden = array())
+  protected static function flatDepends (&$cache, &$errors, $depends, $key, array $forbidden = [])
   {
     if (isset($cache[$key])) {
       return $cache[$key];
@@ -501,9 +501,9 @@ class templateHandling
               $key,
               $a
             );
-            return array();
+            return [];
           }
-          $deps = static::flatDepends ($cache, $errors, $depends, $a, $forbidden);
+          $deps = static::flatDepends($cache, $errors, $depends, $a, $forbidden);
           if (($askmeKey = array_search('askme', $deps)) !== FALSE) {
             /* Do not flat special askme dependency */
             unset($deps[$askmeKey]);
@@ -518,16 +518,16 @@ class templateHandling
   }
 
   /*! \brief Computes dependencies between attributes: which attributes must be filled in order to compute each attribute value */
-  protected static function attributesDependencies(array $attrs)
+  protected static function attributesDependencies (array $attrs)
   {
     /* Compute dependencies of each attr */
-    $depends = array();
+    $depends = [];
     foreach ($attrs as $key => $values) {
-      $depends[$key] = array();
+      $depends[$key] = [];
       if (!is_array($values))  {
-        $values = array($values);
+        $values = [$values];
       }
-      unset ($values['count']);
+      unset($values['count']);
       foreach ($values as $value) {
         $offset = 0;
         while (preg_match('/%([^%\|]+\|)?([^%]+)%/', $value, $m, PREG_OFFSET_CAPTURE, $offset)) {
@@ -535,23 +535,23 @@ class templateHandling
           $depends[$key][] = $m[2][0];
           if (!isset($attrs[$m[2][0]])) {
             /* Dependency which has no value might be missing */
-            $attrs[$m[2][0]]    = array();
-            $depends[$m[2][0]]  = array();
+            $attrs[$m[2][0]]    = [];
+            $depends[$m[2][0]]  = [];
           }
         }
       }
     }
     /* Flattens dependencies */
-    $flatdepends  = array();
-    $errors       = array();
+    $flatdepends  = [];
+    $errors       = [];
     foreach ($depends as $key => $value) {
       static::flatDepends($flatdepends, $errors, $depends, $key);
     }
-    return array($flatdepends, $errors);
+    return [$flatdepends, $errors];
   }
 
   /*! \brief Sort attrs depending of dependencies */
-  protected static function sortAttributes(array $attrs, array $flatdepends)
+  protected static function sortAttributes (array $attrs, array $flatdepends)
   {
     uksort($attrs, function ($k1, $k2) use ($flatdepends) {
       if (in_array($k1, $flatdepends[$k2])) {
diff --git a/include/class_tests.inc b/include/class_tests.inc
index 80d61e6968b162c44ec70691ed083e354352440b..b239d89ab3c957d6ba247a7583936e7ab5c4a6ae 100644
--- a/include/class_tests.inc
+++ b/include/class_tests.inc
@@ -45,13 +45,13 @@ class tests
    *
    * \param string $nr The phone number to check
    */
-  public static function is_phone_nr($nr)
+  public static function is_phone_nr ($nr)
   {
     if ($nr == "") {
       return TRUE;
     }
 
-    return preg_match ("/^[\/0-9 ()+*-]+$/", $nr);
+    return preg_match("/^[\/0-9 ()+*-]+$/", $nr);
   }
 
 
@@ -60,7 +60,7 @@ class tests
    *
    * \param string $str The DNS to check
    */
-  public static function is_dns_name($str)
+  public static function is_dns_name ($str)
   {
     return preg_match("/^[a-z0-9\.\-_]*$/i", $str);
   }
@@ -71,7 +71,7 @@ class tests
    *
    * \param string $str The hostname to check
    */
-  public static function is_valid_hostname($str)
+  public static function is_valid_hostname ($str)
   {
     return preg_match("/^[a-z0-9\.\-]*$/i", $str);
   }
@@ -82,14 +82,14 @@ class tests
    *
    * \param string $url The URL to check
    */
-  public static function is_url($url)
+  public static function is_url ($url)
   {
     if ($url == "") {
       return TRUE;
     }
 
     /* Using @stephenhay regexp from http://mathiasbynens.be/demo/url-regex (removed ftp through) */
-    return preg_match ("@^(https?)://[^\s/$.?#].[^\s]*$@i", $url);
+    return preg_match("@^(https?)://[^\s/$.?#].[^\s]*$@i", $url);
   }
 
 
@@ -98,13 +98,13 @@ class tests
    *
    * \param string $dn The DN to check
    */
-  public static function is_dn($dn)
+  public static function is_dn ($dn)
   {
     if ($dn == "") {
       return TRUE;
     }
 
-    return preg_match ("/^[a-z0-9 _-]+$/i", $dn);
+    return preg_match("/^[a-z0-9 _-]+$/i", $dn);
   }
 
 
@@ -113,7 +113,7 @@ class tests
    *
    * \param string $uid The UID to check
    */
-  public static function is_uid($uid)
+  public static function is_uid ($uid)
   {
     if ($uid == "") {
       return TRUE;
@@ -122,9 +122,9 @@ class tests
     /* STRICT adds spaces and case insenstivity to the uid check.
        This is dangerous and should not be used. */
     if (strict_uid_mode()) {
-      return preg_match ("/^[a-z0-9_-]+$/", $uid);
+      return preg_match("/^[a-z0-9_-]+$/", $uid);
     } else {
-      return preg_match ("/^[a-z0-9 _.-]+$/i", $uid);
+      return preg_match("/^[a-z0-9 _.-]+$/i", $uid);
     }
   }
 
@@ -133,7 +133,7 @@ class tests
    *
    * \param string $ip The IP to check
    */
-  public static function is_ip($ip)
+  public static function is_ip ($ip)
   {
     return filter_var($ip, FILTER_VALIDATE_IP);
   }
@@ -143,7 +143,7 @@ class tests
    *
    * \param string $ip The IPv4 to check
    */
-  public static function is_ipv4($ip)
+  public static function is_ipv4 ($ip)
   {
     return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
   }
@@ -153,7 +153,7 @@ class tests
    *
    * \param string $ip The IPv6 to check
    */
-  public static function is_ipv6($ip)
+  public static function is_ipv6 ($ip)
   {
     return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
   }
@@ -164,7 +164,7 @@ class tests
    *
    * \param string $mac The MAC address to check
    */
-  public static function is_mac($mac)
+  public static function is_mac ($mac)
   {
     return preg_match("/^[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]$/i", $mac);
   }
@@ -176,10 +176,10 @@ class tests
    *
    * \param string $ip The IP to check
    */
-  public static function is_ip_with_subnetmask($ip)
+  public static function is_ip_with_subnetmask ($ip)
   {
     /* Generate list of valid submasks */
-    $res = array();
+    $res = [];
     for ($e = 0; $e <= 32; $e++) {
       $res[$e] = $e;
     }
@@ -222,7 +222,7 @@ class tests
    *
    * \param string $str The domain to check
    */
-  public static function is_domain($str)
+  public static function is_domain ($str)
   {
     return preg_match("/^(([a-z0-9\-]{2,63})\.)*[a-z]{2,63}$/i", $str);
   }
@@ -233,13 +233,13 @@ class tests
    *
    * \param string $id The id to check
    */
-  public static function is_id($id)
+  public static function is_id ($id)
   {
     if ($id == "") {
       return FALSE;
     }
 
-    return preg_match ("/^[0-9]+$/", $id);
+    return preg_match("/^[0-9]+$/", $id);
   }
 
 
@@ -248,7 +248,7 @@ class tests
    *
    * \param string $path The path to check
    */
-  public static function is_path($path)
+  public static function is_path ($path)
   {
     if ($path == "") {
       return TRUE;
@@ -257,7 +257,7 @@ class tests
       return FALSE;
     }
 
-    return preg_match ("/\/.+$/", $path);
+    return preg_match("/\/.+$/", $path);
   }
 
 
@@ -266,7 +266,7 @@ class tests
    *
    * \param string $address The email address
    */
-  public static function is_email($address)
+  public static function is_email ($address)
   {
     if ($address == "") {
       return TRUE;
@@ -288,10 +288,10 @@ class tests
    *
    * \param string $base
    */
-  public static function is_department_name_reserved($name)
+  public static function is_department_name_reserved ($name)
   {
     global $config;
-    $reservedNames = array();
+    $reservedNames = [];
     foreach ($config->data['OBJECTS'] as $infos) {
       if (isset($infos['ou'])) {
         if ($infos['ou'] != '') {
@@ -315,7 +315,7 @@ class tests
    *
    * \return TRUE in case of a valid range, FALSE in case of an error.
    */
-  public static function is_ip_range($ip1, $ip2)
+  public static function is_ip_range ($ip1, $ip2)
   {
     if (!tests::is_ipv4($ip1) || !tests::is_ipv4($ip2)) {
       return FALSE;
@@ -339,7 +339,7 @@ class tests
    *
    * \param string $address The IP address
    */
-  public static function is_in_network($network, $netmask, $address)
+  public static function is_in_network ($network, $netmask, $address)
   {
     $nw = explode('.', $network);
     $nm = explode('.', $netmask);
@@ -360,7 +360,7 @@ class tests
   }
 
   /* \brief Check if the specified IP address $address is inside the given network */
-  public static function is_in_ip_range($from, $to, $address)
+  public static function is_in_ip_range ($from, $to, $address)
   {
     $from = explode('.', $from);
     $to   = explode('.', $to);
diff --git a/include/class_timezone.inc b/include/class_timezone.inc
index 315b1b5cae627835d4a9a725978c25928192ab31..a36d51d13de3ee71d07f3d6bbb718ef107ad9681 100644
--- a/include/class_timezone.inc
+++ b/include/class_timezone.inc
@@ -36,7 +36,7 @@ class timezone
    *
    * \return TRUE upon success, FALSE otherwise
    */
-  static public function setDefaultTimezoneFromConfig()
+  static public function setDefaultTimezoneFromConfig ()
   {
     global $config;
 
@@ -63,7 +63,7 @@ class timezone
    * deprecated
    * \param $stamp is used to detect summer or winter time.
    */
-  static public function get_default_timezone($stamp = NULL)
+  static public function get_default_timezone ($stamp = NULL)
   {
     global $config;
 
@@ -77,9 +77,9 @@ class timezone
       $tz       = $config->get_cfg_value('timezone');
       $tz_delta = date('Z', $stamp);
       $tz_delta = $tz_delta / 3600;
-      return array('name' => $tz, 'value' => $tz_delta);
+      return ['name' => $tz, 'value' => $tz_delta];
     } else {
-      return array('name' => 'unconfigured', 'value' => 0);
+      return ['name' => 'unconfigured', 'value' => 0];
     }
   }
 
@@ -88,19 +88,19 @@ class timezone
    *
    * \return Time zone informations
    */
-  static public function _get_tz_zones()
+  static public function _get_tz_zones ()
   {
     return DateTimeZone::listIdentifiers();
   }
 
   /* \brief Return default timezone as a DateTimeZone object */
-  static public function getDefaultTimeZone()
+  static public function getDefaultTimeZone ()
   {
     return new DateTimeZone(date_default_timezone_get());
   }
 
   /* \brief Return UTC timezone as a DateTimeZone object */
-  static public function utc()
+  static public function utc ()
   {
     static $utc;
     if (!isset($utc)) {
diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc
index 38c1d7615d5ab5d23682b3960efd3580f22a1fb5..07f579dc18877157acd8e8eb0e3c285b9836c6ac 100644
--- a/include/class_userinfo.inc
+++ b/include/class_userinfo.inc
@@ -39,22 +39,22 @@ class userinfo
   var $givenName    = '';
   var $gidNumber    = -1;
   var $language     = "";
-  var $subtreeACL   = array();
-  var $ACL          = array();
-  var $groups       = array();
-  var $roles        = array();
-  var $result_cache = array();
+  var $subtreeACL   = [];
+  var $ACL          = [];
+  var $groups       = [];
+  var $roles        = [];
+  var $result_cache = [];
   var $ignoreACL    = FALSE;
 
-  var $ACLperPath             = array();
-  var $ACLperPath_usesFilter  = array();
+  var $ACLperPath             = [];
+  var $ACLperPath_usesFilter  = [];
 
   /*! \brief LDAP size limit handler */
   protected $sizeLimitHandler;
 
   /* get acl's an put them into the userinfo object
      attr subtreeACL (userdn:components, userdn:component1#sub1#sub2,component2,...) */
-  function __construct($userdn)
+  function __construct ($userdn)
   {
     global $config;
     $this->dn         = $userdn;
@@ -69,11 +69,11 @@ class userinfo
   }
 
   /*! \brief Loads user information from LDAP */
-  function loadLDAPInfo()
+  function loadLDAPInfo ()
   {
     global $config;
     $ldap = $config->get_ldap_link();
-    $ldap->cat($this->dn, array('cn', 'sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage'));
+    $ldap->cat($this->dn, ['cn', 'sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage']);
     $attrs = $ldap->fetch();
 
     $this->uid = $attrs['uid'][0];
@@ -104,54 +104,54 @@ class userinfo
   /*!
   * \brief Reset acl cache
   */
-  public function reset_acl_cache()
+  public function reset_acl_cache ()
   {
     /* Initialize ACL_CACHE */
-    session::global_set('ACL_CACHE', array());
+    session::set('ACL_CACHE', []);
   }
 
   /*!
    * \brief Load an acl
    */
-  function loadACL()
+  function loadACL ()
   {
     global $config;
-    $this->ACL          = array();
-    $this->groups       = array();
-    $this->roles        = array();
-    $this->result_cache = array();
+    $this->ACL          = [];
+    $this->groups       = [];
+    $this->roles        = [];
+    $this->result_cache = [];
     $this->reset_acl_cache();
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
 
     /* Get member groups... */
-    $ldap->search('(&(objectClass=groupOfNames)(member='.ldap_escape_f($this->dn).'))', array('dn'));
+    $ldap->search('(&(objectClass=groupOfNames)(member='.ldap_escape_f($this->dn).'))', ['dn']);
     while ($attrs = $ldap->fetch()) {
       $this->groups[$attrs['dn']] = $attrs['dn'];
     }
 
     /* Get member POSIX groups... */
-    $ldap->search('(&(objectClass=posixGroup)(memberUid='.ldap_escape_f($this->uid).'))', array('dn'));
+    $ldap->search('(&(objectClass=posixGroup)(memberUid='.ldap_escape_f($this->uid).'))', ['dn']);
     while ($attrs = $ldap->fetch()) {
       $this->groups[$attrs['dn']] = $attrs['dn'];
     }
 
     /* Get member roles... */
-    $ldap->search('(&(objectClass=organizationalRole)(roleOccupant='.ldap_escape_f($this->dn).'))', array('dn'));
+    $ldap->search('(&(objectClass=organizationalRole)(roleOccupant='.ldap_escape_f($this->dn).'))', ['dn']);
     while ($attrs = $ldap->fetch()) {
       $this->roles[$attrs['dn']] = $attrs['dn'];
     }
 
     /* Crawl through ACLs and move relevant to the tree */
-    $ldap->search("(objectClass=gosaACL)", array('dn', 'gosaAclEntry'));
-    $aclp = array();
-    $aclc = array();
+    $ldap->search("(objectClass=gosaACL)", ['dn', 'gosaAclEntry']);
+    $aclp = [];
+    $aclc = [];
     while ($attrs = $ldap->fetch()) {
 
       /* Insert links in ACL array */
       $aclp[$attrs['dn']] = substr_count($attrs['dn'], ',');
-      $aclc[$attrs['dn']] = array();
-      $ol = array();
+      $aclc[$attrs['dn']] = [];
+      $ol = [];
       for ($i = 0; $i < $attrs['gosaAclEntry']['count']; $i++) {
         $ol = array_merge($ol, acl::explodeAcl($attrs['gosaAclEntry'][$i]));
       }
@@ -163,18 +163,18 @@ class userinfo
       foreach ($data as $prio => $aclc_value) {
         unset($aclc[$dn][$prio]);
 
-        $ldap->cat($aclc_value['acl'], array("gosaAclTemplate"));
+        $ldap->cat($aclc_value['acl'], ["gosaAclTemplate"]);
         $attrs = $ldap->fetch();
 
         if (isset($attrs['gosaAclTemplate'])) {
           $roleAcls = acl::explodeRole($attrs['gosaAclTemplate']);
           foreach ($roleAcls as $roleAcl) {
-            $aclc[$dn][]  = array(
+            $aclc[$dn][]  = [
               'acl'     => $roleAcl,
               'type'    => $aclc_value['type'],
               'members' => $aclc_value['members'],
               'filter'  => $aclc_value['filter']
-            );
+            ];
           }
         }
       }
@@ -219,7 +219,7 @@ class userinfo
 
         if ($interresting) {
           if (!isset($this->ACL[$dn])) {
-            $this->ACL[$dn] = array();
+            $this->ACL[$dn] = [];
           }
           $this->ACL[$dn][$idx] = $type;
         }
@@ -240,7 +240,7 @@ class userinfo
       For object located in 'ou=dep1,ou=base' we have to both ACLs,
        for objects in 'ou=base' we only have to apply on ACL.
      */
-    $without_self_acl = $all_acl = array();
+    $without_self_acl = $all_acl = [];
     foreach ($this->ACL as $dn => $acl) {
       $sdn = $dn;
       do {
@@ -250,7 +250,7 @@ class userinfo
           foreach ($without_self_acl[$sdn][$dn] as $acl_id => $acl_set) {
 
             /* Remember which ACL set has speicial user filter */
-            if (isset($acl_set['filter']{1})) {
+            if (isset($acl_set['filter'][1])) {
               $this->ACLperPath_usesFilter[$sdn] = TRUE;
             }
 
@@ -282,7 +282,7 @@ class userinfo
    *
    * \return Return the next id or NULL if failed
    */
-  function get_acl_target_objects()
+  function get_acl_target_objects ()
   {
     return array_keys($this->ACLperPath);
   }
@@ -296,7 +296,7 @@ class userinfo
    *
    * \return all the permissions for the dn and category
    */
-  function get_category_permissions($dn, $category)
+  function get_category_permissions ($dn, $category)
   {
     return @$this->get_permissions($dn, $category.'/0', '');
   }
@@ -311,7 +311,7 @@ class userinfo
    *
    * \return boolean TRUE if the given object is copyable else FALSE
   */
-  function is_copyable($dn, $object)
+  function is_copyable ($dn, $object)
   {
     return (strpos($this->get_complete_category_acls($dn, $object), 'r') !== FALSE);
   }
@@ -328,7 +328,7 @@ class userinfo
    *
    * \return boolean TRUE if the given object is cutable else FALSE
    */
-  function is_cutable($dn, $object, $class)
+  function is_cutable ($dn, $object, $class)
   {
     $remove = (strpos($this->get_permissions($dn, $object.'/'.$class), 'd') !== FALSE);
     $read   = (strpos($this->get_complete_category_acls($dn, $object), 'r') !== FALSE);
@@ -345,7 +345,7 @@ class userinfo
    *
    * \return Boolean TRUE if we are allowed to paste an object.
    */
-  function is_pasteable($dn, $object)
+  function is_pasteable ($dn, $object)
   {
     return (strpos($this->get_complete_category_acls($dn, $object), 'w') !== FALSE);
   }
@@ -362,7 +362,7 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to restore a snapshot.
    */
-  function allow_snapshot_restore($dn, $categories, $deleted)
+  function allow_snapshot_restore ($dn, $categories, $deleted)
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array(($deleted ? 'restore_deleted' : 'restore_over'), $permissions);
@@ -378,7 +378,7 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to create a snapshot.
    */
-  function allow_snapshot_create($dn, $categories)
+  function allow_snapshot_create ($dn, $categories)
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array('c', $permissions);
@@ -394,20 +394,20 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to delete a snapshot.
    */
-  function allow_snapshot_delete($dn, $categories)
+  function allow_snapshot_delete ($dn, $categories)
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array('d', $permissions);
   }
 
-  function get_snapshot_permissions($dn, $categories)
+  function get_snapshot_permissions ($dn, $categories)
   {
     if (!is_array($categories)) {
-      $categories = array($categories);
+      $categories = [$categories];
     }
     /* Possible permissions for snapshots */
-    $objectPermissions    = array('r', 'c', 'd');
-    $attributePermissions = array('restore_over', 'restore_deleted');
+    $objectPermissions    = ['r', 'c', 'd'];
+    $attributePermissions = ['restore_over', 'restore_deleted'];
     foreach ($categories as $category) {
       $acl = $this->get_permissions($dn, $category.'/SnapshotHandler');
       foreach ($objectPermissions as $i => $perm) {
@@ -437,7 +437,7 @@ class userinfo
    * \param bool $skip_write   Remove the write acl for this dn
    *
    */
-  function get_permissions($dn, $object, $attribute = "", $skip_write = FALSE)
+  function get_permissions ($dn, $object, $attribute = "", $skip_write = FALSE)
   {
     global $config;
     /* If we are forced to skip ACLs checks for the current user
@@ -451,11 +451,11 @@ class userinfo
     }
 
     /* Push cache answer? */
-    $ACL_CACHE = &session::global_get_ref('ACL_CACHE');
+    $ACL_CACHE = &session::get_ref('ACL_CACHE');
     if (isset($ACL_CACHE["$dn+$object+$attribute"])) {
       $ret = $ACL_CACHE["$dn+$object+$attribute"];
       if ($skip_write) {
-        $ret = str_replace(array('w','c','d','m'), '', $ret);
+        $ret = str_replace(['w','c','d','m'], '', $ret);
       }
       return $ret;
     }
@@ -485,7 +485,7 @@ class userinfo
           $ACL_CACHE["$orig_dn+$object+$attribute"] = $ret;
         }
         if ($skip_write) {
-          $ret = str_replace(array('w','c','d','m'), '', $ret);
+          $ret = str_replace(['w','c','d','m'], '', $ret);
         }
         return $ret;
       }
@@ -494,7 +494,7 @@ class userinfo
     /* Get ldap object, for later filter checks */
     $ldap = $config->get_ldap_link();
 
-    $acl = array('r' => '', 'w' => '', 'c' => '', 'd' => '', 'm' => '', 'a' => '');
+    $acl = ['r' => '', 'w' => '', 'c' => '', 'd' => '', 'm' => '', 'a' => ''];
 
     /* Build dn array */
     $path = explode(',', $dn);
@@ -630,7 +630,7 @@ class userinfo
 
     /* Remove write if needed */
     if ($skip_write) {
-      $ret = str_replace(array('w','c','d','m'), '', $ret);
+      $ret = str_replace(['w','c','d','m'], '', $ret);
     }
     return $ret;
   }
@@ -647,7 +647,7 @@ class userinfo
    *
    * \return array Return all accessible departments
    */
-  function get_module_departments($module, $skip_self_acls = FALSE )
+  function get_module_departments ($module, $skip_self_acls = FALSE )
   {
     global $config;
     /* If we are forced to skip ACLs checks for the current user
@@ -658,20 +658,20 @@ class userinfo
     }
 
     /* Use cached results if possilbe */
-    $ACL_CACHE = &session::global_get_ref('ACL_CACHE');
+    $ACL_CACHE = &session::get_ref('ACL_CACHE');
 
     if (!is_array($module)) {
-      $module = array($module);
+      $module = [$module];
     }
 
-    $res = array();
+    $res = [];
     foreach ($module as $mod) {
       if (isset($ACL_CACHE['MODULE_DEPARTMENTS'][$mod])) {
         $res = array_merge($res, $ACL_CACHE['MODULE_DEPARTMENTS'][$mod]);
         continue;
       }
 
-      $deps = array();
+      $deps = [];
 
       /* Search for per object ACLs */
       foreach ($this->ACL as $dn => $infos) {
@@ -731,9 +731,9 @@ class userinfo
    *
    * \param $newACL The new ACL
    */
-  function mergeACL($acl, $type, $newACL)
+  function mergeACL ($acl, $type, $newACL)
   {
-    $at = array("subtree" => "s", "one" => "1");
+    $at = ["subtree" => "s", "one" => "1"];
 
     if ((strpos($newACL, 'w') !== FALSE) && (strpos($newACL, 'r') === FALSE)) {
       $newACL .= "r";
@@ -772,7 +772,7 @@ class userinfo
    *
    * \param boolean $reset FALSE
    */
-  function cleanACL($acl, $reset = FALSE)
+  function cleanACL ($acl, $reset = FALSE)
   {
     foreach ($acl as $key => $value) {
       /* Continue, if value is empty or subtree */
@@ -815,7 +815,7 @@ class userinfo
    *
    * \return string return acl combined with boolean AND
    */
-  function get_complete_category_acls($dn, $category)
+  function get_complete_category_acls ($dn, $category)
   {
     global $config;
 
@@ -856,7 +856,7 @@ class userinfo
    * \return Returns TRUE if the current user is configured in IGNORE_ACL=".."
    *  in your fusiondirectory.conf FALSE otherwise
    */
-  function ignore_acl_for_current_user()
+  function ignore_acl_for_current_user ()
   {
     return $this->ignoreACL;
   }
@@ -897,8 +897,8 @@ class userinfo
     $current  = floor(date("U") / 60 / 60 / 24);
 
     // Fetch required attributes
-    foreach (array('shadowExpire','shadowLastChange','shadowMax','shadowMin',
-                'shadowInactive','shadowWarning','sambaKickoffTime') as $attr) {
+    foreach (['shadowExpire','shadowLastChange','shadowMax','shadowMin',
+                'shadowInactive','shadowWarning','sambaKickoffTime'] as $attr) {
       $$attr = (isset($attrs[$attr][0]) ? $attrs[$attr][0] : NULL);
     }
 
@@ -988,7 +988,7 @@ class userinfo
 
   /* \brief Check if a user is a 'user admin'
    */
-  function is_user_admin()
+  function is_user_admin ()
   {
     global $config;
     if (empty($this->ACLperPath)) {
@@ -999,12 +999,12 @@ class userinfo
 
   /* \brief Test if a plugin is blacklisted for this user (does not show up in the menu)
    */
-  function isBlacklisted($plugin)
+  function isBlacklisted ($plugin)
   {
     global $config;
-    $blacklist = $config->get_cfg_value('PluginsMenuBlacklist', array());
+    $blacklist = $config->get_cfg_value('PluginsMenuBlacklist', []);
     foreach ($blacklist as $item) {
-      list ($group, $p) = explode('|', $item, 2);
+      list($group, $p) = explode('|', $item, 2);
       if ($plugin == $p) {
         if (in_array($group, $this->groups) || in_array($group, $this->roles)) {
           return TRUE;
@@ -1019,11 +1019,11 @@ class userinfo
    *
    * \return The ACL category, or FALSE if not found, or TRUE if acl check should be bypassed
    */
-  function getAttributeCategory($type, $attribute)
+  function getAttributeCategory ($type, $attribute)
   {
     global $config;
 
-    if (in_array_ics($attribute, array('objectClass', 'dn'))) {
+    if (in_array_ics($attribute, ['objectClass', 'dn'])) {
       return TRUE;
     }
 
@@ -1052,7 +1052,7 @@ class userinfo
     return FALSE;
   }
 
-  function getSizeLimitHandler()
+  function getSizeLimitHandler ()
   {
     return $this->sizeLimitHandler;
   }
diff --git a/include/class_xml.inc b/include/class_xml.inc
index aeec46690a09b15e384664053159c21c508a4780..459bfecd3168b199a21d80606281eb07e33e8419 100644
--- a/include/class_xml.inc
+++ b/include/class_xml.inc
@@ -38,15 +38,15 @@ class xml {
    *
    * \param string $priority Initialized at 'tag'
    */
-  static function xml2array($contents, $get_attributes = 1, $priority = 'tag')
+  static function xml2array ($contents, $get_attributes = 1, $priority = 'tag')
   {
     if (!$contents) {
-      return array();
+      return [];
     }
 
     if (!function_exists('xml_parser_create')) {
       trigger_error('xml_parser_create function does not exists');
-      return array();
+      return [];
     }
 
     //Get the XML parser of PHP - PHP must have this module for the parser to work
@@ -62,12 +62,12 @@ class xml {
     }
 
     //Initializations
-    $xml_array    = array();
+    $xml_array    = [];
 
     $current = &$xml_array; //Refference
 
     //Go through the tags.
-    $repeated_tag_index = array();//Multiple tags with same name will be turned into an array
+    $repeated_tag_index = [];//Multiple tags with same name will be turned into an array
     foreach ($xml_values as $data) {
       unset($attributes, $value);//Remove existing values, or there will be trouble
 
@@ -75,8 +75,8 @@ class xml {
       // tag(string), type(string), level(int), attributes(array).
       extract($data);//We could use the array by itself, but this cooler.
 
-      $result = array();
-      $attributes_data = array();
+      $result = [];
+      $attributes_data = [];
 
       if (isset($value)) {
         if ($priority == 'tag') {
@@ -117,7 +117,7 @@ class xml {
             $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
             $repeated_tag_index[$tag.'_'.$level]++;
           } else {//This section will make the value an array if multiple tags with the same name appear together
-            $current[$tag] = array($current[$tag],$result);//This will combine the existing item and the new item together to make an array
+            $current[$tag] = [$current[$tag],$result];//This will combine the existing item and the new item together to make an array
             $repeated_tag_index[$tag.'_'.$level] = 2;
 
             if (isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
@@ -148,7 +148,7 @@ class xml {
             $repeated_tag_index[$tag.'_'.$level]++;
 
           } else { //If it is not an array...
-            $current[$tag] = array($current[$tag],$result); //...Make it an array using using the existing value and the new value
+            $current[$tag] = [$current[$tag],$result]; //...Make it an array using using the existing value and the new value
             $repeated_tag_index[$tag.'_'.$level] = 1;
             if ($priority == 'tag' and $get_attributes) {
               if (isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
diff --git a/include/exporter/class_PDF.php b/include/exporter/class_PDF.php
index d521ef84288943f0edade1ca07403e2b5a1d3e8e..dea0b7dfb6d45ac071bf83e795261dcfbd750703 100644
--- a/include/exporter/class_PDF.php
+++ b/include/exporter/class_PDF.php
@@ -36,7 +36,7 @@ class PDF extends FPDF
    *
    * \param string $headline
    */
-  function setHeadline($headline)
+  function setHeadline ($headline)
   {
     $this->headline = $headline;
   }
@@ -44,7 +44,7 @@ class PDF extends FPDF
   /*!
    * \brief Set font and cell for the header page
    */
-  function Header()
+  function Header ()
   {
     $this->SetFont('Helvetica', 'B', 10);
     $this->Cell(0, 0, $this->headline, 0, 0, 'L');
@@ -54,7 +54,7 @@ class PDF extends FPDF
   /*!
    * \brief Set position from the bottom and the number of the page
    */
-  function Footer()
+  function Footer ()
   {
     $this->SetY(-15);
     $this->SetFont('Helvetica', 'I', 8);
diff --git a/include/exporter/class_cvsExporter.inc b/include/exporter/class_cvsExporter.inc
index 10f011720d2e2c5b999f5a9ff3481db976993b31..ea610b4a375cff9ff16b100ffd841b75d916d436 100644
--- a/include/exporter/class_cvsExporter.inc
+++ b/include/exporter/class_cvsExporter.inc
@@ -43,7 +43,7 @@ class csvExporter
    *
    * \param array $columns
    */
-  function __construct($headline, $header, $entries, $columns = array())
+  function __construct ($headline, $header, $entries, $columns = [])
   {
     // If no preset, render all columns
     if (!count($columns)) {
@@ -79,7 +79,7 @@ class csvExporter
   /*!
    * \brief Get the result
    */
-  function query()
+  function query ()
   {
      return $this->result;
   }
@@ -88,9 +88,9 @@ class csvExporter
   /*!
    * \brief Get Informations
    */
-  static function getInfo()
+  static function getInfo ()
   {
-    return array("exportCSV" => array( "label" => _("CSV"), "image" => "geticon.php?context=mimetypes&icon=text-csv&size=16", "class" => "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ));
+    return ["exportCSV" => [ "label" => _("CSV"), "image" => "geticon.php?context=mimetypes&icon=text-csv&size=16", "class" => "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ]];
   }
 
 }
diff --git a/include/exporter/class_pdfExporter.inc b/include/exporter/class_pdfExporter.inc
index 75d3c396f2ca422c2ef766769dce43c329915643..25f97bfe742fa350d0a60ff5f4da53d0b69fc717 100644
--- a/include/exporter/class_pdfExporter.inc
+++ b/include/exporter/class_pdfExporter.inc
@@ -51,7 +51,7 @@ class pdfExporter
    *
    * \param array $columns
    */
-  function __construct($headline, $header, $entries, $columns = array())
+  function __construct ($headline, $header, $entries, $columns = [])
   {
     // Bail out if no FPDF available
     if (!class_exists('FPDF')) {
@@ -139,9 +139,9 @@ class pdfExporter
    *
    * \param array $columns
    */
-  function calcWidth($header, $entries, $columns)
+  function calcWidth ($header, $entries, $columns)
   {
-    $width = array();
+    $width = [];
 
     // Locate longest value for each column
     foreach ($columns as $index) {
@@ -180,7 +180,7 @@ class pdfExporter
   /*!
    * \brief Get the result
    */
-  function query()
+  function query ()
   {
      return $this->result->Output("", "S");
   }
@@ -188,12 +188,12 @@ class pdfExporter
   /*!
    * \brief Get informations
    */
-  static function getInfo()
+  static function getInfo ()
   {
     // Check if class defined
     $classes = get_declared_classes();
     if (in_array('FPDF', $classes)) {
-      return array("exportPDF" => array( "label" => _("PDF"), "image" => "geticon.php?context=mimetypes&icon=application-pdf&size=16", "class" => "pdfExporter", "mime" => "application/pdf", "filename" => "export.pdf" ));
+      return ["exportPDF" => [ "label" => _("PDF"), "image" => "geticon.php?context=mimetypes&icon=application-pdf&size=16", "class" => "pdfExporter", "mime" => "application/pdf", "filename" => "export.pdf" ]];
     } else {
       return NULL;
     }
diff --git a/include/functions.inc b/include/functions.inc
index 70ec569ee8b9b0f84cecc6f949860128939c28c8..6a0bbab3de9172e186744b58c10dd007bb7d4ab3 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -25,35 +25,35 @@
  */
 
 /* Define common locations and variables */
-require_once ('variables.inc');
+require_once('variables.inc');
 
 /* Include required files */
-require_once (CACHE_DIR.'/'.CLASS_CACHE);
+require_once(CACHE_DIR.'/'.CLASS_CACHE);
 require_once ('functions_debug.inc');
-require_once ('accept-to-gettext.inc');
+require_once('accept-to-gettext.inc');
 
 /* Define constants for debugging */
-define ('DEBUG_TRACE',    1); /*! Debug level for tracing of common actions (save, check, etc.) */
-define ('DEBUG_LDAP',     2); /*! Debug level for LDAP queries */
-define ('DEBUG_DB',       4); /*! Debug level for database operations */
-define ('DEBUG_SHELL',    8); /*! Debug level for shell commands */
-define ('DEBUG_POST',     16); /*! Debug level for POST content */
-define ('DEBUG_SESSION',  32); /*! Debug level for SESSION content */
-define ('DEBUG_CONFIG',   64); /*! Debug level for CONFIG information */
-define ('DEBUG_ACL',      128); /*! Debug level for ACL infos */
-define ('DEBUG_SI',       256); /*! Debug level for communication with Argonaut */
-define ('DEBUG_MAIL',     512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
-define ('DEBUG_FAI',      1024); /* FAI (incomplete) */
+define('DEBUG_TRACE',    1); /*! Debug level for tracing of common actions (save, check, etc.) */
+define('DEBUG_LDAP',     2); /*! Debug level for LDAP queries */
+define('DEBUG_DB',       4); /*! Debug level for database operations */
+define('DEBUG_SHELL',    8); /*! Debug level for shell commands */
+define('DEBUG_POST',     16); /*! Debug level for POST content */
+define('DEBUG_SESSION',  32); /*! Debug level for SESSION content */
+define('DEBUG_CONFIG',   64); /*! Debug level for CONFIG information */
+define('DEBUG_ACL',      128); /*! Debug level for ACL infos */
+define('DEBUG_SI',       256); /*! Debug level for communication with Argonaut */
+define('DEBUG_MAIL',     512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
+define('DEBUG_FAI',      1024); /* FAI(incomplete) */
 
 /* Define shadow states */
-define ('POSIX_ACCOUNT_EXPIRED', 1);
-define ('POSIX_WARN_ABOUT_EXPIRATION', 2);
-define ('POSIX_FORCE_PASSWORD_CHANGE', 4);
-define ('POSIX_DISALLOW_PASSWORD_CHANGE', 8);
+define('POSIX_ACCOUNT_EXPIRED', 1);
+define('POSIX_WARN_ABOUT_EXPIRATION', 2);
+define('POSIX_FORCE_PASSWORD_CHANGE', 4);
+define('POSIX_DISALLOW_PASSWORD_CHANGE', 8);
 
 /* Rewrite german 'umlauts' and spanish 'accents'
    to get better results */
-$REWRITE = array( "ä" => "ae",
+$REWRITE = [ "ä" => "ae",
     "ö" => "oe",
     "ü" => "ue",
     "Ä" => "Ae",
@@ -71,7 +71,7 @@ $REWRITE = array( "ä" => "ae",
     "Ó" => "O",
     "Ú" => "U",
     "ñ" => "ny",
-    "Ñ" => "Ny" );
+    "Ñ" => "Ny" ];
 
 
 /*!
@@ -83,7 +83,7 @@ $REWRITE = array( "ä" => "ae",
  *  \param array $class_name list of class name
  */
 
-function __fusiondirectory_autoload($class_name)
+function fusiondirectory_autoload ($class_name)
 {
   global $class_mapping, $BASE_DIR, $config;
 
@@ -106,7 +106,7 @@ function __fusiondirectory_autoload($class_name)
   if (isset($class_mapping["$class_name"])) {
     require_once($BASE_DIR.'/'.$class_mapping["$class_name"]);
   } else {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class_name, 'Could not load');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class_name, 'Could not load');
     if (isset($config) && is_object($config) &&
         $config->get_cfg_value('displayerrors') == 'TRUE') {
       list($trace,) = html_trace();
@@ -117,7 +117,7 @@ function __fusiondirectory_autoload($class_name)
     exit;
   }
 }
-spl_autoload_register('__fusiondirectory_autoload');
+spl_autoload_register('fusiondirectory_autoload');
 
 
 /*!
@@ -127,7 +127,7 @@ spl_autoload_register('__fusiondirectory_autoload');
  *
  * \return boolean Return TRUE if successfull FALSE otherwise
  */
-function class_available($name)
+function class_available ($name)
 {
   global $class_mapping;
   return isset($class_mapping[$name]);
@@ -143,7 +143,7 @@ function class_available($name)
  *
  * \return boolean Return TRUE if successfull FALSE otherwise
  */
-function plugin_available($plugin)
+function plugin_available ($plugin)
 {
   global $class_mapping, $BASE_DIR;
 
@@ -160,19 +160,19 @@ function plugin_available($plugin)
 function load_plist ($ldap_available = TRUE)
 {
   global $config, $plist;
-  if (!session::global_is_set('plist')) {
+  if (!session::is_set('plist')) {
     /* Initially load all classes */
     load_all_classes();
 
     $plist = new pluglist();
-    session::global_set('plist', $plist);
+    session::set('plist', $plist);
     $config->loadPlist($plist);
     if ($ldap_available) {
       $config->get_departments();
       $config->make_idepartments();
     }
   }
-  return session::global_get('plist');
+  return session::get('plist');
 }
 
 /*!
@@ -197,18 +197,18 @@ function load_plist ($ldap_available = TRUE)
  *
  * \param string $info Optional: Additional information
  */
-function DEBUG($level, $line, $function, $file, $data, $info = '')
+function DEBUG ($level, $line, $function, $file, $data, $info = '')
 {
   static $first = TRUE;
   if (($_SERVER['REQUEST_METHOD'] == 'POST') && preg_match('/index.php$/', $_SERVER['REQUEST_URI'])) {
     return;
   }
-  if (session::global_get('DEBUGLEVEL') & $level) {
+  if (session::get('DEBUGLEVEL') & $level) {
     if ($first) {
       echo '<div id="debug-handling" class="notice">'.
             '<img src="geticon.php?context=status&amp;icon=dialog-information&amp;size=22" alt="Information" style="vertical-align:middle;margin-right:.2em;"/>'.
             'There is some debug output '.
-            '<button onClick="javascript:$$(\'div.debug_div\').each(function (a) { a.toggle(); });">Toggle</button>'.
+            '<button onClick="javascript:$$(\'div.debug_div\').each(function (a) { a.toggle (); });">Toggle</button>'.
           '</div>';
       $first = FALSE;
     }
@@ -249,7 +249,7 @@ function DEBUG($level, $line, $function, $file, $data, $info = '')
  *
  * \return string Full path to the template file
  */
-function get_template_path($filename = '', $plugin = FALSE, $path = '')
+function get_template_path ($filename = '', $plugin = FALSE, $path = '')
 {
   global $config, $BASE_DIR;
   $default_theme = 'breezy';
@@ -269,19 +269,19 @@ function get_template_path($filename = '', $plugin = FALSE, $path = '')
   /* Return plugin dir or root directory? */
   if ($plugin) {
     if ($path == '') {
-      $path = session::global_get('plugin_dir');
+      $path = session::get('plugin_dir');
       $nf   = preg_replace('!^'.$BASE_DIR.'/!', '', preg_replace('/^\.\.\//', '', $path));
     } else {
       $nf = preg_replace('!^'.$BASE_DIR.'/!', '', $path);
     }
-    $paths = array(
+    $paths = [
       "$BASE_DIR/ihtml/themes/$theme/$nf/$filename",
       "$BASE_DIR/ihtml/themes/$default_theme/$nf/$filename",
       "$BASE_DIR/ihtml/themes/default/$nf/$filename",
       $path."/$filename"
-    );
+    ];
   } else {
-    $paths = array(
+    $paths = [
       "themes/$theme/$filename",
       "$BASE_DIR/ihtml/themes/$theme/$filename",
       "themes/$default_theme/$filename",
@@ -289,7 +289,7 @@ function get_template_path($filename = '', $plugin = FALSE, $path = '')
       "themes/default/$filename",
       "$BASE_DIR/ihtml/themes/default/$filename",
       $filename
-    );
+    ];
   }
 
   foreach ($paths as $path) {
@@ -312,7 +312,7 @@ function get_template_path($filename = '', $plugin = FALSE, $path = '')
  *
  * \param array $haystack original array to remove the entries from
  */
-function array_remove_entries(array $needles, array $haystack)
+function array_remove_entries (array $needles, array $haystack)
 {
   return array_values(array_diff($haystack, $needles));
 }
@@ -328,7 +328,7 @@ function array_remove_entries(array $needles, array $haystack)
  *
  * \param array $haystack original array to remove the entries from
  */
-function array_remove_entries_ics(array $needles, array $haystack)
+function array_remove_entries_ics (array $needles, array $haystack)
 {
   // strcasecmp will work, because we only compare ASCII values here
   return array_values(array_udiff($haystack, $needles, 'strcasecmp'));
@@ -346,7 +346,7 @@ function array_remove_entries_ics(array $needles, array $haystack)
  *
  * \return array
  */
-function array_merge_unique($ar1, $ar2)
+function array_merge_unique ($ar1, $ar2)
 {
   if (!is_array($ar1) || !is_array($ar2)) {
     trigger_error('Specified parameter(s) are not valid arrays.');
@@ -402,7 +402,7 @@ function ldap_init ($server, $base, $binddn = '', $pass = '')
 {
   global $config;
 
-  $ldap = new LDAP ($binddn, $pass, $server,
+  $ldap = new LDAP($binddn, $pass, $server,
       isset($config->current['LDAPFOLLOWREFERRALS']) && $config->current['LDAPFOLLOWREFERRALS'] == 'TRUE',
       isset($config->current['LDAPTLS']) && $config->current['LDAPTLS'] == 'TRUE');
 
@@ -415,7 +415,7 @@ function ldap_init ($server, $base, $binddn = '', $pass = '')
   }
 
   /* Preset connection base to $base and return to caller */
-  $ldap->cd ($base);
+  $ldap->cd($base);
   return $ldap;
 }
 
@@ -441,8 +441,8 @@ function ldap_get_user ($username)
     exit();
   }
 
-  $allowed_attributes = array('uid','mail');
-  $verify_attr = array();
+  $allowed_attributes = ['uid','mail'];
+  $verify_attr = [];
   $tmp = explode(',', $config->get_cfg_value('loginAttribute'));
   foreach ($tmp as $attr) {
     if (in_array($attr, $allowed_attributes)) {
@@ -451,7 +451,7 @@ function ldap_get_user ($username)
   }
 
   if (count($verify_attr) == 0) {
-    $verify_attr = array('uid');
+    $verify_attr = ['uid'];
   }
   $tmp    = $verify_attr;
   $tmp[]  = 'uid';
@@ -526,7 +526,7 @@ function ldap_login_user ($username, $password)
   }
   if (class_available('ppolicyAccount')) {
     $ldap->cd($config->current['BASE']);
-    $ldap->search('(objectClass=*)', array(), 'one');
+    $ldap->search('(objectClass=*)', [], 'one');
     if (!$ldap->success()) {
       msg_dialog::display(
         _('Authentication error'),
@@ -553,15 +553,15 @@ function ldap_login_user ($username, $password)
  *
  * \param string $user  The user who shall own the lock
  */
-function add_lock($object, $user)
+function add_lock ($object, $user)
 {
   global $config;
 
   /* Remember which entries were opened as read only, because we
       don't need to remove any locks for them later.
    */
-  if (!session::global_is_set('LOCK_CACHE')) {
-    session::global_set('LOCK_CACHE', array(''));
+  if (!session::is_set('LOCK_CACHE')) {
+    session::set('LOCK_CACHE', ['']);
   }
   if (is_array($object)) {
     foreach ($object as $obj) {
@@ -570,7 +570,7 @@ function add_lock($object, $user)
     return;
   }
 
-  $cache = &session::global_get_ref('LOCK_CACHE');
+  $cache = &session::get_ref('LOCK_CACHE');
   if (isset($_POST['open_readonly'])) {
     $cache['READ_ONLY'][$object] = TRUE;
     return;
@@ -589,7 +589,7 @@ function add_lock($object, $user)
   $ldap = $config->get_ldap_link();
   $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
   $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($user).')(fdObjectDn='.base64_encode($object).'))',
-      array('fdUserDn'));
+      ['fdUserDn']);
   if (!$ldap->success()) {
     msg_dialog::display(_('Configuration error'), sprintf(_('Cannot create locking information in LDAP tree. Please contact your administrator!').'<br><br>'._('LDAP server returned: %s'), '<br><br><i>'.$ldap->get_error().'</i>'), ERROR_DIALOG);
     return;
@@ -597,16 +597,16 @@ function add_lock($object, $user)
 
   /* Add lock if none present */
   if ($ldap->count() == 0) {
-    $attrs  = array();
+    $attrs  = [];
     $name   = md5($object);
     $ldap->cd('cn='.$name.','.get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-    $attrs = array(
+    $attrs = [
       'objectClass'     => 'fdLockEntry',
       'fdUserDn'        => $user,
       'fdObjectDn'      => base64_encode($object),
       'cn'              => $name,
       'fdLockTimestamp' => LdapGeneralizedTime::toString(new DateTime('now')),
-    );
+    ];
     $ldap->add($attrs);
     if (!$ldap->success()) {
       msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), "cn=$name,".get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], 0), LDAP_ERROR);
@@ -642,8 +642,8 @@ function del_lock ($object)
   /* If this object was opened in read only mode then
       skip removing the lock entry, there wasn't any lock created.
     */
-  if (session::global_is_set('LOCK_CACHE')) {
-    $cache = &session::global_get_ref('LOCK_CACHE');
+  if (session::is_set('LOCK_CACHE')) {
+    $cache = &session::get_ref('LOCK_CACHE');
     if (isset($cache['READ_ONLY'][$object])) {
       unset($cache['READ_ONLY'][$object]);
       return;
@@ -653,7 +653,7 @@ function del_lock ($object)
   /* Check for existance and remove the entry */
   $ldap = $config->get_ldap_link();
   $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-  $ldap->search('(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($object).'))', array('fdObjectDn'));
+  $ldap->search('(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($object).'))', ['fdObjectDn']);
   $attrs = $ldap->fetch();
   if (!$ldap->success()) {
     msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $ldap->getDN(), LDAP_DEL, ERROR_DIALOG));
@@ -672,7 +672,7 @@ function del_lock ($object)
  *
  * \param string $userdn the subject whose locks shall be deleted
  */
-function del_user_locks($userdn)
+function del_user_locks ($userdn)
 {
   global $config;
 
@@ -681,7 +681,7 @@ function del_user_locks($userdn)
   $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
 
   /* Remove all objects of this user, drop errors silently in this case. */
-  $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($userdn).'))', array('fdUserDn'));
+  $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($userdn).'))', ['fdUserDn']);
   while ($attrs = $ldap->fetch()) {
     $ldap->rmdir($attrs['dn']);
   }
@@ -698,7 +698,7 @@ function del_user_locks($userdn)
  * \return string Returns the dn of the user who owns the lock or '' if no lock is found
  * or FALSE if an error occured.
  */
-function get_lock($object)
+function get_lock ($object)
 {
   /* Sanity check */
   if ($object == '') {
@@ -735,7 +735,7 @@ function get_lock($object)
  * \return A numbered array containing all found locks as an array with key 'object'
  * and key 'user', or FALSE if an error occured.
  */
-function get_locks($objects, $allow_readonly = FALSE)
+function get_locks ($objects, $allow_readonly = FALSE)
 {
   global $config;
 
@@ -754,7 +754,7 @@ function get_locks($objects, $allow_readonly = FALSE)
   } else {
     if ($allow_readonly && isset($_POST['open_readonly'])) {
       /* If readonly is allowed and asked and there is only one object, bypass lock detection */
-      return array();
+      return [];
     }
     $filter = '(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($objects).'))';
   }
@@ -762,20 +762,20 @@ function get_locks($objects, $allow_readonly = FALSE)
   /* Get LDAP link, check for presence of the lock entry */
   $ldap = $config->get_ldap_link();
   $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-  $ldap->search($filter, array('fdUserDn','fdObjectDn', 'fdLockTimestamp'));
+  $ldap->search($filter, ['fdUserDn','fdObjectDn', 'fdLockTimestamp']);
   if (!$ldap->success()) {
     msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), '', LDAP_SEARCH), LDAP_ERROR);
     return FALSE;
   }
 
-  $locks = array();
+  $locks = [];
   while ($attrs = $ldap->fetch()) {
-    $locks[] = array(
+    $locks[] = [
       'dn'        => $attrs['dn'],
       'object'    => base64_decode($attrs['fdObjectDn'][0]),
       'user'      => $attrs['fdUserDn'][0],
       'timestamp' => LdapGeneralizedTime::fromString($attrs['fdLockTimestamp'][0]),
-    );
+    ];
   }
 
   if (!is_array($objects) && (count($locks) > 1)) {
@@ -798,7 +798,7 @@ function get_locks($objects, $allow_readonly = FALSE)
  *
  * \return return the current userinfo object
  */
-function &get_userinfo()
+function &get_userinfo ()
 {
   global $ui;
 
@@ -810,7 +810,7 @@ function &get_userinfo()
  *
  * \return return the global smarty object
  */
-function &get_smarty()
+function &get_smarty ()
 {
   global $smarty;
 
@@ -835,7 +835,7 @@ function &get_smarty()
  *
  * \return a string in the form as described above
  */
-function convert_department_dn($dn, $base = NULL)
+function convert_department_dn ($dn, $base = NULL)
 {
   global $config;
 
@@ -877,11 +877,11 @@ function convert_department_dn($dn, $base = NULL)
  * \return the ou associated the the RDN or nothing
  *
  */
-function get_ou($name)
+function get_ou ($name)
 {
   global $config;
 
-  $map = array(
+  $map = [
     'fusiondirectoryRDN'      => 'ou=fusiondirectory,',
     'lockRDN'                 => 'ou=locks,',
     'recoveryTokenRDN'        => 'ou=recovery,',
@@ -931,7 +931,7 @@ function get_ou($name)
     'dsaRDN'    => 'ou=dsa,',
 
     'mimetypeRDN' => 'ou=mime,'
-  );
+  ];
 
   /* Preset ou... */
   if ($config->get_cfg_value($name, '_not_set_') != '_not_set_') {
@@ -971,7 +971,7 @@ function get_ou($name)
  *
  * \return the ou of the userRDN
  */
-function get_people_ou()
+function get_people_ou ()
 {
   return get_ou('userRDN');
 }
@@ -987,7 +987,7 @@ function get_people_ou()
  *
  * \return the base from the dn
  */
-function get_base_from_people($dn)
+function get_base_from_people ($dn)
 {
   global $config;
 
@@ -1012,7 +1012,7 @@ function get_base_from_people($dn)
  * \return Returns TRUE if strictNamingRules is set to TRUE or if the
  * config object is not available, otherwise FALSE.
  */
-function strict_uid_mode()
+function strict_uid_mode ()
 {
   global $config;
 
@@ -1046,7 +1046,7 @@ function strict_uid_mode()
  *
  *
  */
-function gen_locked_message($locks, $dn, $allow_readonly = FALSE)
+function gen_locked_message ($locks, $dn, $allow_readonly = FALSE)
 {
   session::set('dn', $dn);
   $remove = FALSE;
@@ -1054,9 +1054,9 @@ function gen_locked_message($locks, $dn, $allow_readonly = FALSE)
   /* Save variables from LOCK_VARS_TO_USE in session - for further editing */
   if ( session::is_set('LOCK_VARS_TO_USE') && count(session::get('LOCK_VARS_TO_USE'))) {
 
-    $LOCK_VARS_USED_GET       = array();
-    $LOCK_VARS_USED_POST      = array();
-    $LOCK_VARS_USED_REQUEST   = array();
+    $LOCK_VARS_USED_GET       = [];
+    $LOCK_VARS_USED_POST      = [];
+    $LOCK_VARS_USED_REQUEST   = [];
     $LOCK_VARS_TO_USE         = session::get('LOCK_VARS_TO_USE');
 
     foreach ($LOCK_VARS_TO_USE as $name) {
@@ -1083,7 +1083,7 @@ function gen_locked_message($locks, $dn, $allow_readonly = FALSE)
         }
       }
     }
-    session::set('LOCK_VARS_TO_USE',        array());
+    session::set('LOCK_VARS_TO_USE',        []);
     session::set('LOCK_VARS_USED_GET',      $LOCK_VARS_USED_GET);
     session::set('LOCK_VARS_USED_POST',     $LOCK_VARS_USED_POST);
     session::set('LOCK_VARS_USED_REQUEST',  $LOCK_VARS_USED_REQUEST);
@@ -1151,7 +1151,7 @@ function to_string ($value)
  *
  * \return string $s the result of the rewrite
  */
-function rewrite($s)
+function rewrite ($s)
 {
   global $REWRITE;
 
@@ -1171,7 +1171,7 @@ function rewrite($s)
  *
  * \return base of the given DN
  */
-function dn2base($dn, $ou = NULL)
+function dn2base ($dn, $ou = NULL)
 {
   if ($ou === NULL) {
     if (get_people_ou() != '') {
@@ -1184,7 +1184,7 @@ function dn2base($dn, $ou = NULL)
     $dn = preg_replace("/,$ou/i", ',', $dn);
   }
 
-  return preg_replace ('/^[^,]+,/i', '', $dn);
+  return preg_replace('/^[^,]+,/i', '', $dn);
 }
 
 /*!
@@ -1197,7 +1197,7 @@ function dn2base($dn, $ou = NULL)
  *
  * \return TRUE if command exists and is executable, otherwise FALSE.
  */
-function check_command($cmdline)
+function check_command ($cmdline)
 {
   $cmd = preg_replace("/ .*$/", '', $cmdline);
 
@@ -1225,7 +1225,7 @@ function check_command($cmdline)
  *
  * \return the $display variable
  */
-function print_header($image, $headline, $info = '')
+function print_header ($image, $headline, $info = '')
 {
   $smarty = get_smarty();
   $smarty->assign('headline', $headline);
@@ -1246,7 +1246,7 @@ function print_header($image, $headline, $info = '')
  *
  * \return the back button html code
  */
-function back_to_main()
+function back_to_main ()
 {
   return '<br><p class="plugbottom"><input type=submit name="password_back" value="'.
     msgPool::backButton().'"></p><input type="hidden" name="ignore">';
@@ -1259,7 +1259,7 @@ function back_to_main()
  *
  * \return string Converted netmask
  */
-function normalize_netmask($netmask)
+function normalize_netmask ($netmask)
 {
   /* Check for notation of netmask */
   if (!preg_match('/^([0-9]+\.){3}[0-9]+$/', $netmask)) {
@@ -1309,7 +1309,7 @@ function normalize_netmask($netmask)
  *
  * \return the number of bits in the netmask
  */
-function netmask_to_bits($netmask)
+function netmask_to_bits ($netmask)
 {
   $nm = explode('.', $netmask, 4);
 
@@ -1333,12 +1333,12 @@ function netmask_to_bits($netmask)
 /*!
  * \brief Recursion helper for gen_uids()
  */
-function _recurse_gen_uids($rule, array $variables)
+function _recurse_gen_uids ($rule, array $variables)
 {
-  $result = array();
+  $result = [];
 
   if (!count($variables)) {
-    return array($rule);
+    return [$rule];
   }
 
   reset($variables);
@@ -1367,19 +1367,19 @@ function _recurse_gen_uids($rule, array $variables)
  *
  * \return array List of valid not used uids
  */
-function gen_uids($rule, $attributes)
+function gen_uids ($rule, $attributes)
 {
   global $config;
 
   // Attributes should be arrays
   foreach ($attributes as $name => $value) {
-      $attributes[$name] = array($value);
+      $attributes[$name] = [$value];
   }
 
   /* Search for keys and fill the variables array with all
      possible values for that key. */
   $stripped   = $rule;
-  $variables  = array();
+  $variables  = [];
 
   for ($pos = 0; preg_match('/%([^%]+)%/', $stripped, $m, PREG_OFFSET_CAPTURE, $pos); ) {
     $variables[$pos]  = templateHandling::parseMask($m[1][0], $attributes);
@@ -1396,7 +1396,7 @@ function gen_uids($rule, $attributes)
   $ldap->cd($config->current['BASE']);
 
   /* Remove used uids and watch out for id tags */
-  $ret = array();
+  $ret = [];
   foreach ($proposed as $uid) {
     /* Check for id tag and modify uid if needed */
     if (preg_match('/\{id(:|!)(\d+)}/', $uid, $m)) {
@@ -1411,7 +1411,7 @@ function gen_uids($rule, $attributes)
         }
         $res = preg_replace('/{id(:|!)\d+}/', $number, $uid);
 
-        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', array('dn'));
+        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', ['dn']);
         if ($ldap->count() == 0) {
           $uid = $res;
           break;
@@ -1428,7 +1428,7 @@ function gen_uids($rule, $attributes)
       while (TRUE) {
         $number = sprintf("%0".$size."d", random_int(0, pow(10, $size) - 1));
         $res    = preg_replace('/{id#(\d+)}/', $number, $uid);
-        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', array('dn'));
+        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', ['dn']);
         if ($ldap->count() == 0) {
           $uid = $res;
           break;
@@ -1440,7 +1440,7 @@ function gen_uids($rule, $attributes)
     }
 
     /* Don't assign used ones */
-    $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $uid)).')', array('dn'));
+    $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $uid)).')', ['dn']);
     if ($ldap->count() == 0) {
       /* Add uid, but remove {} first. These are invalid anyway. */
       $uid = preg_replace('/[{}]/', '', $uid);
@@ -1466,7 +1466,7 @@ function gen_uids($rule, $attributes)
  * \return a byte value or the original value if specified string is simply
  * a numeric value
  */
-function to_byte($value)
+function to_byte ($value)
 {
   $value = strtolower(trim($value));
 
@@ -1501,7 +1501,7 @@ function to_byte($value)
  */
 function humanReadableSize ($bytes, $precision = 2)
 {
-  $format = array(
+  $format = [
     _('%sB'),
     _('%sKiB'),
     _('%sMiB'),
@@ -1511,7 +1511,7 @@ function humanReadableSize ($bytes, $precision = 2)
     _('%sEiB'),
     _('%sZiB'),
     _('%sYiB')
-  );
+  ];
   if ($bytes == 0) {
     return sprintf($format[0], '0');
   }
@@ -1533,14 +1533,14 @@ function humanReadableSize ($bytes, $precision = 2)
  *
  * \return Return TRUE is value is found, FALSE if not.
  */
-function in_array_ics($value, array $items)
+function in_array_ics ($value, array $items)
 {
   return preg_grep('/^'.preg_quote($value, '/').'$/i', $items);
 }
 
 
 /*! \brief Generate a clickable alphabet */
-function generate_alphabet($count = 10)
+function generate_alphabet ($count = 10)
 {
   $characters = _("*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
   $alphabet   = "";
@@ -1578,7 +1578,7 @@ function generate_alphabet($count = 10)
  *
  * \return string with caracters removed
  */
-function validate($string)
+function validate ($string)
 {
   return strip_tags(str_replace('\0', '', $string));
 }
@@ -1594,7 +1594,7 @@ function validate($string)
  * \param boolean $followLinks TRUE to follow links, FALSE (default)
  * for not following links
  */
-function rmdirRecursive($path, $followLinks = FALSE)
+function rmdirRecursive ($path, $followLinks = FALSE)
 {
   $dir = opendir($path);
   while ($entry = readdir($dir)) {
@@ -1621,7 +1621,7 @@ function rmdirRecursive($path, $followLinks = FALSE)
  *
  * \return array content of directory in ascending sorted manner.
  */
-function scan_directory($path, $sort_desc = FALSE)
+function scan_directory ($path, $sort_desc = FALSE)
 {
   $ret = FALSE;
 
@@ -1632,7 +1632,7 @@ function scan_directory($path, $sort_desc = FALSE)
     if (is_readable($path)) {
 
       /* Get contents and write it into an array */
-      $ret = array();
+      $ret = [];
 
       $dir = opendir($path);
 
@@ -1661,7 +1661,7 @@ function scan_directory($path, $sort_desc = FALSE)
  *
  * \param string $directory smarty compile dir
  */
-function clean_smarty_compile_dir($directory)
+function clean_smarty_compile_dir ($directory)
 {
   if (is_dir($directory) && is_readable($directory)) {
     // Set revision filename to REVISION
@@ -1707,7 +1707,7 @@ function clean_smarty_compile_dir($directory)
  *
  * \return TRUE if successfully created FALSE otherwise
  */
-function create_revision($revision_file, $revision)
+function create_revision ($revision_file, $revision)
 {
   $result = FALSE;
 
@@ -1735,7 +1735,7 @@ function create_revision($revision_file, $revision)
  *
  * \return TRUE if revision match FALSE otherwise
  */
-function compare_revision($revision_file, $revision)
+function compare_revision ($revision_file, $revision)
 {
   // FALSE means revision differs
   $result = FALSE;
@@ -1765,7 +1765,7 @@ function compare_revision($revision_file, $revision)
  * a certain key, regardless of the case.
  *
  * \code
- * $items = array ('FOO' => 'blub', 'bar' => 'blub');
+ * $items = array('FOO' => 'blub', 'bar' => 'blub');
  * array_key_ics('foo', $items); # Returns 'blub'
  * array_key_ics('BAR', $items); # Returns 'blub'
  * \endcode
@@ -1776,7 +1776,7 @@ function compare_revision($revision_file, $revision)
  *
  * \return return key or empty result
  */
-function array_key_ics($ikey, array $items)
+function array_key_ics ($ikey, array $items)
 {
   $tmp  = array_change_key_case($items, CASE_LOWER);
   $ikey = strtolower($ikey);
@@ -1797,10 +1797,10 @@ function array_key_ics($ikey, array $items)
  *
  * \return boolean TRUE or FALSE
  */
-function array_differs($src, $dst)
+function array_differs ($src, $dst)
 {
   /* If the count is differing, the arrays differ */
-  if (count ($src) != count ($dst)) {
+  if (count($src) != count($dst)) {
     return TRUE;
   }
 
@@ -1816,7 +1816,7 @@ function array_differs($src, $dst)
  *
  * \return boolean TRUE or FALSE
  */
-function array_differs_recursive($src, $dst)
+function array_differs_recursive ($src, $dst)
 {
   if (is_array($src)) {
     if (!is_array($dst)) {
@@ -1844,7 +1844,7 @@ function array_differs_recursive($src, $dst)
  * \param string $input string where we should add \ before special caracters
  *
  */
-function normalizeLdap($input)
+function normalizeLdap ($input)
 {
   trigger_error('deprecated, use ldap_escape_f');
   return addcslashes($input, '*()\\/');
@@ -1855,9 +1855,9 @@ function normalizeLdap($input)
  *
  * \param string $cfg A config object
  */
-function check_schema($cfg)
+function check_schema ($cfg)
 {
-  $checks = array();
+  $checks = [];
 
   /* Get objectclasses */
   $ldapObj = new LDAP($cfg['admin'], $cfg['password'], $cfg['connection'], FALSE, $cfg['tls']);
@@ -1871,14 +1871,14 @@ function check_schema($cfg)
   /* This is the default block used for each entry.
    *  to avoid unset indexes.
    */
-  $def_check = array(
+  $def_check = [
     'SCHEMA_FILE'       => '',
-    'CLASSES_REQUIRED'  => array(),
+    'CLASSES_REQUIRED'  => [],
     'STATUS'            => FALSE,
     'IS_MUST_HAVE'      => FALSE,
     'MSG'               => '',
     'INFO'              => ''
-  );
+  ];
 
   /* FusionDirectory core schemas */
 
@@ -1886,7 +1886,7 @@ function check_schema($cfg)
   $checks['core-fd'] = $def_check;
 
   $checks['core-fd']['SCHEMA_FILE']       = 'core-fd.schema';
-  $checks['core-fd']['CLASSES_REQUIRED']  = array('fdLockEntry');
+  $checks['core-fd']['CLASSES_REQUIRED']  = ['fdLockEntry'];
   $checks['core-fd']['IS_MUST_HAVE']      = TRUE;
   $checks['core-fd']['INFO']              = _('Main FusionDirectory schema');
 
@@ -1894,7 +1894,7 @@ function check_schema($cfg)
   $checks['core-fd-conf'] = $def_check;
 
   $checks['core-fd-conf']['SCHEMA_FILE']      = 'core-fd-conf.schema';
-  $checks['core-fd-conf']['CLASSES_REQUIRED'] = array('fusionDirectoryConf');
+  $checks['core-fd-conf']['CLASSES_REQUIRED'] = ['fusionDirectoryConf'];
   $checks['core-fd-conf']['IS_MUST_HAVE']     = TRUE;
   $checks['core-fd-conf']['INFO']             = _('Schema used to store FusionDirectory configuration');
 
@@ -1902,7 +1902,7 @@ function check_schema($cfg)
   $checks['ldapns'] = $def_check;
 
   $checks['ldapns']['SCHEMA_FILE']      = 'ldapns.schema';
-  $checks['ldapns']['CLASSES_REQUIRED'] = array('hostObject');
+  $checks['ldapns']['CLASSES_REQUIRED'] = ['hostObject'];
   $checks['ldapns']['IS_MUST_HAVE']     = FALSE;
   $checks['ldapns']['INFO']             = _('Used to store trust mode information in users or groups.');
 
@@ -1910,7 +1910,7 @@ function check_schema($cfg)
   $checks['template-fd'] = $def_check;
 
   $checks['template-fd']['SCHEMA_FILE']      = 'template-fd.schema';
-  $checks['template-fd']['CLASSES_REQUIRED'] = array('fdTemplate');
+  $checks['template-fd']['CLASSES_REQUIRED'] = ['fdTemplate'];
   $checks['template-fd']['IS_MUST_HAVE']     = FALSE;
   $checks['template-fd']['INFO']             = _('Used to store templates.');
 
@@ -1919,7 +1919,7 @@ function check_schema($cfg)
     $checks['nis'] = $def_check;
 
     $checks['nis']['SCHEMA_FILE']       = 'nis.schema';
-    $checks['nis']['CLASSES_REQUIRED']  = array('posixAccount');
+    $checks['nis']['CLASSES_REQUIRED']  = ['posixAccount'];
     $checks['nis']['IS_MUST_HAVE']      = FALSE;
     $checks['nis']['INFO']              = _('Used to store POSIX information.');
   }
@@ -1943,7 +1943,7 @@ function check_schema($cfg)
   $checks['posixGroup'] = $def_check;
 
   $checks['posixGroup']['SCHEMA_FILE']      = 'nis.schema';
-  $checks['posixGroup']['CLASSES_REQUIRED'] = array('posixGroup');
+  $checks['posixGroup']['CLASSES_REQUIRED'] = ['posixGroup'];
   $checks['posixGroup']['STATUS']           = TRUE;
   $checks['posixGroup']['MSG']              = '';
   $checks['posixGroup']['INFO']             = '';
@@ -1977,7 +1977,7 @@ function check_schema($cfg)
  *
  * \return string
  */
-function get_post($name)
+function get_post ($name)
 {
   if (!isset($_POST[$name])) {
     trigger_error("Requested POST value (".$name.") does not exists, you should add a check to prevent this message.");
@@ -1990,7 +1990,7 @@ function get_post($name)
 /*!
  * \brief Return class name in correct case
  */
-function get_correct_class_name($cls)
+function get_correct_class_name ($cls)
 {
   global $class_mapping;
   if (isset($class_mapping) && is_array($class_mapping)) {
@@ -2022,13 +2022,13 @@ function change_password ($dn, $password, $hash = "")
 {
   $userTabs = objects::open($dn, 'user');
   $userTab  = $userTabs->getBaseObject();
-  $userTab->userPassword = array(
+  $userTab->userPassword = [
     $hash,
     $password,
     $password,
     $userTab->userPassword,
     $userTab->attributesAccess['userPassword']->isLocked()
-  );
+  ];
   $userTabs->save_object();
   $error = $userTabs->save();
   if (!empty($error)) {
@@ -2039,17 +2039,17 @@ function change_password ($dn, $password, $hash = "")
 }
 
 /* Lock or unlock samba account */
-function lock_samba_account($mode, array $attrs)
+function lock_samba_account ($mode, array $attrs)
 {
   global $config;
   if (!isset($attrs['sambaNTPassword'][0])) {
-    return array();
+    return [];
   }
-  $modify = array('sambaNTPassword' => $attrs['sambaNTPassword'][0]);
+  $modify = ['sambaNTPassword' => $attrs['sambaNTPassword'][0]];
   if ($config->get_cfg_value("sambaGenLMPassword", "FALSE") == "TRUE") {
     $modify['sambaLMPassword'] = $attrs['sambaLMPassword'][0];
   } else {
-    $modify['sambaLMPassword'] = array();
+    $modify['sambaLMPassword'] = [];
   }
   foreach ($modify as &$pwd) {
     if (is_array($pwd)) {
@@ -2070,12 +2070,12 @@ function lock_samba_account($mode, array $attrs)
 }
 
 /* Lock or unlock ssh account */
-function lock_ssh_account($mode, array $attrs, &$modify)
+function lock_ssh_account ($mode, array $attrs, &$modify)
 {
   if (!isset($attrs['sshPublicKey'])) {
     return;
   }
-  $modify['sshPublicKey'] = array();
+  $modify['sshPublicKey'] = [];
   for ($i = 0; $i < $attrs['sshPublicKey']['count']; ++$i) {
     if ($mode == 'LOCK') {
       $modify['sshPublicKey'][] = preg_replace('/^/', 'disabled-', $attrs['sshPublicKey'][$i]);
@@ -2098,7 +2098,7 @@ function lock_ssh_account($mode, array $attrs, &$modify)
  *
  * \return either the result or "" in any other case
  */
-function getEntryCSN($dn)
+function getEntryCSN ($dn)
 {
   global $config;
   if (empty($dn) || !is_object($config)) {
@@ -2109,7 +2109,7 @@ function getEntryCSN($dn)
   $attr = $config->get_cfg_value('modificationDetectionAttribute');
   if ($attr != '') {
     $ldap = $config->get_ldap_link();
-    $ldap->cat($dn, array($attr));
+    $ldap->cat($dn, [$attr]);
     $csn = $ldap->fetch();
     if (isset($csn[$attr][0])) {
       return $csn[$attr][0];
@@ -2127,7 +2127,7 @@ function getEntryCSN($dn)
  *
  * \param  string $type The content identifier, default value is "application/octet-stream";
  */
-function send_binary_content($data, $name, $type = "application/octet-stream")
+function send_binary_content ($data, $name, $type = "application/octet-stream")
 {
   header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
   header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
@@ -2137,7 +2137,7 @@ function send_binary_content($data, $name, $type = "application/octet-stream")
   header("Content-type: ".$type);
 
   /* Strip name if it is a complete path */
-  if (preg_match ("/\//", $name)) {
+  if (preg_match("/\//", $name)) {
     $name = basename($name);
   }
 
@@ -2149,7 +2149,7 @@ function send_binary_content($data, $name, $type = "application/octet-stream")
 }
 
 
-function reverse_html_entities($str, $type = ENT_QUOTES, $charset = "UTF-8")
+function reverse_html_entities ($str, $type = ENT_QUOTES, $charset = "UTF-8")
 {
   if (is_string($str)) {
     return htmlentities($str, $type, $charset);
@@ -2172,7 +2172,7 @@ function reverse_html_entities($str, $type = ENT_QUOTES, $charset = "UTF-8")
  *
  * \return string The encoded String
  */
-function xmlentities($str)
+function xmlentities ($str)
 {
   if (is_string($str)) {
     return htmlspecialchars($str, ENT_QUOTES);
@@ -2189,7 +2189,7 @@ function xmlentities($str)
  */
 function get_random_char ()
 {
-  $randno = rand (0, 63);
+  $randno = rand(0, 63);
   if ($randno < 12) {
     // Digits, '/' and '.'
     return chr($randno + 46);
@@ -2209,7 +2209,7 @@ function get_random_char ()
  *
  * \param String $password The password used
  */
-function cred_decrypt($input, $password)
+function cred_decrypt ($input, $password)
 {
   /************************* Inspired by Crypt/CBC.pm *******************************/
   $input = pack('H*', $input);
@@ -2235,13 +2235,13 @@ function cred_decrypt($input, $password)
 }
 
 
-function get_object_info()
+function get_object_info ()
 {
   return session::get('objectinfo');
 }
 
 
-function set_object_info($str = "")
+function set_object_info ($str = "")
 {
   session::set('objectinfo', $str);
 }
@@ -2255,7 +2255,7 @@ function set_object_info($str = "")
  *
  * \param string $mask The netmask of the network
  */
-function isIpInNet($ip, $net, $mask)
+function isIpInNet ($ip, $net, $mask)
 {
    // Move to long ints
    $ip    = ip2long($ip);
@@ -2278,7 +2278,7 @@ function expandIPv6 ($ip)
 }
 
 /* Mark the occurance of a string with a span */
-function mark($needle, $haystack)
+function mark ($needle, $haystack)
 {
   $result = '';
 
@@ -2290,14 +2290,14 @@ function mark($needle, $haystack)
   return $result.$haystack;
 }
 
-function reset_errors()
+function reset_errors ()
 {
   session::set('errors', '');
-  session::set('errorsAlreadyPosted', array());
+  session::set('errorsAlreadyPosted', []);
   session::set('LastError', '');
 }
 
-function load_all_classes()
+function load_all_classes ()
 {
   global $BASE_DIR, $class_list, $class_mapping;
   /* Initially load all classes */
@@ -2322,16 +2322,16 @@ if (!function_exists('ldap_escape')) {
   define('LDAP_ESCAPE_DN',     0x02);
 
   /* PHP version of ldap_escape for PHP<5.6 */
-  function ldap_escape($subject, $ignore = '', $flags = 0)
+  function ldap_escape ($subject, $ignore = '', $flags = 0)
   {
-    static $charMaps = array(
-      LDAP_ESCAPE_FILTER => array('\\', '*', '(', ')', "\x00"),
-      LDAP_ESCAPE_DN     => array('\\', ',', '=', '+', '<', '>', ';', '"', '#'),
-    );
+    static $charMaps = [
+      LDAP_ESCAPE_FILTER => ['\\', '*', '(', ')', "\x00"],
+      LDAP_ESCAPE_DN     => ['\\', ',', '=', '+', '<', '>', ';', '"', '#'],
+    ];
 
     // Pre-process the char maps on first call
     if (!isset($charMaps[0])) {
-      $charMaps[0] = array();
+      $charMaps[0] = [];
       for ($i = 0; $i < 256; $i++) {
         $charMaps[0][chr($i)] = sprintf('\\%02x', $i);
       }
@@ -2351,7 +2351,7 @@ if (!function_exists('ldap_escape')) {
 
     // Create the base char map to escape
     $flags = (int)$flags;
-    $charMap = array();
+    $charMap = [];
     if ($flags & LDAP_ESCAPE_FILTER) {
       $charMap += $charMaps[LDAP_ESCAPE_FILTER];
     }
@@ -2387,7 +2387,7 @@ if (!function_exists('ldap_escape')) {
 
 if (!function_exists('random_int')) {
   // PHP<7, we fallback on openssl_random_pseudo_bytes
-  function random_int($min, $max)
+  function random_int ($min, $max)
   {
     $range = $max - $min;
     if ($range <= 0) {
@@ -2417,17 +2417,17 @@ if (!function_exists('random_int')) {
   }
 }
 
-function ldap_escape_f($str, $ignore = '')
+function ldap_escape_f ($str, $ignore = '')
 {
   return ldap_escape($str, $ignore, LDAP_ESCAPE_FILTER);
 }
 
-function ldap_escape_dn($str, $ignore = '')
+function ldap_escape_dn ($str, $ignore = '')
 {
   return ldap_escape($str, $ignore, LDAP_ESCAPE_DN);
 }
 
-function mail_utf8($to, $from_user, $from_email, $subject, $message, $replyto_user = NULL, $replyto_email = NULL, $type = 'plain')
+function mail_utf8 ($to, $from_user, $from_email, $subject, $message, $replyto_user = NULL, $replyto_email = NULL, $type = 'plain')
 {
   $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
 
@@ -2464,10 +2464,10 @@ function mail_utf8($to, $from_user, $from_email, $subject, $message, $replyto_us
 }
 
 /* Calls fopen, gives errors as an array if any, file handle if successful */
-function fopenWithErrorHandling()
+function fopenWithErrorHandling ()
 {
   $args   = func_get_args();
-  $errors = array();
+  $errors = [];
   set_error_handler(
     function ($errno, $errstr, $errfile, $errline, $errcontext) use (&$errors)
     {
diff --git a/include/functions_debug.inc b/include/functions_debug.inc
index d7447e3c2ca68b3752c18ad8f02bc09c78ff3bdf..f96bccd4449377f552f686ba21c6b34e0c9d1dbe 100644
--- a/include/functions_debug.inc
+++ b/include/functions_debug.inc
@@ -17,16 +17,6 @@
 *   if mode is defined the function returns the output instead of
 *   printing it to the browser
 *
-* show_vars([int mode])
-*   use this function on the bottom of your script to see all
-*   superglobals and global variables in your script in a nice
-*   formated way
-*
-*   show_vars() without parameter shows $_GET, $_POST, $_SESSION,
-*   $_FILES and all global variables you've defined in your script
-*
-*   show_vars(1) shows $_SERVER and $_ENV in addition
-*
 * Happy debugging and feel free to email me your comments.
 *
 * History: (starting with version 0.5.3 at 2003-02-24)
@@ -36,15 +26,6 @@
 *   - pre() function now trims trailing tabs
 ----------------------------------------------------------------------*/
 
-
-// This file must be the first include on your page.
-
-/* used for tracking of generation-time */
-{
-  $MICROTIME_START = microtime();
-  @$GLOBALS_initial_count = count($GLOBALS);
-}
-
 /*!
  * \file functions_debug.inc
  * Source code for print_a class
@@ -82,7 +63,7 @@ class printAClass {
   /*!
    * \brief printAClass constructor
    */
-  function __construct()
+  function __construct ()
   {
     $this->export_hash = uniqid('');
   }
@@ -110,7 +91,7 @@ class printAClass {
    *
    * \param boolean $key_bg_color false
    */
-  function print_a($array, $iteration = FALSE, $key_bg_color = FALSE)
+  function print_a ($array, $iteration = FALSE, $key_bg_color = FALSE)
   {
     if (!$key_bg_color) {
       $key_bg_color = $this->key_bg_color;
@@ -173,8 +154,8 @@ class printAClass {
 
         case 'string':
           if ($this->look_for_leading_tabs && preg_match('/^\t/m', $value)) {
-            $search       = array('/\t/', "/\n/");
-            $replace      = array('&nbsp;&nbsp;&nbsp;','<br />');
+            $search       = ['/\t/', "/\n/"];
+            $replace      = ['&nbsp;&nbsp;&nbsp;','<br />'];
             $value        = preg_replace( $search, $replace, htmlspecialchars($value));
             $value_style  = 'color:black;border:1px gray dotted;';
           } else {
@@ -215,7 +196,7 @@ class printAClass {
 }
 
 /*
- * \brief helper function.. calls print_a() inside the printAClass
+ * \brief helper function.. calls print_a () inside the printAClass
  *
  * \param array $array
  *
@@ -225,7 +206,7 @@ class printAClass {
  *
  * \param boolean $export_flag false
  */
-function print_a($array, $return_mode = FALSE, $show_object_vars = FALSE, $export_flag = FALSE )
+function print_a ($array, $return_mode = FALSE, $show_object_vars = FALSE, $export_flag = FALSE )
 {
   $e = error_reporting(0);
   if (is_array($array) || is_object($array)) {
@@ -244,7 +225,7 @@ function print_a($array, $return_mode = FALSE, $show_object_vars = FALSE, $expor
     $output = '<span style="color:red;font-size:small;">print_a( '.gettype( $array ).' )</span>';
   }
 
-  error_reporting ($e);
+  error_reporting($e);
   if ($return_mode) {
     return $output;
   } else {
@@ -252,96 +233,3 @@ function print_a($array, $return_mode = FALSE, $show_object_vars = FALSE, $expor
     return TRUE;
   }
 }
-
-function _script_globals()
-{
-  global $GLOBALS_initial_count;
-
-  $varcount = 0;
-
-  foreach ($GLOBALS as $GLOBALS_current_key => $GLOBALS_current_value) {
-    if (++$varcount > $GLOBALS_initial_count) {
-      /* die wollen wir nicht! */
-      if ($GLOBALS_current_key != 'HTTP_SESSION_VARS' && $GLOBALS_current_key != '_SESSION') {
-        $script_GLOBALS[$GLOBALS_current_key] = $GLOBALS_current_value;
-      }
-    }
-  }
-
-  unset($script_GLOBALS['GLOBALS_initial_count']);
-  return $script_GLOBALS;
-}
-
-/*!
- * \brief Show the runtime
- */
-function show_runtime()
-{
-  $MICROTIME_END    = microtime();
-  $MICROTIME_START  = explode(' ', $GLOBALS['MICROTIME_START']);
-  $MICROTIME_END    = explode(' ', $MICROTIME_END);
-  $GENERATIONSEC    = $MICROTIME_END[1] - $MICROTIME_START[1];
-  $GENERATIONMSEC   = $MICROTIME_END[0] - $MICROTIME_START[0];
-  $GENERATIONTIME   = substr($GENERATIONSEC + $GENERATIONMSEC, 0, 8);
-
-  return '<span style="color:red;font-weight:normal;font-size:9px;">(runtime: '.$GENERATIONTIME.' sec)</span>';
-}
-
-
-/*!
- * \brief function shows all superglobals and script defined global variables
- * show_vars() without the first parameter shows all superglobals except $_ENV and $_SERVER
- * show_vars(1) shows all
- * show_vars(,1) shows object properties in addition
- */
-function show_vars($show_all_vars = FALSE, $show_object_vars = FALSE)
-{
-  if (isset($GLOBALS['no_vars'])) {
-    return;
-  }
-
-  $script_globals = _script_globals();
-  print '
-    <style type="text/css">
-    .vars-container {
-      font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif;
-      font-size: 8pt;
-      padding:5px;
-    }
-    .varsname {
-      font-weight:bold;
-    }
-    </style>
-  ';
-
-  print '<br />
-    <div style="border-style:dotted;border-width:1px;padding:2px;font-family:Verdana;font-size:10pt;font-weight:bold;">
-    DEBUG '.show_runtime().'
-  ';
-
-  $vars_arr['script_globals'] = array('global script variables', '#7ACCC8');
-
-  $vars_arr['_GET']     = array('$_GET', '#7DA7D9');
-  $vars_arr['_POST']    = array('$_POST', '#F49AC1');
-  $vars_arr['_FILES']   = array('$_POST FILES', '#82CA9C');
-  $vars_arr['_SESSION'] = array('$_SESSION', '#FCDB26');
-  $vars_arr['_COOKIE']  = array('$_COOKIE', '#A67C52');
-
-  if ($show_all_vars) {
-    $vars_arr['_SERVER']  = array('SERVER', '#A186BE');
-    $vars_arr['_ENV']     = array('ENV', '#7ACCC8');
-  }
-
-  foreach ($vars_arr as $vars_name => $vars_data) {
-    if ($vars_name != 'script_globals') {
-      global $$vars_name;
-    }
-    if ($$vars_name) {
-      print '<div class="vars-container" style="background-color:'.$vars_data[1].';"><span class="varsname">'.$vars_data[0].'</span><br />';
-      print_a($$vars_name, FALSE, $show_object_vars, FALSE );
-      print '</div>';
-    }
-  }
-  print '</div>';
-}
-?>
diff --git a/include/password-methods/class_password-methods-clear.inc b/include/password-methods/class_password-methods-clear.inc
index 6c592859ddc2fc6c83c5f2560966ef5ddfc42706..95a16473f1e8c48adc8eb97e4f70d0edf2538797 100644
--- a/include/password-methods/class_password-methods-clear.inc
+++ b/include/password-methods/class_password-methods-clear.inc
@@ -36,7 +36,7 @@ class passwordMethodClear extends passwordMethod
   /*!
    * \brief passwordMethodClear Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -45,7 +45,7 @@ class passwordMethodClear extends passwordMethod
    *
    * \return TRUE
    */
-  function is_available()
+  function is_available ()
   {
     return TRUE;
   }
@@ -55,7 +55,7 @@ class passwordMethodClear extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     return $pwd;
   }
@@ -63,7 +63,7 @@ class passwordMethodClear extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return "clear";
   }
diff --git a/include/password-methods/class_password-methods-crypt.inc b/include/password-methods/class_password-methods-crypt.inc
index 935ae1f7ded6329247803f0c670aa17cea2c8852..57c3ec5830e6c330deb1afe873c513cc16d9c5c3 100644
--- a/include/password-methods/class_password-methods-crypt.inc
+++ b/include/password-methods/class_password-methods-crypt.inc
@@ -35,7 +35,7 @@ class passwordMethodCrypt extends passwordMethod
   /*!
    * \brief passwordMethodCrypt Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -44,7 +44,7 @@ class passwordMethodCrypt extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available()
+  function is_available ()
   {
     return function_exists('crypt');
   }
@@ -54,7 +54,7 @@ class passwordMethodCrypt extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     if ($this->hash == "crypt/standard-des") {
       $salt = "";
@@ -105,7 +105,7 @@ class passwordMethodCrypt extends passwordMethod
     return "{CRYPT}".crypt($pwd, $salt);
   }
 
-  function checkPassword($pwd, $hash)
+  function checkPassword ($pwd, $hash)
   {
     // Not implemented
     return FALSE;
@@ -114,9 +114,9 @@ class passwordMethodCrypt extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
-    $hashes = array();
+    $hashes = [];
     if (CRYPT_STD_DES == 1) {
       $hashes[] = "crypt/standard-des";
     }
@@ -151,7 +151,7 @@ class passwordMethodCrypt extends passwordMethod
    *
    * \param string $password_hash
    */
-  static function _extract_method($classname, $password_hash)
+  static function _extract_method ($classname, $password_hash)
   {
     if (!preg_match('/^{crypt}/i', $password_hash)) {
       return "";
diff --git a/include/password-methods/class_password-methods-md5.inc b/include/password-methods/class_password-methods-md5.inc
index 23ba51c894552e6133602340dcb872e708455553..96e6375e19d14bbed6508a8ccbd56dd8e4e654a5 100644
--- a/include/password-methods/class_password-methods-md5.inc
+++ b/include/password-methods/class_password-methods-md5.inc
@@ -35,7 +35,7 @@ class passwordMethodMd5 extends passwordMethod
   /*!
    * \brief passwordMethodMd5 Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -44,7 +44,7 @@ class passwordMethodMd5 extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available()
+  function is_available ()
   {
     return function_exists('md5');
   }
@@ -54,7 +54,7 @@ class passwordMethodMd5 extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     return  '{MD5}'.base64_encode( pack('H*', md5($pwd)));
   }
@@ -62,7 +62,7 @@ class passwordMethodMd5 extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return 'md5';
   }
diff --git a/include/password-methods/class_password-methods-sasl.inc b/include/password-methods/class_password-methods-sasl.inc
index 3f3f5ef2f012fcd108f455987de4e135e06025b3..2a618a64bfd7dff8ee3b9d52798c505a90366e13 100644
--- a/include/password-methods/class_password-methods-sasl.inc
+++ b/include/password-methods/class_password-methods-sasl.inc
@@ -40,7 +40,7 @@ class passwordMethodsasl extends passwordMethod
    * \param string $dn The DN
    * \param object $userTab The user main tab object
    */
-  function __construct($dn = '', $userTab = NULL)
+  function __construct ($dn = '', $userTab = NULL)
   {
     global $config;
     $this->realm  = trim($config->get_cfg_value('saslRealm', ''));
@@ -57,7 +57,7 @@ class passwordMethodsasl extends passwordMethod
     } else {
       $ldap = $config->get_ldap_link();
       $ldap->cd($config->current['BASE']);
-      $ldap->cat($dn, array($attr));
+      $ldap->cat($dn, [$attr]);
       if ($ldap->count() == 1) {
         $attrs = $ldap->fetch();
         $this->uid = $attrs[$attr][0];
@@ -72,7 +72,7 @@ class passwordMethodsasl extends passwordMethod
    *
    * \return TRUE if is avaibable
    */
-  function is_available()
+  function is_available ()
   {
     if (empty($this->realm) && empty($this->exop)) {
       return FALSE;
@@ -85,7 +85,7 @@ class passwordMethodsasl extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     if (empty($this->exop)) {
       if (empty($this->realm)) {
@@ -98,7 +98,7 @@ class passwordMethodsasl extends passwordMethod
     }
   }
 
-  function checkPassword($pwd, $hash)
+  function checkPassword ($pwd, $hash)
   {
     // We do not store passwords, can’t know if they’re the same
     return FALSE;
@@ -107,7 +107,7 @@ class passwordMethodsasl extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return 'sasl';
   }
@@ -117,7 +117,7 @@ class passwordMethodsasl extends passwordMethod
    *
    * \return boolean FALSE
    */
-  function need_password()
+  function need_password ()
   {
     global $config;
     return ($config->get_cfg_value('forceSaslPasswordAsk', 'FALSE') == 'TRUE');
diff --git a/include/password-methods/class_password-methods-sha.inc b/include/password-methods/class_password-methods-sha.inc
index 1b81ca1e825e81e9b4530c71b386ac4f492bb8ac..e2e13fb60d9adb1c6dfae6691c135d77a31a8ade 100644
--- a/include/password-methods/class_password-methods-sha.inc
+++ b/include/password-methods/class_password-methods-sha.inc
@@ -34,7 +34,7 @@ class passwordMethodsha extends passwordMethod
   /*!
    * \brief passwordMethodsha Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -43,7 +43,7 @@ class passwordMethodsha extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available()
+  function is_available ()
   {
     return (function_exists('sha1') || function_exists('mhash'));
   }
@@ -53,7 +53,7 @@ class passwordMethodsha extends passwordMethod
    *
    * \param string $password Password
    */
-  function generate_hash($password)
+  function generate_hash ($password)
   {
     if (function_exists('sha1')) {
       $hash = '{SHA}' . base64_encode(pack('H*', sha1($password)));
@@ -70,7 +70,7 @@ class passwordMethodsha extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return 'sha';
   }
diff --git a/include/password-methods/class_password-methods-smd5.inc b/include/password-methods/class_password-methods-smd5.inc
index 74987388e0859eb18675aa6ac3182896e09c9dad..73886bca0cbaea73dd593af74e7e1133e08b3811 100644
--- a/include/password-methods/class_password-methods-smd5.inc
+++ b/include/password-methods/class_password-methods-smd5.inc
@@ -34,7 +34,7 @@ class passwordMethodsmd5 extends passwordMethod
   /*!
    * \brief passwordMethodsmd5 Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -43,7 +43,7 @@ class passwordMethodsmd5 extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available()
+  function is_available ()
   {
     return function_exists('md5');
   }
@@ -53,7 +53,7 @@ class passwordMethodsmd5 extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     $salt0  = substr(pack('h*', md5(random_int(0, PHP_INT_MAX))), 0, 8);
     $salt   = substr(pack('H*', md5($salt0 . $pwd)), 0, 4);
@@ -61,7 +61,7 @@ class passwordMethodsmd5 extends passwordMethod
     return $hash;
   }
 
-  function checkPassword($pwd, $hash)
+  function checkPassword ($pwd, $hash)
   {
     $hash = base64_decode(substr($hash, 6));
     $salt = substr($hash, 16);
@@ -73,7 +73,7 @@ class passwordMethodsmd5 extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return 'smd5';
   }
diff --git a/include/password-methods/class_password-methods-ssha.inc b/include/password-methods/class_password-methods-ssha.inc
index 07b60d682e839b8ef846e7688ffe0dd7425ff67c..705c2378f321470eca282f4e4217a7350a30c7b9 100644
--- a/include/password-methods/class_password-methods-ssha.inc
+++ b/include/password-methods/class_password-methods-ssha.inc
@@ -34,7 +34,7 @@ class passwordMethodssha extends passwordMethod
   /*!
    * \brief passwordMethodssha Constructor
    */
-  function __construct()
+  function __construct ()
   {
   }
 
@@ -43,7 +43,7 @@ class passwordMethodssha extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available()
+  function is_available ()
   {
     return (function_exists('sha1') || function_exists('mhash'));
   }
@@ -53,7 +53,7 @@ class passwordMethodssha extends passwordMethod
    *
    * \param string $pwd Password
    */
-  function generate_hash($pwd)
+  function generate_hash ($pwd)
   {
     if (function_exists('sha1')) {
       $salt = substr(pack('h*', md5(random_int(0, PHP_INT_MAX))), 0, 8);
@@ -70,7 +70,7 @@ class passwordMethodssha extends passwordMethod
     return $pwd;
   }
 
-  function checkPassword($pwd, $hash)
+  function checkPassword ($pwd, $hash)
   {
     $hash = base64_decode(substr($hash, 6));
     $salt = substr($hash, 20);
@@ -89,7 +89,7 @@ class passwordMethodssha extends passwordMethod
   /*!
    * \brief Get the hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     return 'ssha';
   }
diff --git a/include/password-methods/class_password-methods.inc b/include/password-methods/class_password-methods.inc
index 713f7adc16800b2f666fcdaf44af24ecb62e0110..6a0929ff90ad2237fa7f95953fbc5f6d1333f34e 100644
--- a/include/password-methods/class_password-methods.inc
+++ b/include/password-methods/class_password-methods.inc
@@ -29,7 +29,7 @@
  */
 class passwordMethod
 {
-  var $attrs    = array();
+  var $attrs    = [];
   var $display  = FALSE;
   var $hash     = '';
 
@@ -41,14 +41,14 @@ class passwordMethod
    * \param string $dn The DN
    * \param object $userTab The user main tab object
    */
-  function __construct($dn = '', $userTab = NULL)
+  function __construct ($dn = '', $userTab = NULL)
   {
   }
 
   /*!
    * \brief Get the Hash name
    */
-  static function get_hash_name()
+  static function get_hash_name ()
   {
     trigger_error("get_hash_name can't be called on main class");
   }
@@ -58,7 +58,7 @@ class passwordMethod
    *
    * \return boolean TRUE
    */
-  function need_password()
+  function need_password ()
   {
     return TRUE;
   }
@@ -68,7 +68,7 @@ class passwordMethod
    *
    * \return boolean
    */
-  function is_lockable()
+  function is_lockable ()
   {
     return $this->lockable;
   }
@@ -78,7 +78,7 @@ class passwordMethod
    *
    * \param string $dn The DN
    */
-  function is_locked($dn = "")
+  function is_locked ($dn = "")
   {
     global $config;
     if (!$this->lockable) {
@@ -109,7 +109,7 @@ class passwordMethod
    *
    * \param string $dn
    */
-  function lock_account($dn = "")
+  function lock_account ($dn = "")
   {
     return $this->generic_modify_account($dn, 'LOCK');
   }
@@ -118,7 +118,7 @@ class passwordMethod
    * \brief Unlocks an account which was locked by 'lock_account()'.
    *        For details about the locking mechanism see 'lock_account()'.
    */
-  function unlock_account($dn = "")
+  function unlock_account ($dn = "")
   {
     return $this->generic_modify_account($dn, 'UNLOCK');
   }
@@ -127,7 +127,7 @@ class passwordMethod
    * \brief Unlocks an account which was locked by 'lock_account()'.
    *        For details about the locking mechanism see 'lock_account()'.
    */
-  private function generic_modify_account($dn, $mode)
+  private function generic_modify_account ($dn, $mode)
   {
     global $config;
     if (!$this->lockable) {
@@ -170,7 +170,7 @@ class passwordMethod
 
       // Call pre hooks
       $userClass = new user($dn);
-      $errors = $userClass->callHook('PRE'.$mode, array(), $ret);
+      $errors = $userClass->callHook('PRE'.$mode, [], $ret);
       if (!empty($errors)) {
         msg_dialog::displayChecks($errors);
         return FALSE;
@@ -191,7 +191,7 @@ class passwordMethod
       // Call the password post-lock hook, if defined.
       if ($ldap->success()) {
         $userClass = new user($dn);
-        $errors = $userClass->callHook('POST'.$mode, array(), $ret);
+        $errors = $userClass->callHook('POST'.$mode, [], $ret);
         if (!empty($errors)) {
           msg_dialog::displayChecks($errors);
         }
@@ -207,7 +207,7 @@ class passwordMethod
   /*!
    * \brief This function returns all loaded classes for password encryption
    */
-  static function get_available_methods()
+  static function get_available_methods ()
   {
     global $class_mapping;
     $ret  = FALSE;
@@ -221,7 +221,7 @@ class passwordMethod
           if ($test->is_available()) {
             $plugs = $test->get_hash_name();
             if (!is_array($plugs)) {
-              $plugs = array($plugs);
+              $plugs = [$plugs];
             }
 
             foreach ($plugs as $plugname) {
@@ -251,7 +251,7 @@ class passwordMethod
   /*!
    * \brief Get desciption
    */
-  function get_description()
+  function get_description ()
   {
     return "";
   }
@@ -259,7 +259,7 @@ class passwordMethod
   /*!
    * \brief Method to check if a password matches a hash
    */
-  function checkPassword($pwd, $hash)
+  function checkPassword ($pwd, $hash)
   {
     return ($hash == $this->generate_hash($pwd));
   }
@@ -268,7 +268,7 @@ class passwordMethod
   /*!
    * \brief Return true if this password method provides a configuration dialog
    */
-  function is_configurable()
+  function is_configurable ()
   {
     return FALSE;
   }
@@ -276,7 +276,7 @@ class passwordMethod
   /*!
    * \brief Provide a subdialog to configure a password method
    */
-  function configure()
+  function configure ()
   {
     return "";
   }
@@ -287,7 +287,7 @@ class passwordMethod
    *
    * \param string $dn The DN
    */
-  function save($dn)
+  function save ($dn)
   {
   }
 
@@ -299,7 +299,7 @@ class passwordMethod
    *
    * \param string $dn The DN
    */
-  static function get_method($password_hash, $dn = "")
+  static function get_method ($password_hash, $dn = "")
   {
     $methods = passwordMethod::get_available_methods();
 
@@ -324,7 +324,7 @@ class passwordMethod
    *
    * \param string $password_hash
    */
-  static function _extract_method($classname, $password_hash)
+  static function _extract_method ($classname, $password_hash)
   {
     $hash = $classname::get_hash_name();
     if (preg_match("/^\{$hash\}/i", $password_hash)) {
@@ -341,7 +341,7 @@ class passwordMethod
    *
    * \param string $hash
    */
-  static function make_hash($password, $hash)
+  static function make_hash ($password, $hash)
   {
     $methods  = passwordMethod::get_available_methods();
     $tmp      = new $methods[$hash]();
@@ -354,7 +354,7 @@ class passwordMethod
    *
    * \param string $hash
    */
-  function set_hash($hash)
+  function set_hash ($hash)
   {
     $this->hash = $hash;
   }
@@ -363,7 +363,7 @@ class passwordMethod
   /*!
    * \brief Get a hash
    */
-  function get_hash()
+  function get_hash ()
   {
     return $this->hash;
   }
@@ -375,7 +375,7 @@ class passwordMethod
    *
    * \param string $password The password
    */
-  static function is_harmless($password)
+  static function is_harmless ($password)
   {
     global $config;
     if ($config->get_cfg_value("strictPasswordRules") == "TRUE") {
diff --git a/include/php_setup.inc b/include/php_setup.inc
index 29f4ef362d0bc0e0e99513d8a1ee78d2cca14738..02f5d05f5501ba90196a590f75805577d233de20 100644
--- a/include/php_setup.inc
+++ b/include/php_setup.inc
@@ -24,19 +24,35 @@
  * \file php_setup.inc
  * Source code for php_setup
  */
-require_once ("variables.inc");
+require_once("variables.inc");
 
-function html_trace($errstr = "")
+/*!
+ * \brief Escape string for HTML output
+ */
+function htmlescape ($str)
+{
+  return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
+}
+
+/*!
+ * \brief Unescape string for HTML output, reverse of htmlescape
+ */
+function htmlunescape ($html)
+{
+  return html_entity_decode($html, ENT_QUOTES | ENT_HTML5, 'UTF-8');
+}
+
+function html_trace ($errstr = "")
 {
-  static $hideArgs = array(
-    'ldap_init'         => array(3),
-    'ldap_login_user'   => array(1),
-    'change_password'   => array(1),
-    'cred_decrypt'      => array(0,1),
-    'LDAP/__construct'  => array(1),
-  );
+  static $hideArgs = [
+    'ldap_init'         => [3],
+    'ldap_login_user'   => [1],
+    'change_password'   => [1],
+    'cred_decrypt'      => [0,1],
+    'LDAP/__construct'  => [1],
+  ];
   if (!function_exists('debug_backtrace')) {
-    return array ('', '');
+    return  ['', ''];
   }
   $trace = array_slice(debug_backtrace(), 1);
 
@@ -88,9 +104,9 @@ function html_trace($errstr = "")
       if (isset($hideArgs[$func])) {
         $hideArgsIndexes = $hideArgs[$func];
       } else {
-        $hideArgsIndexes = array();
+        $hideArgsIndexes = [];
       }
-      $f = function ($index, $arg) use(&$f, $hideArgsIndexes) {
+      $f = function ($index, $arg) use (&$f, $hideArgsIndexes) {
         static $i = 0;
         if (($i == 0) && in_array($index, $hideArgsIndexes)) {
           return '***';
@@ -145,7 +161,7 @@ function html_trace($errstr = "")
   $return_html    .= "</table>";
   $return_mailto  .= rawurlencode("=== /Trace ===");
 
-  return array($return_html, $return_mailto);
+  return [$return_html, $return_mailto];
 }
 
 /*!
@@ -159,7 +175,7 @@ function html_trace($errstr = "")
  *
  * \param string $errline The error line
  */
-function gosaRaiseError($errno, $errstr, $errfile, $errline)
+function gosaRaiseError ($errno, $errstr, $errfile, $errline)
 {
   global $error_collector,$config, $error_collector_mailto;
 
@@ -191,7 +207,7 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 
     /* Write to syslog */
     if (class_exists('logging') && !preg_match('/No such object/', $errstr)) {
-      logging::log('view', 'error', '', array(), "PHP error: $errstr ($errfile, line $errline)");
+      logging::log('view', 'error', '', [], "PHP error: $errstr($errfile, line $errline)");
     }
 
     set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT);
@@ -200,7 +216,7 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 
   /* Send all errors to logging class, except "Ldap : No such object" messages*/
   if (class_exists('logging') && !preg_match('/No such object/', $errstr)) {
-    logging::log('debug', 'all', $errfile, array(), 'Type:'.$errno.', Message:'.$errstr.', File:'.$errfile.', Line: '.$errline);
+    logging::log('debug', 'all', $errfile, [], 'Type:'.$errno.', Message:'.$errstr.', File:'.$errfile.', Line: '.$errline);
   }
 
   /* Create header as needed */
@@ -250,7 +266,7 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 
   /* Create error header */
   $error_collector_mailto .= rawurlencode("=== Error === \n");
-  $error_collector_mailto .= rawurlencode("PHP error: $errstr ($errfile, line $errline)\n");
+  $error_collector_mailto .= rawurlencode("PHP error: $errstr($errfile, line $errline)\n");
   $error_collector_mailto .= rawurlencode("=== /Error === \n\n");
 
   list($html_trace, $mailto_trace) = html_trace($errstr);
@@ -274,13 +290,13 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 /*!
  * \brief Dummy error handler
  */
-function dummy_error_handler()
+function dummy_error_handler ()
 {
 }
 
 /*! \brief Returns TRUE if SSL was used to contact FD, whether directly or through a proxy
  */
-function sslOn()
+function sslOn ()
 {
   if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
     return (strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') == 0);
@@ -293,7 +309,7 @@ function sslOn()
 
 /*! \brief Returns SSL URL to redirect to
  */
-function sslUrl()
+function sslUrl ()
 {
   $ssl = 'https://';
   if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
@@ -321,7 +337,7 @@ date_default_timezone_set("GMT");
 /* Get base dir for reference */
 $BASE_DIR = dirname(dirname(__FILE__));
 $ROOT_DIR = $BASE_DIR."/html";
-error_reporting (E_ALL | E_STRICT);
+error_reporting(E_ALL | E_STRICT);
 
 /* Register error handler */
 $error_collector        = "";
@@ -342,8 +358,8 @@ $smarty = new Smarty;
 
 $smarty->template_dir = $BASE_DIR.'/ihtml/';
 $smarty->caching      = FALSE;
-$smarty->assign('css_files', array());
-$smarty->assign('js_files', array());
+$smarty->assign('css_files', []);
+$smarty->assign('js_files', []);
 
 $smarty->php_handling = Smarty::PHP_REMOVE;
 
diff --git a/include/select/class_filterLDAPBlacklist.inc b/include/select/class_filterLDAPBlacklist.inc
index 6f533ebf79d95ade4e18a3cc6b9aea2412e3e7d4..c8844e14b328f071b7f83b1acbd8b517fa6776a7 100644
--- a/include/select/class_filterLDAPBlacklist.inc
+++ b/include/select/class_filterLDAPBlacklist.inc
@@ -25,13 +25,13 @@
  */
 class filterLDAPBlacklist {
 
-  static function query($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = "")
+  static function query ($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = "")
   {
     $result = filterLDAP::query($parent, $base, $scope, $filter, $attributes, $category, $objectStorage);
     return filterLDAPBlacklist::filterByBlacklist($result);
   }
 
-  static function filterByBlacklist($entries)
+  static function filterByBlacklist ($entries)
   {
     if (session::is_set('filterWhitelist')) {
       $wlist = session::get('filterWhitelist');
@@ -57,7 +57,7 @@ class filterLDAPBlacklist {
             if (isset($entry[$attr_name])) {
               $test = $entry[$attr_name];
               if (!is_array($test)) {
-                $test = array($test);
+                $test = [$test];
               }
               if (in_array($match, $test)) {
                 unset($entries[$id]);
diff --git a/include/select/groupSelect/class_groupSelect.inc b/include/select/groupSelect/class_groupSelect.inc
index d1bc7a529f29d6cee4b4b8b585901fb64c8d542f..2b26752ea8967dec9700aa991ed1388e83e4627d 100644
--- a/include/select/groupSelect/class_groupSelect.inc
+++ b/include/select/groupSelect/class_groupSelect.inc
@@ -23,10 +23,10 @@
  */
 class groupSelect extends simpleSelectManagement
 {
-  protected $objectTypes  = array('group');
+  protected $objectTypes  = ['group'];
   protected $autoFilter   = FALSE;
 
-  function __construct()
+  function __construct ()
   {
     $this->filterXMLPath = get_template_path('group-filter.xml', TRUE, dirname(__FILE__));
 
diff --git a/include/select/objectSelect/class_objectSelect.inc b/include/select/objectSelect/class_objectSelect.inc
index f76215238c1d0fe4f2bc68bd1792b59cc21d051c..4c805485f67a39c5d182909dbe88b4103167e9a1 100644
--- a/include/select/objectSelect/class_objectSelect.inc
+++ b/include/select/objectSelect/class_objectSelect.inc
@@ -23,12 +23,12 @@
  */
 class objectSelect extends userSelect
 {
-  protected $objectTypes = array(
+  protected $objectTypes = [
     'user', 'ogroup',
     'application',
     'terminal', 'workstation', 'server', 'printer', 'phone',
     'simpleSecurityObject'
-  );
-  protected $autoFilterAttributes = array('dn', 'cn', 'uid', 'description', 'mail');
+  ];
+  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
 }
 ?>
diff --git a/include/select/systemSelect/class_systemSelect.inc b/include/select/systemSelect/class_systemSelect.inc
index 0ba3bf30e3b77a5a96527ccf629eb1c5b7168d68..3c65d226455655edcfb0f1474df3e427e564368c 100644
--- a/include/select/systemSelect/class_systemSelect.inc
+++ b/include/select/systemSelect/class_systemSelect.inc
@@ -23,9 +23,9 @@
  */
 class systemSelect extends simpleSelectManagement
 {
-  protected $autoFilterAttributes = array('dn', 'cn', 'ipHostNumber', 'macAddress');
-  protected $objectTypes = array(
+  protected $autoFilterAttributes = ['dn', 'cn', 'ipHostNumber', 'macAddress'];
+  protected $objectTypes = [
     'terminal', 'workstation', 'server'
-  );
+  ];
 }
 ?>
diff --git a/include/select/userGroupSelect/class_userGroupSelect.inc b/include/select/userGroupSelect/class_userGroupSelect.inc
index 70667205b8e04254b1d05a5d87cc54f0bec4f074..cd820399c7d176fe1492bf90becf7dd366eba47e 100644
--- a/include/select/userGroupSelect/class_userGroupSelect.inc
+++ b/include/select/userGroupSelect/class_userGroupSelect.inc
@@ -23,13 +23,13 @@
  */
 class userGroupSelect extends userSelect
 {
-  protected $objectTypes = array('user', 'group');
-  protected $autoFilterAttributes = array('dn', 'cn', 'uid', 'description', 'mail');
+  protected $objectTypes = ['user', 'group'];
+  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
 
-  function __construct()
+  function __construct ()
   {
     if (class_available('mixedGroup')) {
-      $this->objectTypes = array('user', 'ogroup');
+      $this->objectTypes = ['user', 'ogroup'];
     }
     parent::__construct();
   }
@@ -40,6 +40,6 @@ class userGroupSelect extends userSelect
  */
 class userGroupRoleSelect extends userGroupSelect
 {
-  protected $objectTypes = array('user', 'group', 'role', 'ogroup');
+  protected $objectTypes = ['user', 'group', 'role', 'ogroup'];
 }
 ?>
diff --git a/include/select/userSelect/class_userSelect.inc b/include/select/userSelect/class_userSelect.inc
index 536f9adb71b6fbca96c9e9f0a01cf4ce798cccc2..2d9640afaadbac78358eee14952ae017f606297c 100644
--- a/include/select/userSelect/class_userSelect.inc
+++ b/include/select/userSelect/class_userSelect.inc
@@ -23,22 +23,22 @@
  */
 class userSelect extends simpleSelectManagement
 {
-  protected $objectTypes          = array('user');
-  protected $autoFilterAttributes = array('dn', 'cn', 'uid', 'description', 'mail');
+  protected $objectTypes          = ['user'];
+  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
 
   function parseXML ($file)
   {
     $data = parent::parseXML($file);
     $data['list']['table']['layout'] = '|20px;c||||';
-    $columns = array (
-      array (
+    $columns = [
+       [
         'label'         => _('Login'),
         'sortAttribute' => 'uid',
         'sortType'      => 'string',
         'value'         => '%{filter:selectLink(pid,row,dn,uid)}',
         'export'        => 'true',
-      ),
-    );
+       ],
+    ];
     array_splice($data['list']['table']['column'], 2, 0, $columns);
     return $data;
   }
diff --git a/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc b/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
index fa113df8d04c19ab863f28d80d3fa5e3c62fb1c5..7e14879e14e651701a852a3a6fb765c04e832f0a 100644
--- a/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
+++ b/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
@@ -61,7 +61,7 @@ class BaseSelectorAttribute extends Attribute
       }
       if ($this->plugin->dn == "new") {
         $ui = get_userinfo();
-        $this->setValue(dn2base(session::global_is_set("CurrentMainBase") ? "cn=dummy,".session::global_get("CurrentMainBase") : $ui->dn));
+        $this->setValue(dn2base(session::is_set("CurrentMainBase") ? "cn=dummy,".session::get("CurrentMainBase") : $ui->dn));
       } else {
         $this->setValue(dn2base($this->plugin->dn, $this->ou));
       }
@@ -120,7 +120,7 @@ class BaseSelectorAttribute extends Attribute
     }
   }
 
-  function checkValue($value)
+  function checkValue ($value)
   {
     if (!is_string($value) && (!is_object($value) || !method_exists($value, '__toString' ))) {
       throw new InvalidValueException(_('Base field value should always be a string'));
@@ -155,9 +155,9 @@ class BaseSelectorAttribute extends Attribute
     if ($this->disabled) {
       $display = $this->renderInputField(
         'text', '',
-        array(
+        [
           'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-        )
+        ]
       );
     } else {
       $display = '{literal}'.$this->baseSelector->render().'{/literal}';
@@ -165,7 +165,7 @@ class BaseSelectorAttribute extends Attribute
     return $this->renderAcl($display);
   }
 
-  function getHtmlId()
+  function getHtmlId ()
   {
     if (isset($this->baseSelector)) {
       return $this->baseSelector->getInputHtmlId();
@@ -174,7 +174,7 @@ class BaseSelectorAttribute extends Attribute
     }
   }
 
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
diff --git a/include/simpleplugin/attributes/class_BooleanAttribute.inc b/include/simpleplugin/attributes/class_BooleanAttribute.inc
index 4930296bb6f738853855b674c90e1758507ea858..8795e6696d4fec5f5183e87fb4ba238b22aed001 100644
--- a/include/simpleplugin/attributes/class_BooleanAttribute.inc
+++ b/include/simpleplugin/attributes/class_BooleanAttribute.inc
@@ -45,12 +45,12 @@ class BooleanAttribute extends Attribute
     $this->falseValue = $falseValue;
   }
 
-  function setTemplatable($bool)
+  function setTemplatable ($bool)
   {
     $this->templatable = $bool;
   }
 
-  protected function isTemplatable()
+  protected function isTemplatable ()
   {
     /* Allow to set to %askme% if we are not (de)activating other fields */
     return (!$this->submitForm && empty($this->managedAttributes) && $this->templatable);
@@ -93,7 +93,7 @@ class BooleanAttribute extends Attribute
   function renderFormInput ()
   {
     $id = $this->getHtmlId();
-    $attributes = ($this->value ? array('checked' => 'checked') : array());
+    $attributes = ($this->value ? ['checked' => 'checked'] : []);
     if ($this->submitForm) {
       $js       = 'document.mainform.submit();';
       $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
@@ -174,7 +174,7 @@ class ObjectClassBooleanAttribute extends BooleanAttribute
     if (is_array($objectclasses)) {
       $this->objectclasses = $objectclasses;
     } else {
-      $this->objectclasses = array($objectclasses);
+      $this->objectclasses = [$objectclasses];
     }
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->setInLdap(FALSE);
diff --git a/include/simpleplugin/attributes/class_CompositeAttribute.inc b/include/simpleplugin/attributes/class_CompositeAttribute.inc
index b21936fba62deddccdf56f1cd436146a5be12fbf..887ec74e9a294d2220fff8ca5a11aa2ff6c48712 100644
--- a/include/simpleplugin/attributes/class_CompositeAttribute.inc
+++ b/include/simpleplugin/attributes/class_CompositeAttribute.inc
@@ -90,12 +90,12 @@ class CompositeAttribute extends Attribute
     $this->linearRendering = $bool;
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     $res = preg_match($this->readFormat, $value, $m);
     if ($res === 1) {
       $m = array_slice($m, 1);
-      $values = array();
+      $values = [];
       foreach (array_keys($this->attributes) as $name) {
         if (isset($m[$name])) {
           $values[] = $m[$name];
@@ -112,7 +112,7 @@ class CompositeAttribute extends Attribute
     return array_fill(0, count($this->attributes), '');
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     if ($this->writeFormat === FALSE) {
       return $values;
@@ -213,7 +213,7 @@ class CompositeAttribute extends Attribute
     unset($attribute);
   }
 
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     if ($this->visible) {
       if ($this->linearRendering) {
@@ -228,7 +228,7 @@ class CompositeAttribute extends Attribute
     }
   }
 
-  function getForHtmlId()
+  function getForHtmlId ()
   {
     // Label (if any) should point to the first attribute
     if (isset($this->attributes[0])) {
@@ -238,7 +238,7 @@ class CompositeAttribute extends Attribute
     }
   }
 
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     if ($form) {
       if ($this->visible) {
@@ -250,7 +250,7 @@ class CompositeAttribute extends Attribute
       }
     } else {
       parent::serializeAttribute($attributes, $form);
-      $subattributes = array();
+      $subattributes = [];
       foreach ($this->attributes as &$attribute) {
         $attribute->setDisabled($this->disabled);
         $attribute->serializeAttribute($subattributes, $form);
@@ -261,7 +261,7 @@ class CompositeAttribute extends Attribute
     }
   }
 
-  function renderFormInput()
+  function renderFormInput ()
   {
     $display = "";
     foreach ($this->attributes as &$attribute) {
@@ -274,9 +274,9 @@ class CompositeAttribute extends Attribute
     return $display;
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
-    $ret = array();
+    $ret = [];
     foreach ($this->attributes as &$attribute) {
       $ret = array_merge($ret, $attribute->htmlIds());
     }
diff --git a/include/simpleplugin/attributes/class_DateAttribute.inc b/include/simpleplugin/attributes/class_DateAttribute.inc
index e9ff6957c161ab77b395d894591aff22e35ffe72..2f7d9bca7e48259a42d24cabe87fecb9d4ca7474 100644
--- a/include/simpleplugin/attributes/class_DateAttribute.inc
+++ b/include/simpleplugin/attributes/class_DateAttribute.inc
@@ -44,9 +44,10 @@ class DateAttribute extends Attribute
 
   function inputValue ($value)
   {
-    if ($value === "" && !$this->isRequired()) {
-      return $value;
-    } elseif ($this->isTemplate() && preg_match('/%/', $value)) {
+    if (
+        ($value === '') ||
+        ($this->isTemplate() && preg_match('/%/', $value))
+      ) {
       return $value;
     } else {
       return $this->ldapToDate($value);
@@ -55,7 +56,7 @@ class DateAttribute extends Attribute
 
   function getValue ()
   {
-    if ($this->value === "" && !$this->isRequired()) {
+    if ($this->value === '') {
       return $this->value;
     } else {
       try {
@@ -70,7 +71,7 @@ class DateAttribute extends Attribute
     }
   }
 
-  protected function ldapToDate($ldapValue)
+  protected function ldapToDate ($ldapValue)
   {
     $date = DateTime::createFromFormat($this->format, $ldapValue, new DateTimeZone('UTC'));
     if ($date !== FALSE) {
@@ -81,12 +82,12 @@ class DateAttribute extends Attribute
     }
   }
 
-  protected function dateToLdap($dateValue)
+  protected function dateToLdap ($dateValue)
   {
     return $dateValue->format($this->format);
   }
 
-  function getDateValue()
+  function getDateValue ()
   {
     $value = $this->value;
     if (!($value instanceof DateTime)) {
@@ -97,7 +98,7 @@ class DateAttribute extends Attribute
 
   function computeLdapValue ()
   {
-    if ($this->value === "" && !$this->isRequired()) {
+    if ($this->value === '') {
       return $this->value;
     } elseif (!($this->value instanceof DateTime)) {
       try {
@@ -142,10 +143,10 @@ class DateAttribute extends Attribute
     $id = $this->getHtmlId();
     $display = $this->renderInputField(
       'text', $id,
-      array(
+      [
         'value' => '{literal}'.$this->getValue().'{/literal}',
         'class' => 'date'
-      )
+      ]
     );
     $display  .= '{if $'.$this->getAcl().'ACL|regex_replace:"/[cdmr]/":"" == "w"}'.
         '<script type="text/javascript">
@@ -168,7 +169,7 @@ class GeneralizedTimeDateAttribute extends DateAttribute
     parent::__construct($label, $description, $ldapName, $required, '', $defaultValue, $acl);
   }
 
-  protected function ldapToDate($ldapValue)
+  protected function ldapToDate ($ldapValue)
   {
     try {
       return LdapGeneralizedTime::fromString($ldapValue);
@@ -178,7 +179,7 @@ class GeneralizedTimeDateAttribute extends DateAttribute
     }
   }
 
-  protected function dateToLdap($dateValue)
+  protected function dateToLdap ($dateValue)
   {
     return LdapGeneralizedTime::toString($dateValue);
   }
@@ -191,31 +192,31 @@ class TimeHisAttribute extends CompositeAttribute
 {
   protected $convert;
 
-  function __construct($label, $description, $ldapName, $required, $convert = TRUE, $acl = '')
+  function __construct ($label, $description, $ldapName, $required, $convert = TRUE, $acl = '')
   {
     $this->convert = $convert;
-    $attributes = array(
-      new IntAttribute (
+    $attributes = [
+      new IntAttribute(
         '',  _('Hours'),
         $ldapName.'_hours', TRUE,
         0, 23, 1
       ),
-      new IntAttribute (
+      new IntAttribute(
         ':', _('Minutes'),
         $ldapName.'_minutes', TRUE,
         0, 59, 0
       ),
-      new IntAttribute (
+      new IntAttribute(
         ':', _('Seconds'),
         $ldapName.'_seconds', TRUE,
         0, 59, 0
       )
-    );
+    ];
     parent::__construct($description, $ldapName, $attributes, '/^(\d\d)(\d\d)(\d\d)$/', '%02d%02d%02d', $acl, $label);
     $this->setLinearRendering(TRUE);
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     $values = parent::readValues($value);
     if ($this->convert) {
@@ -231,7 +232,7 @@ class TimeHisAttribute extends CompositeAttribute
     return $values;
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     if ($this->convert) {
       $datetime = new DateTime('T'.implode(':', $values), timezone::getDefaultTimeZone());
@@ -245,7 +246,7 @@ class TimeHisAttribute extends CompositeAttribute
     return parent::writeValues($values);
   }
 
-  function displayValue($value)
+  function displayValue ($value)
   {
     $values = parent::readValues($value);
     $datetime = new DateTime('T'.implode(':', $values), timezone::utc());
@@ -265,21 +266,21 @@ class TimeHisAttribute extends CompositeAttribute
  */
 class TimeHiAttribute extends TimeHisAttribute
 {
-  function __construct($label, $description, $ldapName, $required, $convert = TRUE, $acl = '')
+  function __construct ($label, $description, $ldapName, $required, $convert = TRUE, $acl = '')
   {
     $this->convert = $convert;
-    $attributes = array(
-      new IntAttribute (
+    $attributes = [
+      new IntAttribute(
         '',  _('Hours'),
         $ldapName.'_hours', TRUE,
         0, 23, 1
       ),
-      new IntAttribute (
+      new IntAttribute(
         ':', _('Minutes'),
         $ldapName.'_minutes', TRUE,
         0, 59, 0
       )
-    );
+    ];
     CompositeAttribute::__construct($description, $ldapName, $attributes, '/^(\d\d)(\d\d)$/', '%02d%02d', $acl, $label);
     $this->setLinearRendering(TRUE);
   }
@@ -290,9 +291,9 @@ class TimeHiAttribute extends TimeHisAttribute
  */
 class DateTimeAttribute extends CompositeAttribute
 {
-  function __construct($label, $description, $ldapName, $required, $acl = '')
+  function __construct ($label, $description, $ldapName, $required, $acl = '')
   {
-    $attributes = array(
+    $attributes = [
       new DateAttribute(
         _('Date'), '',
         $ldapName.'_date', $required,
@@ -304,7 +305,33 @@ class DateTimeAttribute extends CompositeAttribute
         $ldapName.'_time', $required,
         FALSE
       )
-    );
+    ];
     parent::__construct($description, $ldapName, $attributes, '/^(\d{8})(\d{6})$/', '%s%s', $acl, $label);
   }
 }
+
+/*!
+ * \brief Read-only GeneralizedTimeDateAttribute. Used by audit plugin
+ */
+class GeneralizedTimeDisplayAttribute extends GeneralizedTimeDateAttribute
+{
+  protected $displayFormat;
+
+  function __construct ($label, $description, $ldapName, $required, $defaultValue = '', $format = 'Y-m-d, H:i:s', $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->displayFormat = $format;
+  }
+
+  function getValue ()
+  {
+    return $this->computeLdapValue();
+  }
+
+  function renderFormInput ()
+  {
+    $date = $this->getDateValue();
+    $date->setTimezone(timezone::getDefaultTimeZone());
+    return htmlentities($date->format($this->displayFormat), ENT_COMPAT, 'UTF-8');
+  }
+}
diff --git a/include/simpleplugin/attributes/class_FileAttribute.inc b/include/simpleplugin/attributes/class_FileAttribute.inc
index a9475f7811a81e8ed520d314baac81bb21f6a76e..0c58678100187951abfe240f919797579fd37c1f 100644
--- a/include/simpleplugin/attributes/class_FileAttribute.inc
+++ b/include/simpleplugin/attributes/class_FileAttribute.inc
@@ -25,7 +25,7 @@ class FileAttribute extends Attribute
 {
   protected $binary = TRUE;
 
-  function loadPostValue()
+  function loadPostValue ()
   {
     $this->postValue = $this->value;
     if (!empty($_FILES[$this->getHtmlId()]['name']) && $this->isVisible()) {
@@ -52,7 +52,7 @@ class FileAttribute extends Attribute
    *
    *  \param filehandle $handle The handle on the opened uploaded file
    */
-  function readFile($handle)
+  function readFile ($handle)
   {
     $postValue = fread($handle, 1024);
     while (!feof($handle)) {
@@ -69,7 +69,7 @@ class FileAttribute extends Attribute
     return $this->renderAcl($display);
   }
 
-  function displayValue($value)
+  function displayValue ($value)
   {
     return sprintf(_('%s (%d bytes)'), $this->getLabel(), mb_strlen($value, '8bit'));
   }
@@ -79,7 +79,7 @@ class FileAttribute extends Attribute
    * \param array &$attributes the attributes array
    * \param boolean $form
    */
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
@@ -96,7 +96,7 @@ class FileAttribute extends Attribute
    *
    *  \param mixed $value the value
    */
-  function deserializeValue($value)
+  function deserializeValue ($value)
   {
     if ($this->disabled) {
       return sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName());
@@ -130,7 +130,7 @@ class FileDownloadAttribute extends FileAttribute
     $this->binary     = ($extension != '.txt');
   }
 
-  function computeFilename()
+  function computeFilename ()
   {
     return $this->getLdapName().$this->extension;
   }
@@ -162,26 +162,26 @@ class FileDownloadAttribute extends FileAttribute
     $display = '';
     if ($this->upload) {
       $display  .= $this->renderInputField('file', $id);
-      $display  .= $this->renderInputField('submit', 'upload'.$id, array('value' => _('Upload')));
+      $display  .= $this->renderInputField('submit', 'upload'.$id, ['value' => _('Upload')]);
     }
     if ($this->download) {
       $display  .= $this->renderInputField(
         'image', 'download'.$id,
-        array(
+        [
           'title' => _('Download'),
           'alt'   => _('Download'),
           'class' => 'center',
           'src'   => 'geticon.php?context=actions&amp;icon=document-save&amp;size=16',
-        )
+        ]
       );
     }
     return $this->renderAcl($display);
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id   = $this->getHtmlId();
-    $ids  = array();
+    $ids  = [];
     if ($this->download) {
       $ids[] = 'download'.$id;
     }
@@ -192,7 +192,7 @@ class FileDownloadAttribute extends FileAttribute
     return $ids;
   }
 
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     if ($this->upload == FALSE) {
       parent::renderAttribute($attributes, FALSE);
@@ -250,7 +250,7 @@ class FileTextAreaAttribute extends FileDownloadAttribute
   function fixPostValue ($value)
   {
     /* Replace CRLF by LF, to avoid non-ASCII chars */
-    return str_replace(array("\r\n", "\r"), "\n", $value);
+    return str_replace(["\r\n", "\r"], "\n", $value);
   }
 
   function renderFormInput ()
@@ -262,7 +262,7 @@ class FileTextAreaAttribute extends FileDownloadAttribute
     return $this->renderAcl($display).parent::renderFormInput();
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id     = $this->getHtmlId();
     $ids    = parent::htmlIds();
@@ -293,7 +293,7 @@ class ImageAttribute extends FileAttribute
     $this->forceSize  = $forceSize;
   }
 
-  function setPlaceholder($placeholder)
+  function setPlaceholder ($placeholder)
   {
     $this->placeholder = $placeholder;
   }
@@ -412,22 +412,22 @@ class ImageAttribute extends FileAttribute
     $display  .= $this->renderInputField('file', $id);
     $display .= $this->renderInputField(
       'image', $id.'_upload',
-      array(
+      [
         'class' => 'center',
         'src'   => 'geticon.php?context=actions&amp;icon=upload&amp;size=16',
         'title' => _('Upload'),
         'alt'   => _('Upload')
-      )
+      ]
     );
     if (!$this->isRequired()) {
       $display .= $this->renderInputField(
         'image', $id.'_remove',
-        array(
+        [
           'class' => 'center',
           'src'   => 'geticon.php?context=actions&amp;icon=remove&amp;size=16',
           'title' => _('Remove'),
           'alt'   => _('Remove')
-        )
+        ]
       );
     }
     if (($this->getValue() == '') && ($this->placeholder != '')) {
@@ -439,10 +439,10 @@ class ImageAttribute extends FileAttribute
     return $this->renderAcl($display);
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id = $this->getHtmlId();
-    return array($id.'_img',$id,'upload'.$id);
+    return [$id.'_img',$id,'upload'.$id];
   }
 
   /*! \brief Fill LDAP value in the attrs array
@@ -458,7 +458,7 @@ class ImageAttribute extends FileAttribute
         }
         $attrs[$this->getLdapName()] = $value;
       } else {
-        $attrs[$this->getLdapName()] = array();
+        $attrs[$this->getLdapName()] = [];
       }
     }
   }
diff --git a/include/simpleplugin/attributes/class_FlagsAttribute.inc b/include/simpleplugin/attributes/class_FlagsAttribute.inc
index 68d01efd961868b593156bab716157411df21561..6c2ad9f7bf98234e867b8a0b133343fbd485a8de 100644
--- a/include/simpleplugin/attributes/class_FlagsAttribute.inc
+++ b/include/simpleplugin/attributes/class_FlagsAttribute.inc
@@ -59,7 +59,7 @@ class FlagsAttribute extends StringAttribute
     }
   }
 
-  function getValue()
+  function getValue ()
   {
     $value = '[';
     if (is_object($this->plugin)) {
diff --git a/include/simpleplugin/attributes/class_IntAttribute.inc b/include/simpleplugin/attributes/class_IntAttribute.inc
index 2cf40d37f69e819ac64d26f175dfd9d2f98533da..9ab048fca9f40cd7bfcd72e44b22cbd41c6b6a78 100644
--- a/include/simpleplugin/attributes/class_IntAttribute.inc
+++ b/include/simpleplugin/attributes/class_IntAttribute.inc
@@ -78,8 +78,8 @@ class IntAttribute extends Attribute
     $error = parent::check();
     if (!empty($error)) {
       return $error;
-    } else {
-      if (!is_numeric($this->value) && (!empty($this->value) || $this->isRequired())) {
+    } elseif ($this->value !== '') {
+      if (!is_numeric($this->value)) {
         return msgPool::invalid($this->getLabel(), $this->value, "/./", $this->example);
       }
       if ((($this->min !== FALSE) && ($this->value < $this->min))
@@ -92,9 +92,9 @@ class IntAttribute extends Attribute
   function renderFormInput ()
   {
     $id = $this->getHtmlId();
-    $attributes = array(
+    $attributes = [
       'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-    );
+    ];
     if ($this->min !== FALSE) {
       $attributes['min'] = $this->min;
     }
@@ -117,9 +117,9 @@ class IntAttribute extends Attribute
     $id = $this->getHtmlId();
     $display = $this->renderInputField(
       'text', $id,
-      array(
+      [
         'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-      )
+      ]
     );
     return $this->renderAcl($display);
   }
diff --git a/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc b/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
index 8b63d683ca3456e6d1d773cc8824888aa6619ac7..522176c84c96c30bf46df95a352d0ebe7673af37 100644
--- a/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
+++ b/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
@@ -24,23 +24,23 @@
 class phoneSelect extends simpleSelectManagement
 {
   protected $multiSelect          = FALSE;
-  protected $autoFilterAttributes = array('dn','cn','ipHostNumber','macAddress','telephoneNumber');
-  protected $objectTypes          = array('phone');
+  protected $autoFilterAttributes = ['dn','cn','ipHostNumber','macAddress','telephoneNumber'];
+  protected $objectTypes          = ['phone'];
 
   function parseXML ($file)
   {
     $data = parent::parseXML($file);
     /* Add column for phone number */
     $data['list']['table']['layout'] .= '|';
-    $columns = array (
-      array (
+    $columns = [
+       [
         'label'         => _('Number'),
         'sortAttribute' => 'telephoneNumber',
         'sortType'      => 'string',
         'value'         => '%{filter:selectLink(pid,row,dn,telephoneNumber)}',
         'export'        => 'true',
-      ),
-    );
+       ],
+    ];
     array_splice($data['list']['table']['column'], 2, 0, $columns);
     return $data;
   }
@@ -58,7 +58,7 @@ class phoneSelect extends simpleSelectManagement
  */
 class mobilePhoneSelect extends phoneSelect
 {
-  protected $objectTypes = array('mobilePhone');
+  protected $objectTypes = ['mobilePhone'];
 }
 
 /*!
@@ -66,7 +66,7 @@ class mobilePhoneSelect extends phoneSelect
  */
 class anyPhoneSelect extends phoneSelect
 {
-  protected $objectTypes = array('phone','mobilePhone');
+  protected $objectTypes = ['phone','mobilePhone'];
 }
 
 /*!
@@ -74,7 +74,7 @@ class anyPhoneSelect extends phoneSelect
  */
 class phoneSelectDialog extends GenericDialog
 {
-  function __construct($simplePlugin, $attribute, $type)
+  function __construct ($simplePlugin, $attribute, $type)
   {
     $this->attribute  = $attribute;
     switch ($type) {
@@ -138,18 +138,18 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
     if ($this->type !== FALSE) {
       $display .= $this->renderAcl($this->renderInputField(
         'image', $id.'_edit',
-        array(
+        [
           'class' => 'center',
           'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
           'title' => _('Edit'),
           'alt'   => _('Edit')
-        )
+        ]
       ));
     }
     return $display;
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $ids = parent::htmlIds();
     if ($this->type !== FALSE) {
diff --git a/include/simpleplugin/attributes/class_SelectAttribute.inc b/include/simpleplugin/attributes/class_SelectAttribute.inc
index 58eeb1f0050c4b19db02778720da1aeafabf6e05..e4797a86f4a05bdd16a2900fc65b25a88611dd4c 100644
--- a/include/simpleplugin/attributes/class_SelectAttribute.inc
+++ b/include/simpleplugin/attributes/class_SelectAttribute.inc
@@ -43,7 +43,7 @@ class SelectAttribute extends Attribute
    *  \param array $outputs The labels corresponding to the choices, leave to NULL if you want to display the choices themselves
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
    */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $choices = array(), $defaultValue = "", $outputs = NULL, $acl = "")
+  function __construct ($label, $description, $ldapName, $required = FALSE, $choices = [], $defaultValue = "", $outputs = NULL, $acl = "")
   {
     if (!in_array($defaultValue, $choices, TRUE) && isset($choices[0])) {
       $defaultValue = $choices[0];
@@ -90,7 +90,7 @@ class SelectAttribute extends Attribute
    */
   function setDisplayChoices ($values)
   {
-    $this->outputs = array();
+    $this->outputs = [];
     $values = array_values($values);
     $i = 0;
     foreach ($this->choices as $choice) {
@@ -191,7 +191,7 @@ class SelectAttribute extends Attribute
     return $this->renderAcl($display);
   }
 
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
@@ -206,7 +206,7 @@ class SelectAttribute extends Attribute
   }
 
   /*! \brief Set the size of the HTML input tag, useful to display several options on the screen instead of just one */
-  function setSize($size)
+  function setSize ($size)
   {
     $this->size = $size;
   }
@@ -234,7 +234,7 @@ class ObjectSelectAttribute extends SelectAttribute
 
   function __construct ($label, $description, $ldapName, $required, $objectType, $objectAttrs = NULL, $objectFilter = '', $acl = "")
   {
-    parent::__construct($label, $description, $ldapName, $required, array(), "", NULL, $acl);
+    parent::__construct($label, $description, $ldapName, $required, [], "", NULL, $acl);
     $this->objectType   = $objectType;
     $this->objectAttrs  = $objectAttrs;
     $this->objectFilter = $objectFilter;
@@ -248,7 +248,7 @@ class ObjectSelectAttribute extends SelectAttribute
     }
   }
 
-  function updateChoices()
+  function updateChoices ()
   {
     $objects = objects::ls($this->objectType, $this->objectAttrs, NULL, $this->objectFilter);
     $this->setChoices(array_keys($objects), array_values($objects));
diff --git a/include/simpleplugin/attributes/class_SetAttribute.inc b/include/simpleplugin/attributes/class_SetAttribute.inc
index 0101290fc8a3485343b987f6d4392b0c6c2d3a45..15ce67e3507bb368483841178b8cea156ea35557 100644
--- a/include/simpleplugin/attributes/class_SetAttribute.inc
+++ b/include/simpleplugin/attributes/class_SetAttribute.inc
@@ -35,7 +35,7 @@ class SetAttribute extends Attribute
    *  \param array $values The default values
    *  \param boolean $valueUnicity Should the value unicity be checked
    */
-  function __construct ($attribute, $values = array(), $valueUnicity = TRUE)
+  function __construct ($attribute, $values = [], $valueUnicity = TRUE)
   {
     parent::__construct(
       $attribute->getLabel(),     $attribute->getDescription(),
@@ -60,7 +60,7 @@ class SetAttribute extends Attribute
   protected function loadAttrValue ($attrs)
   {
     if (isset($attrs[$this->getLdapName()]["count"])) {
-      $this->value = array();
+      $this->value = [];
       for ($i = 0; $i < $attrs[$this->getLdapName()]["count"]; $i++) {
         $this->value[] = $attrs[$this->getLdapName()][$i];
       }
@@ -159,7 +159,7 @@ class SetAttribute extends Attribute
     return $this->renderAcl($display).$attr_display.$this->renderAcl($buttons);
   }
 
-  function renderOnlyFormInput()
+  function renderOnlyFormInput ()
   {
     if (($this->size < 15) && ($this->size < count($this->value))) {
       $this->size = min(15, count($this->value));
@@ -182,7 +182,7 @@ class SetAttribute extends Attribute
     }
     $attribute = $this->attribute;
     return array_map(
-      function ($value) use($attribute)
+      function ($value) use ($attribute)
       {
         return $attribute->displayValue($value);
       },
@@ -190,7 +190,7 @@ class SetAttribute extends Attribute
     );
   }
 
-  function handleEditingValue()
+  function handleEditingValue ()
   {
     if ($this->editingValue === FALSE) {
       $this->attribute->resetToDefault();
@@ -212,7 +212,7 @@ class SetAttribute extends Attribute
     }
   }
 
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     if ($this->attribute === FALSE) {
       return parent::renderAttribute($attributes, $readOnly);
@@ -222,25 +222,25 @@ class SetAttribute extends Attribute
       if ($this->linearRendering || $readOnly) {
         parent::renderAttribute($attributes, $readOnly);
       } else {
-        $attributes[$this->getLdapName()] = array(
+        $attributes[$this->getLdapName()] = [
           'htmlid'      => $this->getForHtmlId(),
           'label'       => '{literal}'.$this->getLabel().'{/literal}'.($this->isRequired() ? '{$must}' : ''),
           'description' => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
           'input'       => $this->renderAcl($this->renderOnlyFormInput()),
-        );
+        ];
         $this->handleEditingValue();
         $this->attribute->renderAttribute($attributes, $readOnly);
-        $attributes[$this->getLdapName().'_buttons'] = array(
+        $attributes[$this->getLdapName().'_buttons'] = [
           'htmlid'      => 'add'.$this->getHtmlId(),
           'label'       => '',
           'description' => '',
           'input'       => $this->renderAcl($this->renderButtons()),
-        );
+        ];
       }
     }
   }
 
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     parent::serializeAttribute($attributes, $form);
     if ($this->attribute === FALSE) {
@@ -249,7 +249,7 @@ class SetAttribute extends Attribute
     if ($form) {
       return;
     } else {
-      $subattributes = array();
+      $subattributes = [];
       $this->attribute->setDisabled($this->disabled);
       $this->attribute->serializeAttribute($subattributes, $form);
       $attributes[$this->getLdapName()]['attributes']       = $subattributes;
@@ -257,7 +257,7 @@ class SetAttribute extends Attribute
     }
   }
 
-  function getForHtmlId()
+  function getForHtmlId ()
   {
     // Label should point to the attribute
     if (is_object($this->attribute)) {
@@ -270,8 +270,8 @@ class SetAttribute extends Attribute
   function renderButtons ()
   {
     $id = $this->getHtmlId();
-    $buttons  = $this->renderInputField('submit', 'add'.$id, array('value' => '{msgPool type=addButton}'));
-    $buttons .= $this->renderInputField('submit', 'del'.$id, array('value' => '{msgPool type=delButton}'));
+    $buttons  = $this->renderInputField('submit', 'add'.$id, ['value' => '{msgPool type=addButton}']);
+    $buttons .= $this->renderInputField('submit', 'del'.$id, ['value' => '{msgPool type=delButton}']);
     return $buttons;
   }
 
@@ -280,10 +280,10 @@ class SetAttribute extends Attribute
     return array_values($this->value);
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id = $this->getHtmlId();
-    return array_merge(array('add'.$id,'del'.$id,'row'.$id), $this->attribute->htmlIds());
+    return array_merge(['add'.$id,'del'.$id,'row'.$id], $this->attribute->htmlIds());
   }
 
   /*! \brief Set the parent plugin for this attribute
@@ -298,12 +298,12 @@ class SetAttribute extends Attribute
     }
   }
 
-  function getArrayValues()
+  function getArrayValues ()
   {
-    $result = array();
+    $result = [];
     foreach ($this->value as $value) {
       $this->attribute->setValue($value);
-      $row = array();
+      $row = [];
       foreach ($this->attribute->getArrayValue() as $val) {
         $row[] = $val;
       }
@@ -312,7 +312,7 @@ class SetAttribute extends Attribute
     return $result;
   }
 
-  function foreignKeyUpdate($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
   {
     foreach ($this->value as $key => &$value) {
       if (($source['FIELD'] == 'dn') && ($source['MODE'] == 'move')) {
@@ -336,17 +336,17 @@ class SetAttribute extends Attribute
     unset($value);
   }
 
-  function foreignKeyCheck($value, $source)
+  function foreignKeyCheck ($value, $source)
   {
     return in_array($value, $this->value);
   }
 
-  function setSize($size)
+  function setSize ($size)
   {
     $this->size = $size;
   }
 
-  function checkValue($value)
+  function checkValue ($value)
   {
     if (!is_array($value)) {
       throw new InvalidValueException(sprintf(_('SetAttribute "%s" was set to a non-compatible value'), $this->getLabel()));
@@ -371,24 +371,24 @@ class OrderedArrayAttribute extends SetAttribute
    *  \param array $values The default values
    *  \param boolean $edit_enabled Can the values be edited
    */
-  function __construct ($attribute, $order = TRUE, $values = array(), $edit_enabled = FALSE)
+  function __construct ($attribute, $order = TRUE, $values = [], $edit_enabled = FALSE)
   {
     parent::__construct($attribute, $values);
     $this->order        = $order;
     $this->edit_enabled = $edit_enabled;
   }
 
-  function setHeight($h)
+  function setHeight ($h)
   {
     $this->height = $h;
   }
 
-  function setHeaders($h)
+  function setHeaders ($h)
   {
     $this->headers = $h;
   }
 
-  function readValue($value)
+  function readValue ($value)
   {
     if ($this->order) {
       return preg_split('/:/', $value, 2);
@@ -397,7 +397,7 @@ class OrderedArrayAttribute extends SetAttribute
     }
   }
 
-  function writeValue($key, $value)
+  function writeValue ($key, $value)
   {
     if ($this->order) {
       return $key.":".$value;
@@ -408,7 +408,7 @@ class OrderedArrayAttribute extends SetAttribute
 
   function computeLdapValue ()
   {
-    $ldapValue = array();
+    $ldapValue = [];
     foreach ($this->value as $key => $value) {
       $ldapValue[] = $this->writeValue($key, $value);
     }
@@ -418,7 +418,7 @@ class OrderedArrayAttribute extends SetAttribute
   protected function loadAttrValue ($attrs)
   {
     if (isset($attrs[$this->getLdapName()]["count"])) {
-      $this->value = array();
+      $this->value = [];
       for ($i = 0; $i < $attrs[$this->getLdapName()]["count"]; $i++) {
         $value = $this->readValue($attrs[$this->getLdapName()][$i]);
         if (is_array($value)) {
@@ -441,28 +441,28 @@ class OrderedArrayAttribute extends SetAttribute
     $div->SetHeight($this->height);
     $div->SetHeaders($this->headers);
     foreach ($this->value as $key => $value) {
-      $fields = array();
+      $fields = [];
       foreach ($this->getAttributeArrayValue($key, $value) as $field) {
         if (is_array($field)) {
           $fields[] = $field;
         } else {
-          $fields[] = array('string' => $field);
+          $fields[] = ['string' => $field];
         }
       }
       if (empty($fields)) {
         continue;
       }
 
-      list ($img, $nbicons) = $this->genRowIcons($key, $value);
+      list($img, $nbicons) = $this->genRowIcons($key, $value);
 
-      $fields[] = array("html" => $img, "attach" => 'style="border:0px;width:'.($nbicons * 20).'px;"');
+      $fields[] = ["html" => $img, "attach" => 'style="border:0px;width:'.($nbicons * 20).'px;"'];
       $div->AddEntry($fields);
     }
     $smarty->assign("div_$id", $div->DrawList());
     return '{$div_'.$id.'}'."\n";
   }
 
-  protected function genRowIcons($key, $value)
+  protected function genRowIcons ($key, $value)
   {
     $id = $this->getHtmlId();
 
@@ -474,12 +474,12 @@ class OrderedArrayAttribute extends SetAttribute
       if ($key != 0) {
         $img .= $this->renderInputField(
           'image', $id.'_up_'.$key,
-          array(
+          [
             'src'   => 'geticon.php?context=actions&amp;icon=view-sort-descending&amp;size=16',
             'title' => _('Sort up'),
             'alt'   => _('Sort up'),
             'class' => 'center'
-          )
+          ]
         );
       } else {
         $img .= '<img src="images/empty.png" alt="" style="width:16px;"/>';
@@ -487,12 +487,12 @@ class OrderedArrayAttribute extends SetAttribute
       if (($key + 1) < count($this->value)) {
         $img .= $this->renderInputField(
           'image', $id.'_down_'.$key,
-          array(
+          [
             'src'   => 'geticon.php?context=actions&amp;icon=view-sort-ascending&amp;size=16',
             'title' => _('Sort down'),
             'alt'   => _('Sort down'),
             'class' => 'center'
-          )
+          ]
         );
       } else {
         $img .= '<img src="images/empty.png" alt="" style="width:16px;"/>';
@@ -502,28 +502,28 @@ class OrderedArrayAttribute extends SetAttribute
       $nbicons++;
       $img .= $this->renderInputField(
         'image', $id.'_edit_'.$key,
-        array(
+        [
           'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
           'title' => _('Edit'),
           'alt'   => _('Edit'),
           'class' => 'center'
-        )
+        ]
       );
     }
     $img .= $this->renderInputField(
       'image', $id.'_del_'.$key,
-      array(
+      [
         'src'   => 'geticon.php?context=actions&amp;icon=edit-delete&amp;size=16',
         'title' => _('Delete'),
         'alt'   => _('Delete'),
         'class' => 'center'
-      )
+      ]
     );
 
-    return array ($img, $nbicons);
+    return  [$img, $nbicons];
   }
 
-  protected function getAttributeArrayValue($key, $value)
+  protected function getAttributeArrayValue ($key, $value)
   {
     $this->attribute->setValue($value);
     return $this->attribute->getArrayValue();
@@ -549,7 +549,7 @@ class OrderedArrayAttribute extends SetAttribute
     }
   }
 
-  protected function handlePostValueActions($id, $postValue)
+  protected function handlePostValueActions ($id, $postValue)
   {
     if ($this->order) {
       if (preg_match('/^'.$id.'_up_/', $postValue)) {
@@ -588,7 +588,7 @@ class OrderedArrayAttribute extends SetAttribute
     return FALSE;
   }
 
-  protected function handleAddAndEditValue()
+  protected function handleAddAndEditValue ()
   {
     $id = $this->getHtmlId();
     if ($this->attribute === FALSE) {
@@ -609,7 +609,7 @@ class OrderedArrayAttribute extends SetAttribute
     }
   }
 
-  protected function handleEdit($key)
+  protected function handleEdit ($key)
   {
     $this->editingValue = $this->value[$key];
     $this->delPostValue($key);
@@ -624,10 +624,10 @@ class OrderedArrayAttribute extends SetAttribute
     }
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id   = $this->getHtmlId();
-    $ids  = array('add'.$id);
+    $ids  = ['add'.$id];
     if ($this->attribute !== FALSE) {
       $ids  = array_merge($ids, $this->attribute->htmlIds());
     }
@@ -649,7 +649,7 @@ class OrderedArrayAttribute extends SetAttribute
   function renderButtons ()
   {
     $id = $this->getHtmlId();
-    $buttons = $this->renderInputField('submit', 'add'.$id, array('value' => '{msgPool type=addButton}'));
+    $buttons = $this->renderInputField('submit', 'add'.$id, ['value' => '{msgPool type=addButton}']);
     return $buttons;
   }
 }
@@ -662,9 +662,9 @@ class SubNodesAttribute extends OrderedArrayAttribute
   protected $objectClass;
   protected $objectClasses;
 
-  function __construct ($label, $description, $ldapName, $objectClass, $attributes, $order = FALSE, $values = array(), $edit_enabled = FALSE, $acl = "")
+  function __construct ($label, $description, $ldapName, $objectClass, $attributes, $order = FALSE, $values = [], $edit_enabled = FALSE, $acl = "")
   {
-    $attributes_keys = array();
+    $attributes_keys = [];
     foreach ($attributes as $attribute) {
       $attributes_keys[$attribute->getLdapName()] = $attribute;
       $attributes_keys[$attribute->getLdapName()]->htmlid_prefix = $ldapName.'_';
@@ -681,7 +681,7 @@ class SubNodesAttribute extends OrderedArrayAttribute
       $this->objectClasses  = $objectClass;
     } else {
       $this->objectClass    = $objectClass;
-      $this->objectClasses  = array($objectClass);
+      $this->objectClasses  = [$objectClass];
     }
   }
 
@@ -692,8 +692,8 @@ class SubNodesAttribute extends OrderedArrayAttribute
     if (isset($attrs['dn'])) {
       $ldap = $config->get_ldap_link();
       $ldap->cd($attrs['dn']);
-      $ldap->search('objectClass='.$this->objectClass, array('*'), 'one');
-      $this->value = array();
+      $ldap->search('objectClass='.$this->objectClass, ['*'], 'one');
+      $this->value = [];
       while ($subattrs = $ldap->fetch()) {
         $this->attribute->resetToDefault();
         foreach ($this->attribute->attributes as &$attribute) {
@@ -715,8 +715,8 @@ class SubNodesAttribute extends OrderedArrayAttribute
   {
     /* First delete all old nodes */
     $ldap->cd($this->plugin->dn);
-    $ldap->search('objectClass='.$this->objectClass, array('dn'), 'one');
-    $delete = array();
+    $ldap->search('objectClass='.$this->objectClass, ['dn'], 'one');
+    $delete = [];
     while ($attrs = $ldap->fetch()) {
       $delete[] = $attrs['dn'];
     }
@@ -725,7 +725,7 @@ class SubNodesAttribute extends OrderedArrayAttribute
     }
     /* Then add our values */
     foreach ($this->value as $val) {
-      $attrs = array('objectClass' => $this->objectClasses);
+      $attrs = ['objectClass' => $this->objectClasses];
       $this->attribute->setValue($val);
       foreach ($this->attribute->attributes as &$attribute) {
         $attribute->fillLdapValue($attrs);
diff --git a/include/simpleplugin/attributes/class_StringAttribute.inc b/include/simpleplugin/attributes/class_StringAttribute.inc
index 19906142b3ee03ff83ea7fb878a106676be0a27e..a1cebfda5e3f31d502679851a4a5e60092650eff 100644
--- a/include/simpleplugin/attributes/class_StringAttribute.inc
+++ b/include/simpleplugin/attributes/class_StringAttribute.inc
@@ -59,9 +59,9 @@ class StringAttribute extends Attribute
   function renderFormInput ()
   {
     $id = $this->getHtmlId();
-    $attributes = array(
+    $attributes = [
       'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-    );
+    ];
     if (!empty($this->managedAttributes)) {
       $js       = $this->managedAttributesJS();
       $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
@@ -76,7 +76,7 @@ class StringAttribute extends Attribute
   function fixPostValue ($value)
   {
     /* Replace CRLF by LF, to avoid non-ASCII chars in multiline values (mainly useful for textarea) */
-    return str_replace(array("\r\n", "\r"), "\n", $value);
+    return str_replace(["\r\n", "\r"], "\n", $value);
   }
 
   function check ()
@@ -108,7 +108,7 @@ class StringAttribute extends Attribute
     return $this->autocomplete;
   }
 
-  function checkValue($value)
+  function checkValue ($value)
   {
     if (!is_scalar($value) && (!is_object($value) || !method_exists($value, '__toString' ))) {
       throw new InvalidValueException(sprintf(_('StringAttribute "%s" was set to a non-compatible value'), $this->getLabel()));
@@ -160,10 +160,10 @@ class PasswordAttribute extends StringAttribute
     $id = $this->getHtmlId();
     $display  = $this->renderInputField(
       'password', $id,
-      array(
+      [
         'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}',
         'autocomplete' => ($this->autocomplete ? 'on' : 'off'),
-      )
+      ]
     );
     if ($this->autocomplete === FALSE) {
       $display = '{literal}<input autocomplete="off" value="foolautocompleteworkaround" type="text" style="display:none;"/>{/literal}'.$display;
diff --git a/include/simpleplugin/class_Attribute.inc b/include/simpleplugin/class_Attribute.inc
index 45c49ad0f546d7a793e42a99797e3c4924f232c4..fa4561e83d61d5b63a8a91c48efd7cee44bd0021 100644
--- a/include/simpleplugin/class_Attribute.inc
+++ b/include/simpleplugin/class_Attribute.inc
@@ -75,12 +75,12 @@ class Attribute
   protected $plugin;
   /* \brief Array of attributes to manage (prefix => value => attribute)
    * Prefix should be 'erase' or 'disable' */
-  protected $managedAttributes = array();
+  protected $managedAttributes = [];
   /* \brief Array of multiple values groups for managed attributes */
-  protected $managedAttributesMultipleValues = array();
+  protected $managedAttributesMultipleValues = [];
 
   /* \bried Array of booleans telling for each managing attributes if he's disabling us */
-  protected $managingAttributesOrders = array();
+  protected $managingAttributesOrders = [];
 
   /*! \brief The constructor of Attribute
    *
@@ -201,7 +201,7 @@ class Attribute
   /* Return the value as an array of values to be displayed in a table columns */
   function getArrayValue ()
   {
-    return array($this->displayValue($this->getValue()));
+    return [$this->displayValue($this->getValue())];
   }
 
   function getLdapName ()
@@ -352,7 +352,7 @@ class Attribute
       $this->managedAttributesMultipleValues = $mAttributes['multiplevalues'];
       unset($mAttributes['multiplevalues']);
     } else {
-      $this->managedAttributesMultipleValues = array();
+      $this->managedAttributesMultipleValues = [];
     }
     $this->managedAttributes = $mAttributes;
     $this->manageAttributes($this->getValue());
@@ -420,7 +420,7 @@ class Attribute
       if ($value !== '') {
         $attrs[$this->getLdapName()] = $value;
       } else {
-        $attrs[$this->getLdapName()] = array();
+        $attrs[$this->getLdapName()] = [];
       }
     }
   }
@@ -440,7 +440,7 @@ class Attribute
           continue;
         }
         foreach ($attributes as $attribute) {
-          $attrs[$attribute] = array();
+          $attrs[$attribute] = [];
         }
       }
     }
@@ -452,11 +452,11 @@ class Attribute
   {
     global $config;
     $value = $this->getValue();
-    if ($this->isRequired() && !$this->disabled && (($value === "") || ($value === array()))) {
+    if ($this->isRequired() && !$this->disabled && (($value === "") || ($value === []))) {
       return msgPool::required($this->getLabel());
     } elseif (($this->unique !== FALSE) && !$this->disabled) {
       $value = $this->computeLdapValue();
-      if (($value === "") || ($value === array())) {
+      if (($value === "") || ($value === [])) {
         return;
       }
       $ldap = $config->get_ldap_link();
@@ -497,10 +497,10 @@ class Attribute
           $filters[] = $pluginFilter;
         }
       } else {
-        $filters = array($this->uniqueFilter);
+        $filters = [$this->uniqueFilter];
       }
       $filter = '(&'.$filter.implode($filters).')';
-      $ldap->search($filter, array($this->getLdapName()));
+      $ldap->search($filter, [$this->getLdapName()]);
       $branches = array_filter(
         array_map(
           function ($key, $ot)
@@ -567,7 +567,7 @@ class Attribute
    *
    *  \param bool $readOnly should we show text or input
    */
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     if ($this->visible) {
       if ($readOnly) {
@@ -588,12 +588,12 @@ class Attribute
       } else {
         $input = $this->renderFormInput();
       }
-      $attributes[$this->getLdapName()] = array(
+      $attributes[$this->getLdapName()] = [
         'htmlid'      => $this->getForHtmlId(),
         'label'       => '{literal}'.$this->getLabel().'{/literal}'.($this->isRequired() ? '{$must}' : ''),
         'description' => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
         'input'       => $input,
-      );
+      ];
     }
   }
 
@@ -602,7 +602,7 @@ class Attribute
    * \param array &$attributes the attributes array
    * \param boolean $form
    */
-  function serializeAttribute(&$attributes, $form = TRUE)
+  function serializeAttribute (&$attributes, $form = TRUE)
   {
     if (!$form || $this->visible) {
       $class = get_class($this);
@@ -612,7 +612,7 @@ class Attribute
       }
       /* Avoid empty array */
       $type[] = 'Attribute';
-      $infos = array(
+      $infos = [
         'htmlid'      => $this->getHtmlId(),
         'label'       => $this->getLabel(),
         'required'    => $this->isRequired(),
@@ -621,7 +621,7 @@ class Attribute
         'value'       => $this->getValue(),
         'default'     => $this->defaultValue,
         'type'        => $type,
-      );
+      ];
       if (!$form) {
         $infos['inldap']   = $this->isInLdap();
         $infos['visible']  = $this->visible;
@@ -635,7 +635,7 @@ class Attribute
    *
    *  \param mixed $value the value
    */
-  function deserializeValue($value)
+  function deserializeValue ($value)
   {
     if ($this->disabled) {
       return sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName());
@@ -647,7 +647,7 @@ class Attribute
    *
    *  \param string $display the display information to pass through ACL
    */
-  function renderAcl($display)
+  function renderAcl ($display)
   {
     return '{render aclName="'.$this->getAcl().'" acl=$'.$this->getAcl()."ACL}\n$display\n{/render}";
   }
@@ -657,10 +657,10 @@ class Attribute
   function getAclInfo ()
   {
     if (empty($this->acl)) {
-      return array(
+      return [
         'name' => $this->getHtmlId(),
         'desc' => $this->getDescription()
-      );
+      ];
     } else {
       /* If acl is not empty, we use an acl that is not ours, we have no acl to create */
       return FALSE;
@@ -677,9 +677,9 @@ class Attribute
     ));
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
-    return array($this->getHtmlId());
+    return [$this->getHtmlId()];
   }
 
   protected function managedAttributesJS ()
@@ -708,7 +708,7 @@ class Attribute
     return $this->renderFormInput();
   }
 
-  function foreignKeyUpdate($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
   {
     if ($source['MODE'] == 'move') {
       if ($source['FIELD'] == 'dn') {
@@ -723,12 +723,12 @@ class Attribute
     }
   }
 
-  function foreignKeyCheck($value, $source)
+  function foreignKeyCheck ($value, $source)
   {
     return ($this->getValue() == $value);
   }
 
-  protected function renderInputField($type, $name, $attributes = array())
+  protected function renderInputField ($type, $name, $attributes = [])
   {
     $input  = '<input type="'.$type.'" '.
               'name="'.$name.'" id="'.$name.'"'.
@@ -773,7 +773,7 @@ class HiddenArrayAttribute extends HiddenAttribute
   protected function loadAttrValue ($attrs)
   {
     if (isset($attrs[$this->getLdapName()]['count'])) {
-      $this->value = array();
+      $this->value = [];
       for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
         $this->value[] = $attrs[$this->getLdapName()][$i];
       }
@@ -792,7 +792,7 @@ class FakeAttribute extends Attribute
     $this->setInLdap(FALSE);
   }
 
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     $attributes[$this->getLdapName()] = $this->getValue();
   }
@@ -853,7 +853,7 @@ class DisplayLDAPArrayAttribute extends Attribute
   protected function loadAttrValue ($attrs)
   {
     if (isset($attrs[$this->getLdapName()]['count'])) {
-      $this->value = array();
+      $this->value = [];
       for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
         $this->value[] = $attrs[$this->getLdapName()][$i];
       }
@@ -878,7 +878,7 @@ class DisplayAttribute extends DisplayLDAPAttribute
 {
   function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
   {
-    parent::__construct ($label, $description, $ldapName, $required, $defaultValue, $acl);
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->setInLdap(FALSE);
   }
 }
@@ -891,7 +891,7 @@ class ObjectLinkAttribute extends DisplayLDAPAttribute
 
   function __construct ($label, $description, $ldapName, $required, $type, $defaultValue = "", $acl = "")
   {
-    parent::__construct ($label, $description, $ldapName, $required, $defaultValue, $acl);
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->type = $type;
   }
 
diff --git a/include/simpleplugin/class_dialogAttributes.inc b/include/simpleplugin/class_dialogAttributes.inc
index 9188182b89f94b27c79a609605b1422cec2e52a4..b305fc146559f13bd5fca92532d62029ad917031 100644
--- a/include/simpleplugin/class_dialogAttributes.inc
+++ b/include/simpleplugin/class_dialogAttributes.inc
@@ -29,7 +29,7 @@ class GenericDialog
   protected $post_cancel = 'add_cancel';
   protected $post_finish = 'add_finish';
 
-  function __construct($simplePlugin, $attribute)
+  function __construct ($simplePlugin, $attribute)
   {
     $this->attribute  = $attribute;
     $this->dialog     = new $this->dialogClass();
@@ -176,7 +176,7 @@ class DialogAttribute extends SetAttribute
    *  \param array $defaultValue The default value for this attribute
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
    */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $acl = "")
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
   {
     Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->attribute = FALSE;
@@ -217,7 +217,7 @@ class DialogAttribute extends SetAttribute
 
   function getFilterWhiteList ()
   {
-    return array();
+    return [];
   }
 
   function loadPostValue ()
@@ -245,29 +245,29 @@ class DialogAttribute extends SetAttribute
     if ($this->isTemplate()) {
       $buttons  .= $this->renderInputField(
         'text', $id,
-        array('value' => $this->editingValue)
+        ['value' => $this->editingValue]
       );
       $buttons  .= $this->renderInputField(
         'submit', 'add'.$id,
-        array('value' => '{msgPool type=addButton}')
+        ['value' => '{msgPool type=addButton}']
       );
-      $dialogButtonValue = _('Add (dialog)');
+      $dialogButtonValue = _('Add(dialog)');
     }
     $buttons  .= $this->renderInputField(
       'submit', 'add'.$id.'_dialog',
-      array('value' => $dialogButtonValue)
+      ['value' => $dialogButtonValue]
     );
     $buttons  .= $this->renderInputField(
       'submit', 'del'.$id,
-      array('value' => '{msgPool type=delButton}')
+      ['value' => '{msgPool type=delButton}']
     );
     return $buttons;
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id = $this->getHtmlId();
-    $ids = array('add'.$id.'_dialog','del'.$id,'row'.$id);
+    $ids = ['add'.$id.'_dialog','del'.$id,'row'.$id];
     if ($this->isTemplate()) {
       $ids[] = $id;
       $ids[] = 'add'.$id;
@@ -283,7 +283,7 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
 {
   protected $dialogClass;
 
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $acl = "")
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
   {
     Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->edit_enabled = TRUE;
@@ -297,7 +297,7 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
 
   function getFilterWhiteList ()
   {
-    return array();
+    return [];
   }
 
   function loadPostValue ()
@@ -311,7 +311,7 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
     }
   }
 
-  protected function handleEdit($key)
+  protected function handleEdit ($key)
   {
     $this->editingValue = $this->value[$key];
     $this->delPostValue($key);
@@ -322,7 +322,7 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
   {
   }
 
-  function addValue($value)
+  function addValue ($value)
   {
     $this->value[] = $value;
     $this->reIndexValues();
@@ -333,18 +333,18 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
     $id = $this->getHtmlId();
     return $this->renderInputField(
       'submit', 'add'.$id.'_dialog',
-      array('value' => '{msgPool type=addButton}')
+      ['value' => '{msgPool type=addButton}']
     );
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $ids = parent::htmlIds();
     $ids[0] .= '_dialog';
     return $ids;
   }
 
-  protected function getAttributeArrayValue($key, $value)
+  protected function getAttributeArrayValue ($key, $value)
   {
     /* Convert text value to displayable array value */
     die('Pure virtual method');
@@ -356,11 +356,11 @@ class DialogOrderedArrayAttribute extends OrderedArrayAttribute
  */
 class GenericDialogAttribute extends DialogAttribute
 {
-  protected $displays     = array();
+  protected $displays     = [];
   protected $store_attr   = 'dn';
   protected $display_attr = 'cn';
 
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $store_attr = 'dn', $display_attr = 'cn', $acl = '')
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $store_attr = 'dn', $display_attr = 'cn', $acl = '')
   {
     $this->store_attr   = $store_attr;
     $this->display_attr = $display_attr;
@@ -369,7 +369,7 @@ class GenericDialogAttribute extends DialogAttribute
 
   function getFilterBlackList ()
   {
-    return array($this->store_attr => $this->getValue());
+    return [$this->store_attr => $this->getValue()];
   }
 
   function addValue ($dn, $attrs)
@@ -432,7 +432,7 @@ class GenericDialogAttribute extends DialogAttribute
 
   protected function ldapAttributesToGet ()
   {
-    return array($this->display_attr);
+    return [$this->display_attr];
   }
 
   protected function fillDisplayValueFrom ($i, $attrs)
@@ -450,7 +450,7 @@ class GenericDialogAttribute extends DialogAttribute
     }
   }
 
-  function foreignKeyUpdate($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
   {
     foreach ($this->value as $key => &$value) {
       if (($source['FIELD'] == 'dn') && ($source['MODE'] == 'move')) {
@@ -503,7 +503,7 @@ class UsersGroupsAttribute extends GenericDialogAttribute
 
   protected function ldapAttributesToGet ()
   {
-    return array('cn', 'uid', 'objectClass');
+    return ['cn', 'uid', 'objectClass'];
   }
 
   protected function fillDisplayValueFrom ($i, $attrs)
@@ -546,9 +546,9 @@ class GroupsAttribute extends GenericDialogAttribute
 {
   protected $dialogClass = 'GroupSelectDialog';
 
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $acl = '')
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
   {
-    parent::__construct ($label, $description, $ldapName, $required, $defaultValue, 'dn', 'cn', $acl);
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, 'dn', 'cn', $acl);
   }
 
   function addValue ($dn, $entry)
@@ -556,7 +556,7 @@ class GroupsAttribute extends GenericDialogAttribute
     if (!in_array($dn, $this->value)) {
       $display = $entry['cn'][0];
       if (isset($entry['description'][0]) && !empty($entry['description'][0])) {
-        $display .= ' ['.preg_replace ('/^Group of user/', _('Group of user'), $entry['description'][0]).']';
+        $display .= ' ['.preg_replace('/^Group of user/', _('Group of user'), $entry['description'][0]).']';
       }
 
       $this->value[]    = $dn;
@@ -583,14 +583,14 @@ class MailsAttribute extends DialogAttribute
    *  \param array $defaultValue The default value for this attribute
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
    */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = array(), $acl = "")
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
   {
     SetAttribute::__construct(new MailAttribute($label, $description, $ldapName, $required, "", $acl), $defaultValue);
   }
 
   function getFilterBlackList ()
   {
-    return array('mail' => $this->getValue());
+    return ['mail' => $this->getValue()];
   }
 
   function addValue ($dn, $attrs)
@@ -606,23 +606,23 @@ class MailsAttribute extends DialogAttribute
     $id = $this->getHtmlId();
     $buttons  = $this->renderInputField(
       'submit', 'add'.$id,
-      array('value' => '{msgPool type=addButton}')
+      ['value' => '{msgPool type=addButton}']
     );
     $buttons  .= $this->renderInputField(
       'submit', 'add'.$id.'_dialog',
-      array('value' => '{msgPool type=addButton} (from list)')
+      ['value' => '{msgPool type=addButton} (from list)']
     );
     $buttons  .= $this->renderInputField(
       'submit', 'del'.$id,
-      array('value' => '{msgPool type=delButton}')
+      ['value' => '{msgPool type=delButton}']
     );
     return $buttons;
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id = $this->getHtmlId();
-    return array('add'.$id,'add'.$id.'_dialog','del'.$id,'row'.$id);
+    return ['add'.$id,'add'.$id.'_dialog','del'.$id,'row'.$id];
   }
 }
 
@@ -643,7 +643,7 @@ class SystemsAttribute extends DialogAttribute
 
   function getFilterBlackList ()
   {
-    return array('cn' => $this->getValue());
+    return ['cn' => $this->getValue()];
   }
 }
 
@@ -670,7 +670,7 @@ class ButtonAttribute extends Attribute
     $id = $this->getHtmlId();
     $display = $this->renderInputField(
       'submit', $id,
-      array('value' => '{literal}'.htmlentities($this->buttonText, ENT_COMPAT, 'UTF-8').'{/literal}')
+      ['value' => '{literal}'.htmlentities($this->buttonText, ENT_COMPAT, 'UTF-8').'{/literal}']
     );
     return $this->renderAcl($display);
   }
@@ -716,12 +716,12 @@ class DialogButtonAttribute extends ButtonAttribute
 
   function getFilterBlackList ()
   {
-    return array();
+    return [];
   }
 
   function getFilterWhiteList ()
   {
-    return array();
+    return [];
   }
 }
 
@@ -748,9 +748,9 @@ class UserAttribute extends DialogButtonAttribute
     if ($this->isTemplate()) {
       $display = $this->renderInputField(
         'text', $id,
-        array(
+        [
           'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-        )
+        ]
       );
     } else {
       $display  = '<img src="geticon.php?context=types&amp;icon=user&amp;size=16" alt="user icon" class="center"/>';
@@ -764,22 +764,22 @@ class UserAttribute extends DialogButtonAttribute
     }
     $display .= $this->renderInputField(
       'image', $id.'_dialog',
-      array(
+      [
         'class' => 'center',
         'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
         'title' => _('Edit'),
         'alt'   => _('Edit')
-      )
+      ]
     );
     if (!$this->isRequired()) {
       $display .= $this->renderInputField(
         'image', $id.'_remove',
-        array(
+        [
           'class' => 'center',
           'src'   => 'geticon.php?context=actions&amp;icon=remove&amp;size=16',
           'title' => _('Remove'),
           'alt'   => _('Remove')
-        )
+        ]
       );
     }
     return $this->renderAcl($display);
@@ -830,10 +830,10 @@ class UserAttribute extends DialogButtonAttribute
     }
   }
 
-  public function htmlIds()
+  public function htmlIds ()
   {
     $id   = $this->getHtmlId();
-    $ids  = array($id.'_dialog');
+    $ids  = [$id.'_dialog'];
     if ($this->isTemplate()) {
       $ids[] = $id;
     }
@@ -851,7 +851,7 @@ class GenericSimplePluginDialog extends GenericDialog
 {
   protected $initialDialogValue = NULL;
 
-  function __construct($simplePlugin, $attribute, $value = array())
+  function __construct ($simplePlugin, $attribute, $value = [])
   {
     $this->attribute  = $attribute;
     $this->dialog     = new $this->dialogClass('new');
@@ -895,7 +895,7 @@ class GenericSimplePluginDialog extends GenericDialog
       return $this->dialog->execute().$this->buttons();
     }
 
-    $value = array();
+    $value = [];
     foreach ($this->dialog->attributes as $attr) {
       $value[$attr] = $this->dialog->$attr;
     }
diff --git a/include/simpleplugin/class_helpersAttribute.inc b/include/simpleplugin/class_helpersAttribute.inc
index 01170c1863054879b1921795f997250e92d0994c..422eb62ef5f961a819646a0a3a9a49f95fcf5f88 100644
--- a/include/simpleplugin/class_helpersAttribute.inc
+++ b/include/simpleplugin/class_helpersAttribute.inc
@@ -143,18 +143,18 @@ class CharSeparatedCompositeAttribute extends CompositeAttribute
 {
   private $sep;
 
-  function __construct($description, $ldapName, $attributes, $sep, $acl = "", $label = "Composite attribute")
+  function __construct ($description, $ldapName, $attributes, $sep, $acl = "", $label = "Composite attribute")
   {
     parent::__construct($description, $ldapName, $attributes, '', '', $acl, $label);
     $this->sep = $sep;
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     return explode($this->sep, $value);
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     return join($this->sep, $values);
   }
@@ -165,7 +165,7 @@ class CharSeparatedCompositeAttribute extends CompositeAttribute
  */
 class PipeSeparatedCompositeAttribute extends CharSeparatedCompositeAttribute
 {
-  function __construct($description, $ldapName, $attributes, $acl = "", $label = "Composite attribute")
+  function __construct ($description, $ldapName, $attributes, $acl = "", $label = "Composite attribute")
   {
     parent::__construct($description, $ldapName, $attributes, '|', $acl, $label);
   }
@@ -178,27 +178,27 @@ class CommaListAttribute extends CompositeAttribute
 {
   private $sep = ',';
 
-  function __construct($ldapName, $attribute, $sep = ',')
+  function __construct ($ldapName, $attribute, $sep = ',')
   {
     parent::__construct(
       $attribute->getDescription(), $ldapName,
-      array(
+      [
         $attribute
-      ), '', ''
+      ], '', ''
     );
     $this->sep = $sep;
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     if ($value == '') {
-      return array(array());
+      return [[]];
     } else {
-      return array(explode($this->sep, $value));
+      return [explode($this->sep, $value)];
     }
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     return join($this->sep, $values[0]);
   }
@@ -213,25 +213,25 @@ class UnitIntAttribute extends CompositeAttribute
   function __construct ($label, $description, $ldapName, $required, $units, $min = FALSE, $max = FALSE, $defaultValue = "", $acl = "")
   {
     parent::__construct($description, $ldapName,
-      array(
+      [
         new IntAttribute('', '', $ldapName.'_int', $required, $min, $max, $defaultValue),
         new SelectAttribute('', '', $ldapName.'_select', TRUE, array_keys($units), '', array_values($units)),
-      ), '', '',
+      ], '', '',
       $acl, $label
     );
     $this->setLinearRendering(TRUE);
     $this->setRequired($required); /* As we use linear rendering we want the asterisk in the label if required */
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     if ($value === '') {
-      return array('', 0);
+      return ['', 0];
     }
     $choices = $this->attributes[1]->getChoices();
     sort($choices);
     if ($value == 0) {
-      return array($value, $choices[0]);
+      return [$value, $choices[0]];
     }
     /* Find the appropriate unit */
     for (
@@ -239,10 +239,10 @@ class UnitIntAttribute extends CompositeAttribute
       ($value % $choices[$i] != 0) && ($i > 0);
       $i--
     );
-    return array($value / $choices[$i], $choices[$i]);
+    return [$value / $choices[$i], $choices[$i]];
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     if ($values[0] === '') {
       return '';
@@ -250,7 +250,7 @@ class UnitIntAttribute extends CompositeAttribute
     return $values[0] * $values[1];
   }
 
-  function displayValue($value)
+  function displayValue ($value)
   {
     $values = $this->readValues($value);
     return $values[0].$this->attributes[1]->displayValue($values[1]);
@@ -264,14 +264,14 @@ class BytesSizeAttribute extends UnitIntAttribute
 {
   function __construct ($label, $description, $ldapName, $required, $min = FALSE, $max = FALSE, $defaultValue = "", $acl = "")
   {
-    $units = array(
+    $units = [
       1             => _('B'),
       pow(1024, 1)  => _('KiB'),
       pow(1024, 2)  => _('MiB'),
       pow(1024, 3)  => _('GiB'),
       pow(1024, 4)  => _('TiB'),
-    );
-    parent::__construct ($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
+    ];
+    parent::__construct($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
   }
 }
 
@@ -282,13 +282,13 @@ class TimeAttribute extends UnitIntAttribute
 {
   function __construct ($label, $description, $ldapName, $required, $min = FALSE, $max = FALSE, $defaultValue = "", $acl = "")
   {
-    $units = array(
+    $units = [
       1     => _('seconds'),
       60    => _('minutes'),
       3600  => _('hours'),
       86400 => _('days'),
-    );
-    parent::__construct ($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
+    ];
+    parent::__construct($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
   }
 }
 
diff --git a/include/simpleplugin/class_multiPlugin.inc b/include/simpleplugin/class_multiPlugin.inc
index b6787011fdc1edf486b1bf92c1e56d489285e9cb..ac57322fcd641ffac2f73c89a265854147ad26cc 100644
--- a/include/simpleplugin/class_multiPlugin.inc
+++ b/include/simpleplugin/class_multiPlugin.inc
@@ -26,15 +26,15 @@
 class multiPlugin extends simplePlugin
 {
   /* attribute list for save action */
-  var $objectclasses  = array();
+  var $objectclasses  = [];
   var $ignore_account = TRUE;
-  var $plugin         = array();
+  var $plugin         = [];
 
   var $tabClass = '';
 
   static function getAttributesInfo ()
   {
-    return array();
+    return [];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL)
@@ -60,7 +60,7 @@ class multiPlugin extends simplePlugin
     }
   }
 
-  function execute()
+  function execute ()
   {
     $display = "";
 
@@ -103,7 +103,7 @@ class multiPlugin extends simplePlugin
 
 
   /* Save data to object */
-  function save_object()
+  function save_object ()
   {
     foreach ($this->plugin as &$plug) {
       $plug->save_object();
@@ -111,7 +111,7 @@ class multiPlugin extends simplePlugin
     unset($plug);
   }
 
-  function check()
+  function check ()
   {
     $message = parent::check();
 
@@ -126,7 +126,7 @@ class multiPlugin extends simplePlugin
     return $message;
   }
 
-  function set_acl_category($cat)
+  function set_acl_category ($cat)
   {
     parent::set_acl_category($cat);
     foreach ($this->plugin as &$plug) {
@@ -135,7 +135,7 @@ class multiPlugin extends simplePlugin
     unset($plug);
   }
 
-  function set_acl_base($base)
+  function set_acl_base ($base)
   {
     parent::set_acl_base($base);
     foreach ($this->plugin as &$plug) {
@@ -154,9 +154,9 @@ class multiPlugin extends simplePlugin
   }
 
   /* Save to LDAP */
-  function save()
+  function save ()
   {
-    $errors = array();
+    $errors = [];
     /* Save objects */
     foreach ($this->plugin as &$plug) {
       $plug->dn = $this->dn;
@@ -173,9 +173,9 @@ class multiPlugin extends simplePlugin
     return $errors;
   }
 
-  function remove($fulldelete = FALSE)
+  function remove ($fulldelete = FALSE)
   {
-    $errors = array();
+    $errors = [];
     /* Remove objects */
     foreach ($this->plugin as &$plug) {
       $plug->dn = $this->dn;
@@ -188,7 +188,7 @@ class multiPlugin extends simplePlugin
     return $errors;
   }
 
-  function adapt_from_template($attrs, $skip = array())
+  function adapt_from_template ($attrs, $skip = [])
   {
     /* Adapt objects */
     foreach ($this->plugin as &$plug) {
@@ -198,7 +198,7 @@ class multiPlugin extends simplePlugin
     unset($plug);
   }
 
-  function resetCopyInfos()
+  function resetCopyInfos ()
   {
     $this->dn = 'new';
     foreach ($this->plugin as &$plug) {
diff --git a/include/simpleplugin/class_simpleManagement.inc b/include/simpleplugin/class_simpleManagement.inc
index a0bc81c691a4895cac0ca4720ed46d3b3c42ba88..98852aeb0a79b4ed35e5e675cbb907af3f40321f 100644
--- a/include/simpleplugin/class_simpleManagement.inc
+++ b/include/simpleplugin/class_simpleManagement.inc
@@ -34,7 +34,7 @@ class templateDialog
   protected $post_finish = 'template_continue';
   protected $post_cancel = 'template_cancel';
 
-  function __construct($simpleManagement, $type, $dn = NULL, $target = NULL)
+  function __construct ($simpleManagement, $type, $dn = NULL, $target = NULL)
   {
     $this->simpleManagement = $simpleManagement;
     $this->type             = $type;
@@ -132,14 +132,14 @@ class simpleManagement
   // The currently used object(s) (e.g. in edit, removal)
   // $dn is public due to some compatibility problems with class plugin..
   public $dn      = '';
-  protected $dns  = array();
+  protected $dns  = [];
 
   // The last used object(s).
   protected $last_dn  = '';
-  protected $last_dns = array();
+  protected $last_dns = [];
 
   // The common places the displayed objects are stored in. (e.g. array("ou=groups,",".."))
-  protected $storagePoints = array();
+  protected $storagePoints = [];
 
   // The opened object.
   protected $tabObject    = NULL;
@@ -172,14 +172,14 @@ class simpleManagement
   protected $filter   = NULL;
 
   // A list of configured actions/events
-  protected $actions = array();
+  protected $actions = [];
 
   // Some management classes are used in tab groups and needs this
   public $is_template = FALSE;
-  public $attributes  = array();
+  public $attributes  = [];
 
   /* Attributes that child classes should override */
-  protected $objectTypes  = array();
+  protected $objectTypes  = [];
 
   /* Attributes that child classes can override */
   protected $departmentBrowser      = TRUE;
@@ -193,14 +193,14 @@ class simpleManagement
   protected $autoActions      = TRUE;
   protected $skipCpHandler    = FALSE;
 
-  protected $autoFilterAttributes = array('dn', 'cn', 'description');
+  protected $autoFilterAttributes = ['dn', 'cn', 'description'];
 
   protected $headpageClass = "listing";
 
   public static $skipTemplates = TRUE;
   public static $skipSnapshots = FALSE;
 
-  function __construct()
+  function __construct ()
   {
     global $config;
 
@@ -216,7 +216,7 @@ class simpleManagement
     }
     unset($object);
 
-    $this->storagePoints = array();
+    $this->storagePoints = [];
     foreach ($this->objectTypes as $key => $object) {
       try {
         $i = objects::infos($object);
@@ -235,8 +235,8 @@ class simpleManagement
     }
 
     // Build filter
-    if (session::global_is_set(get_class($this).'_filter')) {
-      $filter = session::global_get(get_class($this).'_filter');
+    if (session::is_set(get_class($this).'_filter')) {
+      $filter = session::get(get_class($this).'_filter');
     } else {
       $filter = new filter($this->filterXMLPath);
       $filter->setObjectStorage($this->storagePoints);
@@ -286,22 +286,22 @@ class simpleManagement
   {
     if ($this->autoActions) {
       if (static::$skipTemplates) {
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = array();
+        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = [];
       } else {
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = array(
-          array(
+        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = [
+          [
             'type'    => 'sub',
             'image'   => 'geticon.php?context=devices&icon=template&size=16',
             'label'   => _('Template'),
-            'action'  => array(),
-          ),
-          array(
+            'action'  => [],
+          ],
+          [
             'type'    => 'sub',
             'image'   => 'geticon.php?context=actions&icon=document-new&size=16',
             'label'   => _('From template'),
-            'action'  => array(),
-          ),
-        );
+            'action'  => [],
+          ],
+        ];
       }
     }
     $this->configureHeadline();
@@ -315,17 +315,17 @@ class simpleManagement
 
       $filterObject = objects::getFilterObject($object);
       $this->headpage->objectTypes[$object] =
-        array(
+        [
           'label'       => $i['name'],
           'category'    => $i['aclCategory'],
           'class'       => $i['mainTab'],
           'image'       => $i['icon'],
           'filter'      => $filterObject,
           'nameAttr'    => $i['nameAttr'],
-        );
+        ];
       if (!static::$skipTemplates) {
         $this->headpage->objectTypes['template_'.$object] =
-          array(
+          [
             'label'       => sprintf(_('%s template'), $i['name']),
             'category'    => $i['aclCategory'],
             'class'       => 'template',
@@ -333,13 +333,13 @@ class simpleManagement
             'filter'      =>
               new ldapFilter(
                 '&',
-                array(
+                [
                   new ldapFilterLeaf('objectClass', '=', 'fdTemplate'),
                   fdTemplateFilter($filterObject),
-                )
+                ]
               ),
             'nameAttr'    => $i['nameAttr'],
-          );
+          ];
       }
       $this->headpage->categories[] = $i['aclCategory'];
       if ($this->autoActions) {
@@ -353,30 +353,30 @@ class simpleManagement
             $icon = $infos['plIcon'];
           }
         }
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'][] = array(
+        $this->headpage->xmlData['actionmenu']['action'][0]['action'][] = [
           'name'  => 'new_'.$object,
           'type'  => 'entry',
           'image' => $icon,
           'label' => $i['name'],
           'acl'   => $i['aclCategory'].'/'.$i['mainTab'].'[c]',
-        );
+        ];
         if (!static::$skipTemplates) {
           $this->registerAction('new_template_'.$object, 'newEntryTemplate');
           $this->registerAction('template_apply_'.$object, 'newEntryFromTemplate');
-          $this->headpage->xmlData['actionmenu']['action'][0]['action'][0]['action'][] = array(
+          $this->headpage->xmlData['actionmenu']['action'][0]['action'][0]['action'][] = [
             'name'  => 'new_template_'.$object,
             'type'  => 'entry',
             'image' => $icon,
             'label' => $i['name'],
             'acl'   => $i['aclCategory'].'/template[c]',
-          );
-          $this->headpage->xmlData['actionmenu']['action'][0]['action'][1]['action'][] = array(
+          ];
+          $this->headpage->xmlData['actionmenu']['action'][0]['action'][1]['action'][] = [
             'name'  => 'template_apply_'.$object,
             'type'  => 'entry',
             'image' => $icon,
             'label' => $i['name'],
             'acl'   => $i['aclCategory'].'/'.$i['mainTab'].'[c]',
-          );
+          ];
         }
       }
     }
@@ -426,13 +426,13 @@ class simpleManagement
         $tag    = 'FILTER'.$object;
         $filter .= '$'.$tag;
         $i      = objects::infos($object);
-        $this->filter->elements[$tag] = array(
+        $this->filter->elements[$tag] = [
           'type'    => 'checkbox',
           'tag'     => $tag,
           'default' => TRUE,
-          'unset'   => array(),
+          'unset'   => [],
           'set'     => preg_replace('/\$/', '\\\$', $i['filter'])
-        );
+        ];
         $this->filter->elementValues[$tag] = TRUE;
 
         if ($i['mainAttr']) {
@@ -445,13 +445,13 @@ class simpleManagement
       if (!static::$skipTemplates) {
         $tag    = 'FILTERTEMPLATE';
         $filter .= '$'.$tag;
-        $this->filter->elements[$tag] = array(
+        $this->filter->elements[$tag] = [
           'type'    => 'checkbox',
           'tag'     => $tag,
           'default' => TRUE,
-          'unset'   => array(),
+          'unset'   => [],
           'set'     => '(objectClass=fdTemplate)'
-        );
+        ];
         $this->filter->elementValues[$tag] = TRUE;
 
         $attributes[] = 'fdTemplateField';
@@ -472,18 +472,18 @@ class simpleManagement
   {
     $contents = file_get_contents($file);
     $data     = xml::xml2array($contents, 1);
-    foreach (array('departmentBrowser','departmentRootVisible','baseMode','multiSelect') as $var) {
+    foreach (['departmentBrowser','departmentRootVisible','baseMode','multiSelect'] as $var) {
       $data['list']['definition']["$var"] = ($this->$var ? 'true' : 'false');
     }
     return $data;
   }
 
-  function getHeadpage()
+  function getHeadpage ()
   {
     return $this->headpage;
   }
 
-  function getFilter()
+  function getFilter ()
   {
     return $this->filter;
   }
@@ -493,7 +493,7 @@ class simpleManagement
    *
    * \param object $filter The new filter
    */
-  function setFilter($filter)
+  function setFilter ($filter)
   {
     $this->filter = $filter;
   }
@@ -505,32 +505,32 @@ class simpleManagement
    *          When the action/event new is send, the method 'createUser'
    *          will be called.
    */
-  function registerAction($action, $target)
+  function registerAction ($action, $target)
   {
     $this->actions[$action] = $target;
   }
 
-  function getType($dn)
+  function getType ($dn)
   {
     return $this->getHeadpage()->getType($dn);
   }
 
-  function renderList()
+  function renderList ()
   {
     global $config;
     $smarty = get_smarty();
-    $filters = array();
+    $filters = [];
     foreach ($this->objectTypes as $object) {
-      $filters[] = array(
+      $filters[] = [
         'id'    => 'FILTER'.$object,
         'label' => sprintf(_('Show %s'), $config->data['OBJECTS'][$object]['name'])
-      );
+      ];
     }
     if (!static::$skipTemplates) {
-      $filters[] = array(
+      $filters[] = [
         'id'    => 'FILTERTEMPLATE',
         'label' => sprintf(_('Show %s'), _('Template'))
-      );
+      ];
     }
     $smarty->assign('objectFilters', $filters);
     $this->headpage->update();
@@ -542,10 +542,10 @@ class simpleManagement
    * \brief  Execute this plugin
    *          Handle actions/events, locking, snapshots, dialogs, tabs,...
    */
-  function execute()
+  function execute ()
   {
     // Ensure that html posts and gets are kept even if we see a 'Entry islocked' dialog.
-    $vars = array('/^act$/','/^listing/','/^PID$/');
+    $vars = ['/^act$/','/^listing/','/^PID$/'];
     session::set('LOCK_VARS_TO_USE', $vars);
 
     /* Display the copy & paste dialog, if it is currently open */
@@ -557,7 +557,7 @@ class simpleManagement
     // Update filter
     if ($this->filter) {
       $this->filter->update();
-      session::global_set(get_class($this).'_filter', $this->filter);
+      session::set(get_class($this).'_filter', $this->filter);
       session::set('autocomplete', $this->filter);
       if (!$this->filter->isValid()) {
         msg_dialog::display(_('Filter error'), _('The filter is incomplete!'), ERROR_DIALOG);
@@ -570,29 +570,30 @@ class simpleManagement
       return $this->getHeader().$str;
     }
 
-    // Open single dialog objects
-    if (is_object($this->dialogObject)) {
-      if (method_exists($this->dialogObject, 'save_object')) {
-        $this->dialogObject->save_object();
-      }
-      if (method_exists($this->dialogObject, 'execute')) {
-        $display = $this->dialogObject->execute();
-        $display .= $this->_getTabFooter();
-        return $this->getHeader().$display;
-      }
+    /* Save tab or dialog object */
+    if ($this->tabObject instanceOf simpleTabs) {
+      $this->tabObject->save_object();
+    } elseif (is_object($this->dialogObject) && method_exists($this->dialogObject, 'save_object')) {
+      $this->dialogObject->save_object();
     }
 
-    // Display tab object.
+    /* Display tab object */
     if ($this->tabObject instanceOf simpleTabs) {
-      $this->tabObject->save_object();
       $display = $this->tabObject->execute();
-      $display .= $this->_getTabFooter();
+      $display .= $this->getTabFooter();
+      return $this->getHeader().$display;
+    }
+
+    /* Display dialog object */
+    if (is_object($this->dialogObject) && method_exists($this->dialogObject, 'execute')) {
+      $display = $this->dialogObject->execute();
+      $display .= $this->getTabFooter();
       return $this->getHeader().$display;
     }
 
     // Set current restore base for snapshot handling.
     if (is_object($this->snapHandler)) {
-      $bases = array();
+      $bases = [];
       foreach ($this->storagePoints as $sp) {
         $bases[] = $sp.$this->headpage->getBase();
       }
@@ -612,7 +613,7 @@ class simpleManagement
   /*!
    * \brief  Generates the plugin header which is displayed whenever a tab object is opened.
    */
-  protected function getHeader()
+  protected function getHeader ()
   {
     if ($this->skipHeader) {
       return '';
@@ -631,7 +632,7 @@ class simpleManagement
   /*!
    * \brief  Generates the footer which is used whenever a tab object is displayed.
    */
-  protected function _getTabFooter()
+  protected function getTabFooter ()
   {
     // Do not display tab footer for non tab objects
     if (!($this->tabObject instanceOf simpleTabs)) {
@@ -679,7 +680,7 @@ class simpleManagement
    *
    * \param  Array   $all     A combination of both 'action' and 'target'.
    */
-  function newEntry($action, array $target, array $all)
+  function newEntry ($action, array $target, array $all)
   {
     $type   = strtoupper(preg_replace('/^new_/', '', $action));
 
@@ -691,10 +692,10 @@ class simpleManagement
 
     // Open object
     $this->openTabObject(objects::open($this->dn, $type), $this->headpage->getBase());
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Create new entry initiated!");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Create new entry initiated!");
   }
 
-  function newEntryTemplate($action, array $target, array $all)
+  function newEntryTemplate ($action, array $target, array $all)
   {
     if (static::$skipTemplates) {
       return;
@@ -704,7 +705,7 @@ class simpleManagement
     $this->tabObject->setTemplateMode('template_cn');
   }
 
-  function newEntryFromTemplate($action, array $target, array $all)
+  function newEntryFromTemplate ($action, array $target, array $all)
   {
     if (static::$skipTemplates) {
       return;
@@ -726,7 +727,7 @@ class simpleManagement
     $this->dialogObject = new templateDialog($this, $type, $dn);
   }
 
-  function applyTemplateToEntry($action, array $target, array $all)
+  function applyTemplateToEntry ($action, array $target, array $all)
   {
     global $ui;
     if (static::$skipTemplates) {
@@ -744,7 +745,7 @@ class simpleManagement
     }
 
     // Add locks
-    add_lock ($this->dns, $ui->dn);
+    add_lock($this->dns, $ui->dn);
 
     $this->dn           = array_shift($this->dns);
     $this->dialogObject = new templateDialog($this, $type, NULL, $this->dn);
@@ -756,7 +757,7 @@ class simpleManagement
       return;
     }
     if ($cancel) {
-      $msgs = array();
+      $msgs = [];
     } else {
       $msgs = $this->tabObject->save();
     }
@@ -765,7 +766,7 @@ class simpleManagement
       return;
     } else {
       if (!$cancel) {
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Template applied!');
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Template applied!');
       }
       del_lock($this->dn);
       if (empty($this->dns)) {
@@ -785,7 +786,7 @@ class simpleManagement
    *          - Calls 'simpleTabs::save' to save back object modifications (e.g. to ldap).
    *          - Calls 'simpleManagement::closeDialogs' to return to the object listing.
    */
-  protected function saveChanges()
+  protected function saveChanges ()
   {
     if (($this->tabObject instanceOf simpleTabs) && ($this->dialogObject instanceOf templateDialog)) {
       $this->tabObject->save_object();
@@ -799,7 +800,7 @@ class simpleManagement
         msg_dialog::displayChecks($msgs);
         return;
       } else {
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
         $this->remove_lock();
         $this->closeDialogs();
       }
@@ -811,7 +812,7 @@ class simpleManagement
         return;
       } else {
         $this->dialogObject->save();
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
         $this->remove_lock();
         $this->closeDialogs();
       }
@@ -821,7 +822,7 @@ class simpleManagement
   /*!
    *  \brief  Save object modifications and keep dialogs opened
    */
-  protected function applyChanges()
+  protected function applyChanges ()
   {
     if ($this->tabObject instanceOf simpleTabs) {
       $this->tabObject->save_object();
@@ -829,7 +830,7 @@ class simpleManagement
       if (count($msgs)) {
         msg_dialog::displayChecks($msgs);
       } else {
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Modifications applied!');
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Modifications applied!');
         $this->tabObject->re_init();
       }
     }
@@ -839,7 +840,7 @@ class simpleManagement
    * \brief  Editing an object was caneled.
    *          Close dialogs/tabs and remove locks.
    */
-  protected function cancelEdit()
+  protected function cancelEdit ()
   {
     if (($this->tabObject instanceOf simpleTabs) && ($this->dialogObject instanceOf templateDialog)) {
       $this->handleTemplateApply(TRUE);
@@ -858,7 +859,7 @@ class simpleManagement
    *
    * \param  Array   $all     A combination of both 'action' and 'target'.
    */
-  function editEntry($action, array $target, array $all)
+  function editEntry ($action, array $target, array $all)
   {
     global $ui;
     // Do not create a new tabObject while there is already one opened,
@@ -888,11 +889,11 @@ class simpleManagement
       if ($locks = get_locks($this->dn, TRUE)) {
         return gen_locked_message($locks, $this->dn, TRUE);
       }
-      add_lock ($this->dn, $ui->dn);
+      add_lock($this->dn, $ui->dn);
 
       // Open object
       $this->openTabObject(objects::open($this->dn, $type), $this->dn);
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Edit entry initiated!");
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Edit entry initiated!");
       if (isset($all['subaction'])) {
         if ($this->handleSubAction($all) == FALSE) {
           trigger_error('Was not able to handle subaction: '.$all['subaction']);
@@ -905,11 +906,11 @@ class simpleManagement
    * \brief  Detects actions/events send by the ui
    *           and the corresponding targets.
    */
-  function detectPostActions()
+  function detectPostActions ()
   {
     if (!is_object($this->headpage)) {
       trigger_error("No valid headpage given....!");
-      return array();
+      return [];
     }
     $action = $this->headpage->getAction();
     if (isset($_POST['edit_cancel'])) {
@@ -934,19 +935,19 @@ class simpleManagement
   /*!
    *  \brief  Calls the registered method for a given action/event.
    */
-  function handleActions($action)
+  function handleActions ($action)
   {
     // Start action
     if (isset($this->actions[$action['action']])) {
       $func = $this->actions[$action['action']];
       if (!isset($action['targets'])) {
-        $action['targets'] = array();
+        $action['targets'] = [];
       }
       return $this->$func($action['action'], $action['targets'], $action);
     }
   }
 
-  protected function handleSubAction($all)
+  protected function handleSubAction ($all)
   {
     if (preg_match('/^tab_/', $all['subaction'])) {
       $tab = preg_replace('/^tab_/', '', $all['subaction']);
@@ -960,7 +961,7 @@ class simpleManagement
     return FALSE;
   }
 
-  function openTabObject($object, $base)
+  function openTabObject ($object, $base)
   {
     $this->tabObject = $object;
     $this->tabObject->set_acl_base($base);
@@ -971,12 +972,12 @@ class simpleManagement
    * \brief  This method closes dialogs
    *          and cleans up the cached object info and the ui.
    */
-  public function closeDialogs()
+  public function closeDialogs ()
   {
     $this->last_dn  = $this->dn;
     $this->dn       = "";
     $this->last_dns = $this->dns;
-    $this->dns      = array();
+    $this->dns      = [];
 
     $this->last_tabObject     = $this->tabObject;
     $this->tabObject          = NULL;
@@ -993,7 +994,7 @@ class simpleManagement
    *         concurrent modifications.
    *         This locks will automatically removed here.
    */
-  function remove_lock()
+  function remove_lock ()
   {
     if (!empty($this->dn) && $this->dn != "new") {
       del_lock($this->dn);
@@ -1003,7 +1004,7 @@ class simpleManagement
     }
   }
 
-  function is_modal_dialog()
+  function is_modal_dialog ()
   {
     return (is_object($this->tabObject) || is_object($this->dialogObject));
   }
@@ -1011,13 +1012,13 @@ class simpleManagement
   /*! \brief    Queue selected objects to be removed.
    *            Checks ACLs, Locks and ask for confirmation.
    */
-  protected function removeEntryRequested($action, array $target, array $all)
+  protected function removeEntryRequested ($action, array $target, array $all)
   {
     global $ui;
-    $disallowed = array();
-    $this->dns  = array();
+    $disallowed = [];
+    $this->dns  = [];
 
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal requested!");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal requested!");
 
     // Check permissons for each target
     foreach ($target as $dn) {
@@ -1050,7 +1051,7 @@ class simpleManagement
       }
 
       // Add locks
-      $objects = array();
+      $objects = [];
       foreach ($this->dns as $dn) {
         $type   = $this->getType($dn);
         if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
@@ -1061,14 +1062,14 @@ class simpleManagement
           $info = objects::infos($type);
         }
         $entry  = $this->getHeadpage()->getEntry($dn);
-        $objects[] = array(
+        $objects[] = [
           'name'  => $entry[$info['mainAttr']][0],
           'dn'    => $dn,
           'icon'  => $info['icon'],
           'type'  => $info['name']
-        );
+        ];
       }
-      add_lock ($this->dns, $ui->dn);
+      add_lock($this->dns, $ui->dn);
 
       // Display confirmation dialog.
       $smarty = get_smarty();
@@ -1078,10 +1079,10 @@ class simpleManagement
     }
   }
 
-  function removeEntryConfirmed($action, array $target, array $all)
+  function removeEntryConfirmed ($action, array $target, array $all)
   {
     global $ui;
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal confirmed!");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal confirmed!");
 
     foreach ($this->dns as $dn) {
       $type = $this->getType($dn);
@@ -1104,7 +1105,7 @@ class simpleManagement
         del_lock($this->dn);
       } else {
         msg_dialog::display(_('Permission error'), msgPool::permDelete($dn), ERROR_DIALOG);
-        logging::log('security', 'simpleManagement/'.get_class($this), $dn, array(), 'Tried to trick deletion.');
+        logging::log('security', 'simpleManagement/'.get_class($this), $dn, [], 'Tried to trick deletion.');
       }
     }
 
@@ -1120,10 +1121,10 @@ class simpleManagement
    *
    * \param  Array   $target  A list of object dns, which should be affected by this method.
    */
-  function createSnapshotDialog($action, array $target)
+  function createSnapshotDialog ($action, array $target)
   {
     global $config, $ui;
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, 'Snaptshot creation initiated!');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, 'Snaptshot creation initiated!');
 
     if (count($target) == 1) {
       $this->dn = array_pop($target);
@@ -1149,12 +1150,12 @@ class simpleManagement
    *
    * \param  Array   $target  A list of object dns, which should be affected by this method.
    */
-  function restoreSnapshotDialog($action, array $target)
+  function restoreSnapshotDialog ($action, array $target)
   {
     global $config, $ui;
     // Set current restore base for snapshot handling.
     if (is_object($this->snapHandler)) {
-      $bases = array();
+      $bases = [];
       foreach ($this->storagePoints as $sp) {
         $bases[] = $sp.$this->headpage->getBase();
       }
@@ -1179,7 +1180,7 @@ class simpleManagement
     }
 
     if ($ui->allow_snapshot_restore($this->dn, $aclCategory, !count($target))) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Snaptshot restoring initiated!');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Snaptshot restoring initiated!');
       $this->snapHandler->setSnapshotBases($bases);
       $this->dialogObject = new SnapshotRestoreDialog($this->dn, $this, !count($target), $aclCategory);
       $this->dialogObject->set_acl_base($this->dn);
@@ -1195,7 +1196,7 @@ class simpleManagement
    *  @param  array   $target  A list of object dns, which should be affected by this method.
    *  @param  array   $all     A combination of both 'action' and 'target'.
    */
-  function copyPasteHandler($action = '', array $target = array(), array $all = array())
+  function copyPasteHandler ($action = '', array $target = [], array $all = [])
   {
     global $ui;
     // Return without any actions while copy&paste handler is disabled.
@@ -1218,11 +1219,11 @@ class simpleManagement
 
         if (($action == 'copy') && $ui->is_copyable($dn, $infos['aclCategory'])) {
           $this->cpHandler->add_to_queue($dn, 'copy', $type);
-          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry copied!');
+          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry copied!');
         }
         if (($action == 'cut') && $ui->is_cutable($dn, $infos['aclCategory'], $infos['mainTab'])) {
           $this->cpHandler->add_to_queue($dn, 'cut', $type);
-          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry cut!');
+          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry cut!');
         }
       }
     }
@@ -1253,7 +1254,7 @@ class simpleManagement
   /*!
    * \brief  Creates a new snapshot entry
    */
-  function createSnapshot($dn, $description)
+  function createSnapshot ($dn, $description)
   {
     global $ui;
     if ($this->dn !== $dn) {
@@ -1262,7 +1263,7 @@ class simpleManagement
     }
     if (!empty($dn) && $ui->allow_snapshot_create($dn, $this->dialogObject->aclCategory)) {
       $this->snapHandler->createSnapshot($dn, $description);
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot created!');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot created!');
     } else {
       msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn),
           ERROR_DIALOG);
@@ -1274,12 +1275,12 @@ class simpleManagement
    *
    * \param  String  $dn  The DN of the snapshot
    */
-  function restoreSnapshot($dn)
+  function restoreSnapshot ($dn)
   {
     global $ui;
     if (!empty($dn) && $ui->allow_snapshot_restore($dn, $this->dialogObject->aclCategory, $this->dialogObject->global)) {
       $this->snapHandler->restoreSnapshot($dn);
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot restored');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot restored');
       $this->closeDialogs();
     } else {
       msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn),
@@ -1290,9 +1291,9 @@ class simpleManagement
   /*!
    * \brief Get all deleted snapshots
    */
-  function getAllDeletedSnapshots()
+  function getAllDeletedSnapshots ()
   {
-    $tmp = array();
+    $tmp = [];
     $snapshotBases = $this->snapHandler->getSnapshotBases();
     if (is_array($snapshotBases)) {
       foreach ($snapshotBases as $base) {
@@ -1309,7 +1310,7 @@ class simpleManagement
    *
    * \param string $dn The DN
    */
-  function getAvailableSnapsShots($dn)
+  function getAvailableSnapsShots ($dn)
   {
     return $this->snapHandler->getAvailableSnapsShots($dn);
   }
@@ -1319,12 +1320,12 @@ class simpleManagement
    *
    * \param string $dn DN of the snapshot
    */
-  function removeSnapshot($dn)
+  function removeSnapshot ($dn)
   {
     global $ui;
     if (!empty($dn) && $ui->allow_snapshot_delete($dn, $this->dialogObject->aclCategory)) {
       $this->snapHandler->removeSnapshot($dn);
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot deleted');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot deleted');
     } else {
       msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to delete a snapshot for %s.'), $dn),
           ERROR_DIALOG);
diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc
index 20a94870e9dea6113b68928356ed946b66f5f48f..44a11c05f693b10c20193445985dfed2d0fcf285 100644
--- a/include/simpleplugin/class_simplePlugin.inc
+++ b/include/simpleplugin/class_simplePlugin.inc
@@ -35,7 +35,7 @@ class simplePlugin
    *
    * associative array that stores attributeLdapName => reference on object
    */
-  public $attributesAccess = array();
+  public $attributesAccess = [];
 
   /*!
     \brief Mark plugin as account
@@ -87,13 +87,13 @@ class simplePlugin
 
     This should only be used internally.
    */
-  public $attrs = array();
+  public $attrs = [];
 
   /*! \brief The objectClasses set by this tab */
-  protected $objectclasses = array();
+  protected $objectclasses = [];
 
   /*! \brief The state of the attributes when we opened the object */
-  protected $saved_attributes = array();
+  protected $saved_attributes = [];
 
   /*! \brief Do we want a header allowing to able/disable this plugin */
   protected $displayHeader = FALSE;
@@ -112,14 +112,14 @@ class simplePlugin
   protected $needEditMode = FALSE;
 
   /*! \brief Attributes that needs to be initialized before the others */
-  protected $preInitAttributes = array();
+  protected $preInitAttributes = [];
 
   /*! \brief FALSE to disable inheritance. Array like array ('objectClass' => 'attribute') to specify oc of the groups it might be inherited from
    */
   protected $inheritance      = FALSE;
   protected $member_of_group  = FALSE;
   protected $editing_group    = NULL;
-  protected $group_attrs      = array();
+  protected $group_attrs      = [];
 
   /*! \brief Used when the entry is opened as "readonly" due to locks */
   protected $read_only = FALSE;
@@ -163,9 +163,9 @@ class simplePlugin
       $this->ignore_account = TRUE;
     }
 
-    $this->attributesInfo = array();
+    $this->attributesInfo = [];
     foreach ($attributesInfo as $section => $sectionInfo) {
-      $attrs = array();
+      $attrs = [];
       foreach ($sectionInfo['attrs'] as $attr) {
         $name = $attr->getLdapName();
         if (isset($attrs[$name])) {
@@ -204,7 +204,7 @@ class simplePlugin
     if ($this->dn != 'new') {
       /* Check if this entry was opened in read only mode */
       if (isset($_POST['open_readonly'])) {
-        if (session::global_is_set('LOCK_CACHE')) {
+        if (session::is_set('LOCK_CACHE')) {
           $cache = session::get('LOCK_CACHE');
           if (isset($cache['READ_ONLY'][$this->dn])) {
             $this->read_only = TRUE;
@@ -242,8 +242,8 @@ class simplePlugin
 
       /* Set the template flag according to the existence of objectClass fdTemplate */
       if (isset($this->attrs['objectClass'])) {
-        if (in_array_ics ('fdTemplate', $this->attrs['objectClass'])) {
-          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Template check');
+        if (in_array_ics('fdTemplate', $this->attrs['objectClass'])) {
+          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Template check');
           $this->setTemplate(TRUE);
           $this->templateLoadAttrs($this->attrs);
         }
@@ -252,7 +252,7 @@ class simplePlugin
       /* Is Account? */
       if ($this->is_this_account($this->attrs)) {
         $this->is_account = TRUE;
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Object check');
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Object check');
       }
     }
 
@@ -295,7 +295,7 @@ class simplePlugin
     }
   }
 
-  protected function loadAttributes()
+  protected function loadAttributes ()
   {
     // We load attributes values
     // First the one flagged as preInit
@@ -318,14 +318,14 @@ class simplePlugin
     unset($sectionInfo);
   }
 
-  function is_this_account($attrs)
+  function is_this_account ($attrs)
   {
     $found = TRUE;
     foreach ($this->objectclasses as $obj) {
       if (preg_match('/^top$/i', $obj)) {
         continue;
       }
-      if (!isset($attrs['objectClass']) || !in_array_ics ($obj, $attrs['objectClass'])) {
+      if (!isset($attrs['objectClass']) || !in_array_ics($obj, $attrs['objectClass'])) {
         $found = FALSE;
         break;
       }
@@ -339,24 +339,24 @@ class simplePlugin
     if ($this->is_template && $this->mainTab) {
       /* Unshift special section for template infos */
       $this->attributesInfo = array_merge(
-        array(
-          '_template' => array(
-            'class' => array('fullwidth'),
+        [
+          '_template' => [
+            'class' => ['fullwidth'],
             'name'  => _('Template settings'),
-            'attrs' => array(
+            'attrs' => [
               '_template_cn' => new StringAttribute(
                 _('Template name'), _('This is the name of the template'),
                 '_template_cn', TRUE,
                 '', 'template_cn'
               )
-            )
-          ),
-          '_template_dummy' => array(
-            'class' => array('invisible'),
+            ]
+          ],
+          '_template_dummy' => [
+            'class' => ['invisible'],
             'name'  => '_template_dummy',
-            'attrs' => array()
-          )
-        ),
+            'attrs' => []
+          ]
+        ],
         $this->attributesInfo
       );
       $this->attributesAccess['_template_cn'] =& $this->attributesInfo['_template']['attrs']['_template_cn'];
@@ -367,7 +367,7 @@ class simplePlugin
     }
   }
 
-  protected function templateLoadAttrs(array $template_attrs)
+  protected function templateLoadAttrs (array $template_attrs)
   {
     if ($this->mainTab) {
       $this->_template_cn = $template_attrs['cn'][0];
@@ -375,7 +375,7 @@ class simplePlugin
     $this->attrs = templateHandling::fieldsFromLDAP($template_attrs);
   }
 
-  protected function templateSaveAttrs()
+  protected function templateSaveAttrs ()
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -385,10 +385,10 @@ class simplePlugin
       if (!$this->mainTab) {
         trigger_error('It seems main tab has not been saved.');
       }
-      $template_attrs = array(
-        'objectClass'     => array('fdTemplate'),
-        'fdTemplateField' => array()
-      );
+      $template_attrs = [
+        'objectClass'     => ['fdTemplate'],
+        'fdTemplateField' => []
+      ];
     }
     $template_attrs = templateHandling::fieldsToLDAP($template_attrs, $this->attrs);
     if ($this->mainTab) {
@@ -413,7 +413,7 @@ class simplePlugin
    * It calls the getValue method on the concerned attribute
    * It also adds the $plugin->attribtues syntax to get attributes list
    */
-  public function __get($name)
+  public function __get ($name)
   {
     if ($name == 'attributes') {
       $plugin = $this;
@@ -435,7 +435,7 @@ class simplePlugin
 
     It calls the setValue method on the concerned attribute
    */
-  public function __set($name, $value)
+  public function __set ($name, $value)
   {
     if ($name == 'attributes') {
       trigger_error('Tried to set obsolete attribute "attributes" (it is now dynamic)');
@@ -447,11 +447,11 @@ class simplePlugin
     }
   }
 
-  /*! \brief This function allows to use the syntax isset($plugin->attributeName)
+  /*! \brief This function allows to use the syntax isset ($plugin->attributeName)
 
     It returns FALSE if the attribute has an empty value.
    */
-  public function __isset($name)
+  public function __isset ($name)
   {
     if ($name == 'attributes') {
       return TRUE;
@@ -461,7 +461,7 @@ class simplePlugin
 
   /*! \brief This function returns the dn this object should have
    */
-  public function compute_dn()
+  public function compute_dn ()
   {
     global $config;
     if (!$this->mainTab) {
@@ -505,7 +505,7 @@ class simplePlugin
     return $attr.'='.ldap_escape_dn($this->attributesAccess[$attr]->computeLdapValue()).','.$ou.$base;
   }
 
-  protected function addAttribute($section, $attr)
+  protected function addAttribute ($section, $attr)
   {
     $name = $attr->getLdapName();
     $this->attributesInfo[$section]['attrs'][$name] = $attr;
@@ -514,7 +514,7 @@ class simplePlugin
     unset($this->$name);
   }
 
-  protected function removeAttribute($section, $id)
+  protected function removeAttribute ($section, $id)
   {
     unset($this->attributesInfo[$section]['attrs'][$id]);
     unset($this->attributesAccess[$id]);
@@ -529,10 +529,10 @@ class simplePlugin
    *
    * \return array [dn] => "..name"  // All deps. we are allowed to act on.
   */
-  function get_allowed_bases()
+  function get_allowed_bases ()
   {
     global $config;
-    $deps = array();
+    $deps = [];
 
     /* Is this a new object ? Or just an edited existing object */
     foreach ($config->idepartments as $dn => $name) {
@@ -557,7 +557,7 @@ class simplePlugin
    *
    * \param string $base
    */
-  function set_acl_base($base)
+  function set_acl_base ($base)
   {
     $this->acl_base = $base;
   }
@@ -567,7 +567,7 @@ class simplePlugin
    *
    * \param string $category
    */
-  function set_acl_category($category)
+  function set_acl_category ($category)
   {
     $this->acl_category = "$category/";
   }
@@ -581,7 +581,7 @@ class simplePlugin
     *
     * \return TRUE on success, error string on failure
     */
-  function move($src_dn, $dst_dn)
+  function move ($src_dn, $dst_dn)
   {
     global $config, $ui;
 
@@ -596,7 +596,7 @@ class simplePlugin
     $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $dst_dn));
     if (!$ldap->rename_dn($src_dn, $dst_dn)) {
       logging::log('debug', 'Ldap Protocol v3 implementation error, ldap_rename failed.',
-        "FROM: $src_dn  -- TO: $dst_dn", array(), $ldap->get_error());
+        "FROM: $src_dn  -- TO: $dst_dn", [], $ldap->get_error());
       @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, "Rename failed FROM: $src_dn  -- TO:  $dst_dn",
         'Ldap Protocol v3 implementation error. Error:'.$ldap->get_error());
       return $ldap->get_error();
@@ -605,13 +605,13 @@ class simplePlugin
     /* Update userinfo if necessary */
     if (preg_match('/'.preg_quote($src_dn, '/').'$/i', $ui->dn)) {
       $ui_dn = preg_replace('/'.preg_quote($src_dn, '/').'$/i', $dst_dn, $ui->dn);
-      logging::log('view', 'acl/'.get_class($this), $this->dn, array(), 'Updated userinfo dn from "'.$ui->dn.'" to "'.$ui_dn.'"');
+      logging::log('view', 'acl/'.get_class($this), $this->dn, [], 'Updated userinfo dn from "'.$ui->dn.'" to "'.$ui_dn.'"');
       $ui->dn = $ui_dn;
     }
 
     /* Check if departments were moved. If so, force the reload of config->departments */
     $ldap->cd($dst_dn);
-    $ldap->search('(objectClass=gosaDepartment)', array('dn'));
+    $ldap->search('(objectClass=gosaDepartment)', ['dn']);
     if ($ldap->count()) {
       $config->get_departments();
       $config->make_idepartments();
@@ -622,9 +622,9 @@ class simplePlugin
     return TRUE;
   }
 
-  function getRequiredAttributes()
+  function getRequiredAttributes ()
   {
-    $tmp = array();
+    $tmp = [];
     foreach ($this->attributesAccess as $attr) {
       if ($attr->isRequired()) {
         $tmp[] = $attr->getLdapName();
@@ -646,7 +646,7 @@ class simplePlugin
   }
 
   /*! \brief Indicates if this object is opened as read-only (because of locks) */
-  function readOnly()
+  function readOnly ()
   {
     return $this->read_only;
   }
@@ -655,13 +655,13 @@ class simplePlugin
    */
   function execute ()
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "execute");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "execute");
 
     /* Reset Lock message POST/GET check array, to prevent preg_match errors */
-    session::set('LOCK_VARS_TO_USE', array());
-    session::set('LOCK_VARS_USED_GET', array());
-    session::set('LOCK_VARS_USED_POST', array());
-    session::set('LOCK_VARS_USED_REQUEST', array());
+    session::set('LOCK_VARS_TO_USE', []);
+    session::set('LOCK_VARS_USED_GET', []);
+    session::set('LOCK_VARS_USED_POST', []);
+    session::set('LOCK_VARS_USED_REQUEST', []);
 
     $this->displayPlugin  = TRUE;
     $this->header         = "";
@@ -716,12 +716,12 @@ class simplePlugin
     return $this->header.$smarty->fetch($this->templatePath);
   }
 
-  public function getDisplayHeaderInfos()
+  public function getDisplayHeaderInfos ()
   {
     $plInfo   = pluglist::pluginInfos(get_class($this));
     $disabled = $this->acl_skip_write();
     if ($this->is_account) {
-      $depends = array();
+      $depends = [];
       if (isset($plInfo['plDepending'])) {
         foreach ($plInfo['plDepending'] as $plugin) {
           if (isset($this->parent->by_object[$plugin]) &&
@@ -735,8 +735,8 @@ class simplePlugin
       $buttonText = msgPool::removeFeaturesButton($plInfo['plShortName']);
       $text       = msgPool::featuresEnabled($plInfo['plShortName'], $depends);
     } else {
-      $depends    = array();
-      $conflicts  = array();
+      $depends    = [];
+      $conflicts  = [];
       if (isset($plInfo['plDepends'])) {
         foreach ($plInfo['plDepends'] as $plugin) {
           if (isset($this->parent->by_object[$plugin]) &&
@@ -760,7 +760,7 @@ class simplePlugin
       $buttonText = msgPool::addFeaturesButton($plInfo['plShortName']);
       $text       = msgPool::featuresDisabled($plInfo['plShortName'], $depends, $conflicts);
     }
-    return array($disabled,$buttonText,$text);
+    return [$disabled,$buttonText,$text];
   }
 
   /*!
@@ -776,7 +776,7 @@ class simplePlugin
    *
    * \param string $name The html name of the input, defaults to modify_state
    */
-  function show_header($button_text, $text, $plugin_enabled, $button_disabled = FALSE, $name = 'modify_state')
+  function show_header ($button_text, $text, $plugin_enabled, $button_disabled = FALSE, $name = 'modify_state')
   {
     if ($button_disabled || ((!$this->acl_is_createable() && !$plugin_enabled) || (!$this->acl_is_removeable() && $plugin_enabled))) {
         $state = 'disabled="disabled"';
@@ -793,7 +793,7 @@ class simplePlugin
    *
    * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
    */
-  function attrIsWriteable($attr)
+  function attrIsWriteable ($attr)
   {
     if (!is_object($attr)) {
       $attr = $this->attributesAccess[$attr];
@@ -808,7 +808,7 @@ class simplePlugin
     return $this->acl_is_writeable($attr->getAcl(), $this->acl_skip_write());
   }
 
-  function renderAttributes($readOnly = FALSE)
+  function renderAttributes ($readOnly = FALSE)
   {
     global $ui;
     $smarty = get_smarty();
@@ -826,7 +826,7 @@ class simplePlugin
       }
     }
 
-    $sections = array();
+    $sections = [];
     foreach ($this->attributesInfo as $section => $sectionInfo) {
       $legend = $sectionInfo['name'];
       if (isset($sectionInfo['icon'])) {
@@ -842,7 +842,7 @@ class simplePlugin
       } else {
         $smarty->assign("sectionClasses", '');
       }
-      $attributes = array();
+      $attributes = [];
       foreach ($sectionInfo['attrs'] as $attr) {
         if ($attr->getAclInfo() !== FALSE) {
           // We assign ACLs so that attributes can use them in their template code
@@ -862,7 +862,7 @@ class simplePlugin
     $smarty->assign("sections", $sections);
   }
 
-  function inheritanceDisplay()
+  function inheritanceDisplay ()
   {
     if (!$this->member_of_group) {
       return "";
@@ -906,7 +906,7 @@ class simplePlugin
   }
 
   /*! \brief Can we write the attribute */
-  function acl_is_writeable($attribute, $skipWrite = FALSE)
+  function acl_is_writeable ($attribute, $skipWrite = FALSE)
   {
     return preg_match('/w/', $this->aclGetPermissions($attribute, NULL, $skipWrite));
   }
@@ -916,7 +916,7 @@ class simplePlugin
    *
    * \param string $attribute
    */
-  function acl_is_readable($attribute)
+  function acl_is_readable ($attribute)
   {
     return preg_match('/r/', $this->aclGetPermissions($attribute));
   }
@@ -926,7 +926,7 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_createable($base = NULL)
+  function acl_is_createable ($base = NULL)
   {
     return preg_match('/c/', $this->aclGetPermissions('0', $base));
   }
@@ -936,7 +936,7 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_removeable($base = NULL)
+  function acl_is_removeable ($base = NULL)
   {
     return preg_match('/d/', $this->aclGetPermissions('0', $base));
   }
@@ -946,13 +946,13 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_moveable($base = NULL)
+  function acl_is_moveable ($base = NULL)
   {
     return preg_match('/m/', $this->aclGetPermissions('0', $base));
   }
 
   /*! \brief Get the acl permissions for an attribute or the plugin itself */
-  function aclGetPermissions($attribute = '0', $base = NULL, $skipWrite = FALSE)
+  function aclGetPermissions ($attribute = '0', $base = NULL, $skipWrite = FALSE)
   {
     if (isset($this->parent) && isset($this->parent->ignoreAcls) && $this->parent->ignoreAcls) {
       return 'cdmr'.($skipWrite ? '' : 'w');
@@ -967,21 +967,21 @@ class simplePlugin
 
   /*! \brief This function removes the object from LDAP
    */
-  function remove($fulldelete = FALSE)
+  function remove ($fulldelete = FALSE)
   {
     if (!$this->initially_was_account) {
-      return array();
+      return [];
     }
 
     if (!$fulldelete && !$this->acl_is_removeable()) {
       trigger_error('remove was called on a tab without enough ACL rights');
-      return array();
+      return [];
     }
 
     $this->prepare_remove();
     if ($this->is_template && (!defined('_OLD_TEMPLATES_') || !_OLD_TEMPLATES_)) {
       $this->attrs = $this->templateSaveAttrs();
-      $this->saved_attributes = array();
+      $this->saved_attributes = [];
     }
     /* Pre hooks */
     $errors = $this->pre_remove();
@@ -993,14 +993,14 @@ class simplePlugin
       return $errors;
     }
     $this->post_remove();
-    return array();
+    return [];
   }
 
   /* Remove FusionDirectory attributes */
   protected function prepare_remove ()
   {
     global $config;
-    $this->attrs = array();
+    $this->attrs = [];
 
     if (!$this->mainTab) {
       /* include global link_info */
@@ -1008,8 +1008,8 @@ class simplePlugin
 
       /* Get current objectClasses in order to add the required ones */
       $ldap->cat($this->dn);
-      $tmp  = $ldap->fetch ();
-      $oc   = array();
+      $tmp  = $ldap->fetch();
+      $oc   = [];
       if ($this->is_template) {
         if (isset($tmp['fdTemplateField'])) {
           foreach ($tmp['fdTemplateField'] as $tpl_field) {
@@ -1030,7 +1030,7 @@ class simplePlugin
 
       /* Unset attributes from entry */
       foreach ($this->attributes as $val) {
-        $this->attrs["$val"] = array();
+        $this->attrs["$val"] = [];
       }
     }
   }
@@ -1056,9 +1056,9 @@ class simplePlugin
     $this->ldap_error = $ldap->get_error();
 
     if ($ldap->success()) {
-      return array();
+      return [];
     } else {
-      return array(msgPool::ldaperror($this->ldap_error, $this->dn, LDAP_MOD, get_class()));
+      return [msgPool::ldaperror($this->ldap_error, $this->dn, LDAP_MOD, get_class())];
     }
   }
 
@@ -1077,7 +1077,7 @@ class simplePlugin
    */
   function save_object ()
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'save_object');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'save_object');
     if ($this->displayHeader && isset($_POST[get_class($this).'_modify_state'])) {
       if ($this->is_account && $this->acl_is_removeable()) {
         $this->is_account = FALSE;
@@ -1095,7 +1095,7 @@ class simplePlugin
             $attr->loadPostValue();
           }
         }
-        unset ($attrs);
+        unset($attrs);
       }
       unset($sectionInfo);
       // A second one that applies them. That allow complex stuff such as attribute disabling
@@ -1106,13 +1106,13 @@ class simplePlugin
             $attr->applyPostValue();
           }
         }
-        unset ($attrs);
+        unset($attrs);
       }
       unset($sectionInfo);
     }
   }
 
-  protected function prepareSavedAttributes()
+  protected function prepareSavedAttributes ()
   {
     /* Prepare saved attributes */
     $this->saved_attributes = $this->attrs;
@@ -1146,7 +1146,7 @@ class simplePlugin
    * \brief Remove attributes, empty arrays, arrays
    * single attributes that do not differ
    */
-  function cleanup()
+  function cleanup ()
   {
     foreach ($this->attrs as $index => $value) {
 
@@ -1163,7 +1163,7 @@ class simplePlugin
       if (is_array($this->attrs[$index]) &&
           (count($this->attrs[$index]) == 0) &&
           !isset($this->saved_attributes[$index])) {
-        unset ($this->attrs[$index]);
+        unset($this->attrs[$index]);
         continue;
       }
 
@@ -1172,7 +1172,7 @@ class simplePlugin
           isset($this->saved_attributes[$index]) &&
           !is_array($this->saved_attributes[$index]) &&
           ($this->attrs[$index] == $this->saved_attributes[$index])) {
-        unset ($this->attrs[$index]);
+        unset($this->attrs[$index]);
         continue;
       }
 
@@ -1181,14 +1181,14 @@ class simplePlugin
           isset($this->saved_attributes[$index]) &&
           is_array($this->saved_attributes[$index])) {
         if (!array_differs($this->attrs[$index], $this->saved_attributes[$index])) {
-          unset ($this->attrs[$index]);
+          unset($this->attrs[$index]);
           continue;
         }
       }
     }
   }
 
-  function prepareNextCleanup()
+  function prepareNextCleanup ()
   {
     /* Update saved attributes and ensure that next cleanups will be successful too */
     foreach ($this->attrs as $name => $value) {
@@ -1200,7 +1200,7 @@ class simplePlugin
    */
   function save ()
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "save");
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "save");
     $errors = $this->prepare_save();
     if (!empty($errors)) {
       return $errors;
@@ -1211,11 +1211,11 @@ class simplePlugin
         return $errors;
       }
       $this->attrs = $this->templateSaveAttrs();
-      $this->saved_attributes = array();
+      $this->saved_attributes = [];
     }
     $this->cleanup();
     if (!$this->shouldSave()) {
-      return array(); /* Nothing to do here */
+      return []; /* Nothing to do here */
     }
     /* Pre hooks */
     $errors = $this->pre_save();
@@ -1230,10 +1230,10 @@ class simplePlugin
     $this->prepareNextCleanup();
     /* Post hooks and logging */
     $this->post_save();
-    return array();
+    return [];
   }
 
-  protected function shouldSave()
+  protected function shouldSave ()
   {
     if ($this->mainTab && !$this->initially_was_account) {
       return TRUE;
@@ -1242,7 +1242,7 @@ class simplePlugin
   }
 
   /* Used by prepare_save and template::apply */
-  public function mergeObjectClasses(array $oc)
+  public function mergeObjectClasses (array $oc)
   {
     return array_merge_unique($oc, $this->objectclasses);
   }
@@ -1256,13 +1256,13 @@ class simplePlugin
     $this->entryCSN = '';
 
     /* Start with empty array */
-    $this->attrs = array();
+    $this->attrs = [];
 
     /* Get current objectClasses in order to add the required ones */
-    $ldap->cat($this->dn, array('fdTemplateField', 'objectClass'));
+    $ldap->cat($this->dn, ['fdTemplateField', 'objectClass']);
 
     $tmp  = $ldap->fetch();
-    $oc   = array();
+    $oc   = [];
 
     if ($this->is_template) {
       if (isset($tmp['fdTemplateField'])) {
@@ -1294,7 +1294,7 @@ class simplePlugin
       }
     }
 
-    return array();
+    return [];
   }
 
   protected function pre_save ()
@@ -1313,17 +1313,17 @@ class simplePlugin
 
     /* Check if this is a new entry ... add/modify */
     $ldap = $config->get_ldap_link();
-    $ldap->cat($this->dn, array("objectClass"));
+    $ldap->cat($this->dn, ["objectClass"]);
     if ($this->mainTab && !$this->initially_was_account) {
       if ($ldap->count()) {
-        return array(sprintf(_('There is already an entry with the same dn : %s'), $this->dn));
+        return [sprintf(_('There is already an entry with the same dn : %s'), $this->dn)];
       }
       $ldap->cd($config->current['BASE']);
       $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
       $action = "add";
     } else {
       if (!$ldap->count()) {
-        return array(sprintf(_('The entry %s is not existing'), $this->dn));
+        return [sprintf(_('The entry %s is not existing'), $this->dn)];
       }
       $action = "modify";
     }
@@ -1334,16 +1334,16 @@ class simplePlugin
 
     /* Check for errors */
     if (!$ldap->success()) {
-      return array(msgPool::ldaperror($this->ldap_error, $this->dn, 0, get_class()));
+      return [msgPool::ldaperror($this->ldap_error, $this->dn, 0, get_class())];
     }
-    return array();
+    return [];
   }
 
   /*! \brief This function is called after LDAP save to do some post operations and logging
    *
    * This function calls hooks, update foreign keys and log modification
    */
-  protected function post_save()
+  protected function post_save ()
   {
     /* Propagate and log the event */
     if ($this->initially_was_account) {
@@ -1367,7 +1367,7 @@ class simplePlugin
    *
    * \param  array  $addAttrs
    */
-  protected function handle_hooks($when, $mode, array $addAttrs = array())
+  protected function handle_hooks ($when, $mode, array $addAttrs = [])
   {
     switch ($mode) {
       case 'add':
@@ -1388,7 +1388,7 @@ class simplePlugin
   /*! \brief Forward command execution requests
    *         to the post hook execution method.
    */
-  function handle_post_events($mode, array $addAttrs = array())
+  function handle_post_events ($mode, array $addAttrs = [])
   {
     /* Update foreign keys */
     if ($mode == 'remove') {
@@ -1403,7 +1403,7 @@ class simplePlugin
    *  \brief Forward command execution requests
    *         to the pre hook execution method.
    */
-  function handle_pre_events($mode, array $addAttrs = array())
+  function handle_pre_events ($mode, array $addAttrs = [])
   {
     global $config;
 
@@ -1412,7 +1412,7 @@ class simplePlugin
       /* Store information if there was subobjects before deletion */
       $ldap = $config->get_ldap_link();
       $ldap->cd($this->dn);
-      $ldap->search('(objectClass=*)', array('dn'), 'one');
+      $ldap->search('(objectClass=*)', ['dn'], 'one');
       $this->hadSubobjects = ($ldap->count() > 0);
     }
     return $this->handle_hooks('PRE', $mode, $addAttrs);
@@ -1423,15 +1423,15 @@ class simplePlugin
    *           Replaces placeholder by class values of this plugin instance.
    *       Allows to a add special replacements.
    */
-  function callHook($cmd, array $addAttrs = array(), &$returnOutput = array(), &$returnCode = NULL)
+  function callHook ($cmd, array $addAttrs = [], &$returnOutput = [], &$returnCode = NULL)
   {
     if ($this->is_template) {
-      return array();
+      return [];
     }
     global $config;
 
     $commands = $config->searchHooks(get_class($this), $cmd);
-    $messages = array();
+    $messages = [];
 
     foreach ($commands as $command) {
       // Walk trough attributes list and add the plugins attributes.
@@ -1493,8 +1493,8 @@ class simplePlugin
    */
   function check ()
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'check');
-    $messages = array();
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'check');
+    $messages = [];
 
     foreach ($this->attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
@@ -1509,7 +1509,7 @@ class simplePlugin
       }
     }
 
-    $error = $this->callHook('CHECK', array('nbCheckErrors' => count($messages)), $returnOutput);
+    $error = $this->callHook('CHECK', ['nbCheckErrors' => count($messages)], $returnOutput);
     if (!empty($error)) {
       $messages = array_merge($messages, $error);
     }
@@ -1544,7 +1544,7 @@ class simplePlugin
     );
   }
 
-  function browseForeignKeys($mode, $param1 = NULL, $param2 = NULL)
+  function browseForeignKeys ($mode, $param1 = NULL, $param2 = NULL)
   {
     global $config, $plist;
 
@@ -1552,14 +1552,14 @@ class simplePlugin
     if (preg_match('/^handle_/', $mode)) {
       $olddn    = $param1;
       $newdn    = $param2;
-      $classes  = array(get_class($this));
+      $classes  = [get_class($this)];
       if (($olddn != $newdn) && $this->mainTab) {
         if ($newdn === NULL) {
           $subobjects = $this->hadSubobjects;
         } else {
           $ldap = $config->get_ldap_link();
           $ldap->cd($newdn);
-          $ldap->search('(objectClass=*)', array('dn'), 'one');
+          $ldap->search('(objectClass=*)', ['dn'], 'one');
           $subobjects = ($ldap->count() > 0);
         }
       }
@@ -1567,7 +1567,7 @@ class simplePlugin
       $classes = array_keys($this->parent->by_object);
     }
     // We group by objectType concerned
-    $foreignRefs = array();
+    $foreignRefs = [];
     if ($subobjects) {
       $field = 'dn';
       /* Special treatment for foreign keys on DN when moving an object
@@ -1586,11 +1586,11 @@ class simplePlugin
         }
         if ($class == 'aclAssignment') {
           /* Special case: aclAssignment foreignKey is ignored on department types as it’s handled by the aclAssignment objectType */
-          $objectTypes = array('ACLASSIGNMENT');
+          $objectTypes = ['ACLASSIGNMENT'];
         } elseif (is_subclass_of($class, 'simpleService')) {
-          $objectTypes = array('SERVER');
+          $objectTypes = ['SERVER'];
         } else {
-          $objectTypes = array();
+          $objectTypes = [];
           $cinfos = pluglist::pluginInfos($class);
           foreach ($cinfos['plObjectType'] as $key => $objectType) {
             if (!is_numeric($key)) {
@@ -1608,13 +1608,13 @@ class simplePlugin
           $newvalue = $newdn;
 
           $foreignRefs[$objectType]['refs'][$class][$ofield][$field] =
-            array(
+            [
               'tab'       => $classes[0],
               'field'     => $field,
               'oldvalue'  => $oldvalue,
               'newvalue'  => $newvalue,
-            );
-          $filter = templateHandling::parseString($filtersub, array('oldvalue' => $oldvalue, 'newvalue' => $newvalue), 'ldap_escape_f');
+            ];
+          $filter = templateHandling::parseString($filtersub, ['oldvalue' => $oldvalue, 'newvalue' => $newvalue], 'ldap_escape_f');
           if (!preg_match('/^\(.*\)$/', $filter)) {
             $filter = '('.$filter.')';
           }
@@ -1642,11 +1642,11 @@ class simplePlugin
           $cinfos = pluglist::pluginInfos($class);
           if ($class == 'aclAssignment') {
             /* Special case: aclAssignment foreignKey is ignored on department types as it’s handled by the aclAssignment objectType */
-            $objectTypes = array('ACLASSIGNMENT');
+            $objectTypes = ['ACLASSIGNMENT'];
           } elseif (is_subclass_of($class, 'simpleService')) {
-            $objectTypes = array('SERVER');
+            $objectTypes = ['SERVER'];
           } else {
-            $objectTypes = array();
+            $objectTypes = [];
             foreach ($cinfos['plObjectType'] as $key => $objectType) {
               if (!is_numeric($key)) {
                 $objectType = $key;
@@ -1671,24 +1671,24 @@ class simplePlugin
                 $newvalue = $this->attributeValue($field);
               }
               $foreignRefs[$objectType]['refs'][$class][$ofield][$field] =
-                array(
+                [
                   'tab'       => $tabclass,
                   'field'     => $field,
                   'oldvalue'  => $oldvalue,
                   'newvalue'  => $newvalue,
-                );
-              $filter = templateHandling::parseString($filter, array('oldvalue' => $oldvalue, 'newvalue' => $newvalue), 'ldap_escape_f');
+                ];
+              $filter = templateHandling::parseString($filter, ['oldvalue' => $oldvalue, 'newvalue' => $newvalue], 'ldap_escape_f');
             } elseif ($mode == 'references') {
               $foreignRefs[$objectType]['refs'][$class]['name'] = $cinfos['plShortName'];
 
               $foreignRefs[$objectType]['refs'][$class]['fields'][$ofield][$field] =
-                array(
+                [
                   'tab'     => $tabclass,
                   'field'   => $field,
                   'tabname' => $this->parent->by_name[$tabclass],
                   'value'   => $this->parent->by_object[$tabclass]->$field,
-                );
-              $filter = templateHandling::parseString($filter, array('oldvalue' => $this->parent->by_object[$tabclass]->$field), 'ldap_escape_f');
+                ];
+              $filter = templateHandling::parseString($filter, ['oldvalue' => $this->parent->by_object[$tabclass]->$field], 'ldap_escape_f');
             }
             if (!preg_match('/^\(.*\)$/', $filter)) {
               $filter = '('.$filter.')';
@@ -1701,7 +1701,7 @@ class simplePlugin
 
     /* Back up POST content */
     $SAVED_POST = $_POST;
-    $refs = array();
+    $refs = [];
     // For each concerned objectType
     foreach ($foreignRefs as $objectType => $tabRefs) {
       // Compute filter
@@ -1709,7 +1709,7 @@ class simplePlugin
       $filter = '(|'.join($filters).')';
       // Search objects
       try {
-        $objects = objects::ls($objectType, array('dn' => 'raw'), NULL, $filter);
+        $objects = objects::ls($objectType, ['dn' => 'raw'], NULL, $filter);
       } catch (NonExistingObjectTypeException $e) {
         continue;
       } catch (EmptyFilterException $e) {
@@ -1718,7 +1718,7 @@ class simplePlugin
       // For each object of this type
       foreach (array_keys($objects) as $dn) {
         /* Avoid sending POST to opened objects */
-        $_POST = array();
+        $_POST = [];
         // Build the object
         $tabobject = objects::open($dn, $objectType);
         if (preg_match('/^handle_/', $mode)) {
@@ -1735,12 +1735,12 @@ class simplePlugin
                     $ofield,
                     $field['oldvalue'],
                     $field['newvalue'],
-                    array(
+                    [
                       'CLASS' => $field['tab'],
                       'FIELD' => $field['field'],
                       'MODE'  => preg_replace('/^handle_/', '', $mode),
                       'DN'    => $this->dn,
-                    )
+                    ]
                   );
                 }
               }
@@ -1761,17 +1761,17 @@ class simplePlugin
                   if ($pluginobject->foreignKeyCheck(
                         $ofield,
                         $field['value'],
-                        array(
+                        [
                           'CLASS' => $field['tab'],
                           'FIELD' => $field['field'],
                           'DN'    => $this->dn,
-                        )
+                        ]
                       )) {
                     if (!isset($refs[$dn])) {
-                      $refs[$dn] = array(
+                      $refs[$dn] = [
                         'link'  => '',
-                        'tabs'  => array(),
-                      );
+                        'tabs'  => [],
+                      ];
                       try {
                         $refs[$dn]['link'] = objects::link($dn, $objectType);
                       } catch (FusionDirectoryException $e) {
@@ -1780,10 +1780,10 @@ class simplePlugin
                       }
                     }
                     if (!isset($refs[$dn]['tabs'][$tab])) {
-                      $refs[$dn]['tabs'][$tab] = array(
+                      $refs[$dn]['tabs'][$tab] = [
                         'link'    => '',
-                        'fields'  => array(),
-                      );
+                        'fields'  => [],
+                      ];
                       try {
                         if (is_subclass_of($tab, 'simpleService')) {
                           $refs[$dn]['tabs'][$tab]['link'] = objects::link($dn, $objectType, "service_$tab", sprintf(_('Service "%s"'), $tab_infos['name']));
@@ -1818,7 +1818,7 @@ class simplePlugin
    *
    * \param string $base
    */
-  function create_unique_dn($attribute, $base)
+  function create_unique_dn ($attribute, $base)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -1831,10 +1831,10 @@ class simplePlugin
     }
 
     /* Build DN with multiple attributes */
-    $usableAttributes = array();
+    $usableAttributes = [];
     foreach ($this->attributes as $attr) {
-      if (($attr != $attribute) && is_string($this->$attr) && ($this->$attr != '')) {
-        $usableAttributes[] = $attr;
+      if (($attr != $attribute) && is_scalar($this->$attr) && ($this->$attr != '')) {
+        $usableAttributes[] = (string)$attr;
       }
     }
     for ($i = 1; $i < count($usableAttributes); $i++) {
@@ -1861,7 +1861,7 @@ class simplePlugin
    *
    * \param array $skip A new array
    */
-  function adapt_from_template($attrs, $skip = array())
+  function adapt_from_template ($attrs, $skip = [])
   {
     $this->attrs = $attrs;
 
@@ -1883,26 +1883,26 @@ class simplePlugin
   /*!
    * \brief This function is called on the copied object to set its dn to where it will be saved
    */
-  function resetCopyInfos()
+  function resetCopyInfos ()
   {
     $this->dn       = 'new';
     $this->orig_dn  = $this->dn;
 
-    $this->saved_attributes       = array();
+    $this->saved_attributes       = [];
     $this->initially_was_account  = FALSE;
   }
 
-  protected function attributeHaveChanged($field)
+  protected function attributeHaveChanged ($field)
   {
     return $this->attributesAccess[$field]->hasChanged();
   }
 
-  protected function attributeValue($field)
+  protected function attributeValue ($field)
   {
     return $this->attributesAccess[$field]->getValue();
   }
 
-  protected function attributeInitialValue($field)
+  protected function attributeInitialValue ($field)
   {
     return $this->attributesAccess[$field]->getInitialValue();
   }
@@ -1930,7 +1930,7 @@ class simplePlugin
     return $this->attributesAccess[$field]->foreignKeyCheck($value, $source);
   }
 
-  function deserializeValues($values, $checkAcl = TRUE)
+  function deserializeValues ($values, $checkAcl = TRUE)
   {
     foreach ($values as $name => $value) {
       if (isset($this->attributesAccess[$name])) {
@@ -1950,7 +1950,7 @@ class simplePlugin
   }
 
   /* Returns TRUE if this attribute should be asked in the creation by template dialog */
-  function showInTemplate($attr, $templateAttrs)
+  function showInTemplate ($attr, $templateAttrs)
   {
     if (isset($templateAttrs[$attr])) {
       return FALSE;
@@ -1958,7 +1958,7 @@ class simplePlugin
     return TRUE;
   }
 
-  function is_modal_dialog()
+  function is_modal_dialog ()
   {
     return (isset($this->dialog) && $this->dialog);
   }
@@ -1968,9 +1968,9 @@ class simplePlugin
    *
    * \return an array
    */
-  static function plInfo()
+  static function plInfo ()
   {
-    return array();
+    return [];
   }
 
   /*! \brief This function generate the needed ACLs for a given attribtues array
@@ -1979,7 +1979,7 @@ class simplePlugin
    */
   static function generatePlProvidedAcls ($attributesInfo)
   {
-    $plProvidedAcls = array();
+    $plProvidedAcls = [];
     foreach ($attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
         $aclInfo = $attr->getAclInfo();
@@ -2019,7 +2019,7 @@ class simplePlugin
       }
       $objectType = $key;
     }
-    $plCategory = (isset($plInfo['plCategory']) ? $plInfo['plCategory'] : array('user'));
+    $plCategory = (isset($plInfo['plCategory']) ? $plInfo['plCategory'] : ['user']);
     $key = key($plCategory);
     if (is_numeric($key)) {
       $plCategory = $plCategory[$key];
@@ -2081,7 +2081,7 @@ class simplePlugin
           /* Check locking */
           if ($locks = get_locks($entry_dn)) {
             session::set('back_plugin', $plug);
-            session::set('LOCK_VARS_TO_USE', array("/^edit$/", "/^plug$/"));
+            session::set('LOCK_VARS_TO_USE', ["/^edit$/", "/^plug$/"]);
             $lock_msg = gen_locked_message($locks, $entry_dn);
           } else {
             /* Lock the current entry */
@@ -2141,7 +2141,7 @@ class simplePlugin
         } else {
           /* Only display edit button if there is at least one attribute editable */
           if (preg_match('/r/', $ui->get_permissions($entry_dn, $plCategory.'/'.$tabObject->current))) {
-            $info .= '<div style="display:inline-block" class="optional"><img class="center" alt="information" '.
+            $info .= '<div style="float:left;" class="optional"><img class="center" alt="information" '.
                       'src="geticon.php?context=status&amp;icon=dialog-information&amp;size=16"> '.
                       msgPool::clickEditToChange().'</div>';
 
diff --git a/include/simpleplugin/class_simpleSelectManagement.inc b/include/simpleplugin/class_simpleSelectManagement.inc
index da3b92cb315b3cb87ddca377455d0fccdf7faa9d..e754c15325f25246f9b959a74b7234e359ec3fef 100644
--- a/include/simpleplugin/class_simpleSelectManagement.inc
+++ b/include/simpleplugin/class_simpleSelectManagement.inc
@@ -33,7 +33,7 @@ class simpleSelectManagement extends simpleManagement
 
   protected $departmentRootVisible  = FALSE;
 
-  function __construct()
+  function __construct ()
   {
     if ($this->listXMLPath === NULL) {
       $this->listXMLPath = get_template_path('simple-select-list.xml', TRUE, dirname(__FILE__));
@@ -67,7 +67,7 @@ class simpleSelectManagement extends simpleManagement
     $this->filter->category = $infos['aclCategory'];
   }
 
-  static function filterSelectLink()
+  static function filterSelectLink ()
   {
     if (func_num_args() < 4) {
       return '&nbsp';
diff --git a/include/simpleplugin/class_simpleService.inc b/include/simpleplugin/class_simpleService.inc
index 5804928919f0ea2d6678e62de38e9380afcd5ca2..52b4152c8ae0b2877182dbd7214eeced2c8835ba 100644
--- a/include/simpleplugin/class_simpleService.inc
+++ b/include/simpleplugin/class_simpleService.inc
@@ -27,7 +27,7 @@ class simpleService extends simplePlugin
 
   protected $status = '';
 
-  public $conflicts   = array();
+  public $conflicts   = [];
   public $DisplayName = '';
 
   /*! \brief constructor
@@ -47,7 +47,7 @@ class simpleService extends simplePlugin
 
   /*! \brief This function display the service and return the html code
    */
-  function execute()
+  function execute ()
   {
     $str = parent::execute();
 
@@ -61,13 +61,13 @@ class simpleService extends simplePlugin
     return $str;
   }
 
-  protected function acl_skip_write()
+  protected function acl_skip_write ()
   {
     return FALSE;
   }
 
   /*! \brief Get service information for serverService plugin */
-  function getListEntry()
+  function getListEntry ()
   {
     /* Assign status flag */
     $fields['Status']       = $this->status;
@@ -96,7 +96,7 @@ class simpleService extends simplePlugin
   }
 
   /*! \brief This function save new status flag */
-  function setStatus($value)
+  function setStatus ($value)
   {
     /* Can't set status flag for new services (Object doesn't exists in ldap tree) */
     if (!$this->initially_was_account) {
diff --git a/include/simpleplugin/class_simpleTabs.inc b/include/simpleplugin/class_simpleTabs.inc
index e1d3e4538b23ea91510e4783601a0c8f9e13ea62..5dd21b4d60600b1026cf9a5b81c38d05fd78312c 100644
--- a/include/simpleplugin/class_simpleTabs.inc
+++ b/include/simpleplugin/class_simpleTabs.inc
@@ -35,13 +35,13 @@ class simpleTabs
 
   public $objectType      = FALSE;
   protected $specialTabs  = TRUE;
-  protected $plNotify     = array();
+  protected $plNotify     = [];
 
   var $last       = "";
   var $current    = "";
   var $disabled   = "";
-  var $by_name    = array();
-  var $by_object  = array();
+  var $by_name    = [];
+  var $by_object  = [];
   var $acl_category;
 
   /* A parent object if available, e.g. a management class. */
@@ -54,7 +54,7 @@ class simpleTabs
   /*!
    * \brief Tabs classes constructor
    * */
-  function __construct($type, $dn, $attrs_object = NULL)
+  function __construct ($type, $dn, $attrs_object = NULL)
   {
     global $config;
 
@@ -69,7 +69,7 @@ class simpleTabs
     $this->dn           = $dn;
 
     if (!count($data)) {
-      $data[] = array('CLASS' => 'plugin','NAME' => 'Error');
+      $data[] = ['CLASS' => 'plugin','NAME' => 'Error'];
       msg_dialog::display(_('Error'),
         sprintf(_('No plugin definitions found to initialize "%s", please check your configuration file.'), get_class($this)),
         ERROR_DIALOG);
@@ -119,12 +119,12 @@ class simpleTabs
    *
    * This maybe usefull if for example the apply button was pressed.
    */
-  function re_init()
+  function re_init ()
   {
     $baseobject = NULL;
     foreach ($this->by_object as $name => $object) {
       $class = get_class($object);
-      if (in_array($class, array("reference","acl"))) {
+      if (in_array($class, ["reference","acl"])) {
         continue;
       }
       if ($baseobject === NULL) {
@@ -140,7 +140,7 @@ class simpleTabs
   /*!
    * \brief Sets the active tabs from this instance to an other one. Used by templates
    */
-  function setActiveTabs(&$tabObject)
+  function setActiveTabs (&$tabObject)
   {
     foreach ($this->by_object as $class => $plugin) {
       if ($plugin->is_account || $plugin->ignore_account) {
@@ -149,7 +149,7 @@ class simpleTabs
     }
   }
 
-  function resetCopyInfos()
+  function resetCopyInfos ()
   {
     $this->dn = 'new';
     foreach ($this->by_object as &$obj) {
@@ -158,13 +158,13 @@ class simpleTabs
     unset($obj);
   }
 
-  function resetBase()
+  function resetBase ()
   {
     $baseobject = $this->getBaseObject();
     if (isset($baseobject->base)) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixing base');
-      if (session::global_is_set('CurrentMainBase')) {
-        $baseobject->base = dn2base('cn=dummy,'.session::global_get('CurrentMainBase'));
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixing base');
+      if (session::is_set('CurrentMainBase')) {
+        $baseobject->base = dn2base('cn=dummy,'.session::get('CurrentMainBase'));
       } else {
         $baseobject->base = dn2base(get_userinfo()->dn);
       }
@@ -172,19 +172,19 @@ class simpleTabs
         /* For some plugins not yet migrated to simple plugin. */
         $baseobject->baseSelector->setBase($baseobject->base);
       }
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixed base');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixed base');
     } else {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, '', 'no base');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, '', 'no base');
     }
   }
 
-  function getBaseObject()
+  function getBaseObject ()
   {
     return $this->by_object[$this->baseclass];
   }
 
   /*! \brief Indicates if this tab class is read-only (because of locks) */
-  function readOnly()
+  function readOnly ()
   {
     return $this->getBaseObject()->readOnly();
   }
@@ -192,7 +192,7 @@ class simpleTabs
   /*!
    * \brief Save the tab(s) contents
    */
-  function execute()
+  function execute ()
   {
     /* Look for pressed tab button first */
     foreach ($this->by_object as $class => &$obj) {
@@ -220,7 +220,7 @@ class simpleTabs
   /*!
    * \brief Save a tabs object
    */
-  function save_object()
+  function save_object ()
   {
     /* Ensure that the currently selected tab is valid. */
     if (!isset($this->by_name[$this->current])) {
@@ -232,7 +232,7 @@ class simpleTabs
 
     /* Save last tab */
     if ($this->last != "") {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->last, "Saving");
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->last, "Saving");
 
       $this->by_object[$this->last]->save_object();
     }
@@ -243,7 +243,7 @@ class simpleTabs
    *
    * \param boolean $disabled false
    */
-  function gen_tabs($disabled = FALSE)
+  function gen_tabs ($disabled = FALSE)
   {
     $display = "";
     if (!$disabled) {
@@ -251,7 +251,7 @@ class simpleTabs
     }
     $display  .= '<table class="tabs-header"><tbody><tr>';
     $index    = 0;
-    $style    = array('tab-left', 'tab-active', 'tab-right');
+    $style    = ['tab-left', 'tab-active', 'tab-right'];
     foreach ($this->by_name as $class => $name) {
 
       /* Activate right tabs with style "tab-right" */
@@ -310,7 +310,7 @@ class simpleTabs
   /*!
    * \brief Remove object from LDAP
    */
-  function delete()
+  function delete ()
   {
     if (!$this->getBaseObject()->acl_is_removeable()) {
       msg_dialog::display(_('Permission'), msgPool::permDelete($this->getBaseObject()->dn), ERROR_DIALOG);
@@ -331,16 +331,16 @@ class simpleTabs
   /*!
    * \brief Check
    */
-  protected function check()
+  protected function check ()
   {
     global $config;
-    $messages = array();
+    $messages = [];
 
     if ($this->getBaseObject()->is_template) {
       $ldap = $config->get_ldap_link();
       $ldap->cd($config->current['BASE']);
       $filter = '(&(objectClass=fdTemplate)(cn='.ldap_escape_f($this->getBaseObject()->_template_cn).'))';
-      $ldap->search($filter, array('dn'));
+      $ldap->search($filter, ['dn']);
       while ($attrs = $ldap->fetch()) {
         if ($attrs['dn'] != $this->getBaseObject()->dn) {
           $messages[] = msgPool::duplicated($this->getBaseObject()->attributesAccess['_template_cn']->getLabel(), $attrs['dn']);
@@ -355,7 +355,7 @@ class simpleTabs
     foreach ($this->by_object as $key => $obj) {
       $this->plNotify[$key] = FALSE;
       if (($obj->is_account || $obj->ignore_account) && (!$obj->is_template)) {
-        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Checking");
+        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Checking");
 
         $msg = $obj->check();
 
@@ -378,7 +378,7 @@ class simpleTabs
    *
    * \param boolean $ignore_account false
    */
-  function save()
+  function save ()
   {
     global $ui;
     $messages = $this->check();
@@ -390,14 +390,14 @@ class simpleTabs
     $old_dn     = $this->dn;
     try {
       $new_dn     = $baseobject->compute_dn();
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $new_dn, 'Saving');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $new_dn, 'Saving');
     } catch (FusionDirectoryException $e) {
-      return array(
+      return [
         sprintf(_('Failed to compute DN for object: %s'), $e->getMessage())
-      );
+      ];
     }
 
-    $errors   = array();
+    $errors   = [];
     $creation = ($this->dn == 'new');
 
     /* Move ? */
@@ -419,7 +419,7 @@ class simpleTabs
     /* Save all plugins */
     $first = TRUE;
     foreach ($this->by_object as $key => $obj) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Saving');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Saving');
 
       $obj->dn = $this->dn;
 
@@ -467,10 +467,10 @@ class simpleTabs
    * \param array $attrs an LDAP-like values array
    * \param array $skip Attributes to skip
    */
-  function adapt_from_template($attrs, $skip = array())
+  function adapt_from_template ($attrs, $skip = [])
   {
     foreach ($this->by_object as $key => &$obj) {
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Adapting");
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Adapting");
       $obj->parent = &$this;
       $obj->adapt_from_template($attrs, $skip);
     }
@@ -480,7 +480,7 @@ class simpleTabs
   /*!
    * \brief Add special Tabs
    */
-  function addSpecialTabs()
+  function addSpecialTabs ()
   {
     global $config;
     $baseobject = $this->getBaseObject();
@@ -501,7 +501,7 @@ class simpleTabs
    *
    * \param string $base The new acl base
    */
-  function set_acl_base($base = "")
+  function set_acl_base ($base = "")
   {
     /* Update reference, transfer variables */
     $first = ($base == "");
@@ -516,7 +516,7 @@ class simpleTabs
     unset($obj);
   }
 
-  function setTemplateMode($cn)
+  function setTemplateMode ($cn)
   {
     $this->getBaseObject()->_template_cn = $cn;
 
@@ -534,7 +534,7 @@ class simpleTabs
     unset($obj);
   }
 
-  public function setIgnoreAcls($bool)
+  public function setIgnoreAcls ($bool)
   {
     $this->ignoreAcls = $bool;
   }
@@ -544,7 +544,7 @@ class simpleTabs
     return $this->by_object[$this->current]->is_modal_dialog();
   }
 
-  function objectInfos()
+  function objectInfos ()
   {
     if ($this->objectType === FALSE) {
       return FALSE;
@@ -553,7 +553,7 @@ class simpleTabs
   }
 
   /* Return tab or service if activated, FALSE otherwise */
-  function getTabOrServiceObject($tab)
+  function getTabOrServiceObject ($tab)
   {
     if (isset($this->by_object[$tab]) && ($this->by_object[$tab]->is_account || $this->by_object[$tab]->ignore_account)) {
       return $this->by_object[$tab];
diff --git a/include/variables.inc b/include/variables.inc
index e4fe9c114a2473664d57d52133583d1a2918cb7f..c7ea9b72a19404acd332359bb937fafa422b203a 100644
--- a/include/variables.inc
+++ b/include/variables.inc
@@ -28,7 +28,7 @@
 require_once('variables_common.inc');
 
 if (!defined("CONFIG_DIR")) {
-  define ("CONFIG_DIR", "/etc/fusiondirectory/"); /* FusionDirectory etc path */
+  define("CONFIG_DIR", "/etc/fusiondirectory/"); /* FusionDirectory etc path */
 }
 
 /*!
@@ -36,7 +36,7 @@ if (!defined("CONFIG_DIR")) {
  *   e.g.  SetEnv CONFIG_FILE fusiondirectory.conf 1.0
  */
 if (!defined("CONFIG_FILE")) {
-  define ("CONFIG_FILE", "fusiondirectory.conf"); /* FusionDirectory filename */
+  define("CONFIG_FILE", "fusiondirectory.conf"); /* FusionDirectory filename */
 }
 
 /*!
@@ -47,37 +47,37 @@ define("SMARTY", "/usr/share/php/smarty3/Smarty.class.php");
 /*!
  * \brief Smarty compile dir
  */
-define ("SPOOL_DIR", "/var/spool/fusiondirectory/"); /* FusionDirectory spool directory */
+define("SPOOL_DIR", "/var/spool/fusiondirectory/"); /* FusionDirectory spool directory */
 
 /*!
  * \brief Global cache dir
  */
-define ("CACHE_DIR", "/var/cache/fusiondirectory/"); /* FusionDirectory var directory */
+define("CACHE_DIR", "/var/cache/fusiondirectory/"); /* FusionDirectory var directory */
 
 /*!
  * \brief Global locale cache dir
  */
-define ("LOCALE_DIR", "/var/cache/fusiondirectory/locale/"); /* FusionDirectory locale directory */
+define("LOCALE_DIR", "/var/cache/fusiondirectory/locale/"); /* FusionDirectory locale directory */
 
 /*!
  * \brief Global tmp dir
  */
-define ("TEMP_DIR", "/var/cache/fusiondirectory/tmp/"); /* FusionDirectory tmp directory */
+define("TEMP_DIR", "/var/cache/fusiondirectory/tmp/"); /* FusionDirectory tmp directory */
 
 /*!
  * \brief Directory containing the configuration template
  */
-define ("CONFIG_TEMPLATE_DIR", "/var/cache/fusiondirectory/template/"); /* FusionDirectory template directory */
+define("CONFIG_TEMPLATE_DIR", "/var/cache/fusiondirectory/template/"); /* FusionDirectory template directory */
 
 /*!
  * \brief Directory containing the fai logs
  */
-define ("FAI_LOG_DIR", "/var/cache/fusiondirectory/fai/"); /* FusionDirectory fai directory */
+define("FAI_LOG_DIR", "/var/cache/fusiondirectory/fai/"); /* FusionDirectory fai directory */
 
 /*!
  * \brief Directory containing the vacation files
  */
-define ("SUPANN_DIR", "/etc/fusiondirectory/supann/"); /* FusionDirectory supann template directory */
+define("SUPANN_DIR", "/etc/fusiondirectory/supann/"); /* FusionDirectory supann template directory */
 
 /*!
  * \brief name of the class.cache file
diff --git a/include/variables_common.inc b/include/variables_common.inc
index bc56489e9d40d725261f2374ba9deaf96016605e..06378dd609b7712de454eec4ad2c2b0d48623b2a 100644
--- a/include/variables_common.inc
+++ b/include/variables_common.inc
@@ -29,7 +29,7 @@
  * e.g. SetEnv CONFIG_DIR /etc/fusiondirectory
 */
 if (isset($_SERVER['CONFIG_DIR'])) {
-  define ("CONFIG_DIR", $_SERVER['CONFIG_DIR']);
+  define("CONFIG_DIR", $_SERVER['CONFIG_DIR']);
 }
 
 /*
@@ -37,18 +37,18 @@ if (isset($_SERVER['CONFIG_DIR'])) {
  *  e.g.  SetEnv CONFIG_FILE fusiondirectory.conf 1.0
  */
 if (isset($_SERVER['CONFIG_FILE'])) {
-  define ("CONFIG_FILE", $_SERVER['CONFIG_FILE']);
+  define("CONFIG_FILE", $_SERVER['CONFIG_FILE']);
 }
 
 /*!
  * \brief php library path
  */
-define ("PHP_DIR", "/usr/share/php"); /*! Define php directory */
+define("PHP_DIR", "/usr/share/php"); /*! Define php directory */
 
 /*!
  * \brief php pear path
  */
-define ("PEAR_DIR", "/usr/share/php"); /*! Define PEAR directory */
+define("PEAR_DIR", "/usr/share/php"); /*! Define PEAR directory */
 
 /*!
  * \brief fpdf library path
@@ -63,21 +63,21 @@ define("FPDF_FONTPATH", "/usr/share/php/fpdf/font/"); /*! Define fpdf font path
 /*!
  * \brief FusionDirectory Version
  */
-define ("FD_VERSION", "1.3.1"); /*! Define FusionDirectory version */
+define("FD_VERSION", "1.3.1"); /*! Define FusionDirectory version */
 
 /*!
  * \brief FusionDirectory config object RDN
  */
-define ("CONFIGRDN", "cn=config,ou=fusiondirectory,"); /*! Define FusionDirectory config object */
+define("CONFIGRDN", "cn=config,ou=fusiondirectory,"); /*! Define FusionDirectory config object */
 
 /*!
  * \brief Minimum PHP version
  */
-define ('PHP_MIN_VERSION', '5.6.0');
+define('PHP_MIN_VERSION', '7.3.0');
 
 /*!
  * \brief Toggle crashing on PHP error, used for test suites
  */
-define ('PHP_ERROR_FATAL', 'FALSE');
+define('PHP_ERROR_FATAL', 'FALSE');
 
 ?>
diff --git a/locale/af_ZA/fusiondirectory.po b/locale/af_ZA/fusiondirectory.po
index 5883c922a163c6ea0dd1945385ba8a6588e3e345..664de7f7d71aca6070dd10c66194a2165bb9d8aa 100644
--- a/locale/af_ZA/fusiondirectory.po
+++ b/locale/af_ZA/fusiondirectory.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Language-Team: Afrikaans (South Africa) (https://www.transifex.com/fusiondirectory/teams/12202/af_ZA/)\n"
 "MIME-Version: 1.0\n"
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4723,11 +4809,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/ar/fusiondirectory.po b/locale/ar/fusiondirectory.po
index 56f66100f86e3b23642969e1aeec2f32c0925d08..cf3d0725ccd0d5641373c7280224d8fb9322ff8b 100644
--- a/locale/ar/fusiondirectory.po
+++ b/locale/ar/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2017\n"
 "Language-Team: Arabic (https://www.transifex.com/fusiondirectory/teams/12202/ar/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "خطأ"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "النوع"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "خطأ داخلي"
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "تحذير"
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "الإسم"
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "خطأ"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4759,11 +4845,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/ca/fusiondirectory.po b/locale/ca/fusiondirectory.po
index 418f92a48bbf6731b4e897f0d1011ae92fef7262..2ad81a4d3e746b7370b2bb6ea7d2ada9ae0f7109 100644
--- a/locale/ca/fusiondirectory.po
+++ b/locale/ca/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2016\n"
 "Language-Team: Catalan (https://www.transifex.com/fusiondirectory/teams/12202/ca/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Error d'LDAP"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr "Nom de la plantilla"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Avís"
@@ -647,12 +646,12 @@ msgstr "Entrada"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Canceŀla"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "D'acord"
 
@@ -1039,7 +1038,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1274,6 +1275,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nom"
@@ -1308,8 +1310,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1321,31 +1323,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1629,7 +1631,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1682,23 +1684,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1710,7 +1712,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1744,11 +1746,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2092,12 +2089,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2461,7 +2458,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3447,6 +3444,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3761,134 +3870,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3991,314 +4098,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4528,27 +4614,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr "El compte és blocat. Contacteu el vostre administrador de sistemes."
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4732,11 +4818,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/cs_CZ/fusiondirectory.po b/locale/cs_CZ/fusiondirectory.po
index 65ec46ab7752f6349b7941820f940fd7af4c3180..9be96c445c5f9d05a7e2f6a30496c44f4a3392da 100644
--- a/locale/cs_CZ/fusiondirectory.po
+++ b/locale/cs_CZ/fusiondirectory.po
@@ -4,17 +4,17 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
 # Pavel Borecki <pavel.borecki@gmail.com>, 2019
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2019\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Czech (Czech Republic) (https://www.transifex.com/fusiondirectory/teams/12202/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -40,9 +40,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Chyba"
 
@@ -90,8 +90,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Chyba LDAP"
 
@@ -147,59 +147,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Soubor"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "linka"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "chyba v PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "třída"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "funkce"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "neměnné"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "metoda"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "stopa"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Typ"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumenty"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Během vytváření této stránky ohlásil interpret PHP několik chyb!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "zaslat hlášení o chybě vývojářům FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "zaslat hlášení o chybě"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "přepnout informace"
 
@@ -356,9 +357,7 @@ msgstr "Název šablony"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Vnitřní chyba"
 
@@ -501,11 +500,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "LDAP server odpověděl: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Varování"
@@ -686,12 +685,12 @@ msgstr "uživatelské jméno"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Oprávnění"
@@ -975,8 +974,8 @@ msgstr "Chybějící rozšíření PHP %s!"
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "v pořádku"
 
@@ -1086,9 +1085,10 @@ msgid "Remove %s settings"
 msgstr "odebrat nastavení pro %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
-"Informace v tomto dialogu je možné upravit níže kliknutím na „Upravit“"
 
 #: include/class_msgPool.inc:646
 msgid "January"
@@ -1330,6 +1330,7 @@ msgstr "Vyberte požadované položky"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Název"
@@ -1364,8 +1365,8 @@ msgid "Restart service"
 msgstr "Restartovat službu"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "základ"
 
@@ -1377,31 +1378,31 @@ msgstr "Základ objektu"
 msgid "Base field value should always be a string"
 msgstr "Hodnota základní kolonky by vždy měla být řetězec"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr "Chyba, nesprávné datum: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "hodiny"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "minuty"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Sekund"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Datum"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "ÄŒas"
 
@@ -1694,8 +1695,8 @@ msgid "days"
 msgstr "dny"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
-msgstr "Přidat (dialog)"
+msgid "Add(dialog)"
+msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
 #, php-format
@@ -1747,23 +1748,23 @@ msgstr "chyba filtru"
 msgid "The filter is incomplete!"
 msgstr "Tento filtr je neúplný!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Chyba oprávnění"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Nejste oprávněn(a) vytvořit snímek %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Nejste oprávněn(a) obnovit ze snímku %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr "Nemáte oprávnění pro smazání zachyceného stavu pro %s."
@@ -1775,7 +1776,7 @@ msgstr "BEZ POPISKU"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "vytvořit"
 
@@ -1811,12 +1812,6 @@ msgstr "Neznámá položka „%s“!"
 msgid "All users"
 msgstr "Všichni uživatelé"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Požadovaný kanál neexistuje! Prosím kontaktujte svého správce systémů."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Varování ohledně výkonnosti"
@@ -2168,13 +2163,13 @@ msgstr "Spuštěná akce"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
-msgstr "Akce zavolána bez chyby (výsledky jsou „%s“)"
+msgid "Action called without error(results were \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
-msgstr "Akce zavolána bez chyby (výsledek je „%s“)"
+msgid "Action called without error(result was \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
 #: plugins/admin/groups/class_roleGeneric.inc:55
@@ -2537,7 +2532,7 @@ msgstr "Odebrat uživatele"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Uživatelé"
 
@@ -3597,6 +3592,118 @@ msgid ""
 msgstr ""
 "Statistiky pro typ „%s“ nebylo možné spočítat kvůli následující chybě: %s"
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Identifikátor"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Typ předplatného"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Datum začátku"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Datum ukončení"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "import(ovat)"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Upravit skupiny a role uživatele"
@@ -3917,46 +4024,46 @@ msgstr "vítejte v průvodci nastavením FusionDirectory"
 msgid "The welcome message"
 msgstr "uvítací zpráva"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr "LDAP spojení"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "název místa"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 "Název tohoto připojení, který bude zobrazován v seznamu serverů v LDAP"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "připojovací URI (adresa)"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 "URI adresa, na které kontaktovat LDAP server. Obvykle začíná na ldap://"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "připojení pomocí TLS (šifrované)"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr "Šifrovat komunikaci s LDAP serverem (pomocí TLS)?"
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "Základ LDAP adresáře"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "ověření"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
@@ -3964,39 +4071,39 @@ msgstr ""
 "Rozlišený název účtu správce, použitého pro spojování do LDAP. Základ je "
 "připojen samočinně."
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN (rozlišené jméno) účtu správce"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "heslo účtu správce"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Heslo k účtu správce, použitého pro spojování do LDAP"
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Stav"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "současný stav"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr "Výsledek posledního pokusu kontroly LDAP spojení a základních schémat"
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "nastavení LDAPu"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "nastavení připojení k LDAPu"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -4004,39 +4111,39 @@ msgstr ""
 "V tomto dialogu budou provedena základní nastavení pro komunikaci "
 "FusionDirectory s LDAPem."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonymní přihlášení k serveru '%s' se nezdařilo!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Přihlášení jako uživatel '%s' se nezdařilo!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Znovu"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonymní přihlášení k serveru '%s' proběhlo úspěšně."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "obnovit"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Zadejte prosím uživatelské jména a heslo!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Přihlášení se jako uživatel '%s' k serveru '%s' proběhlo úspěšně!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
@@ -4045,17 +4152,13 @@ msgstr ""
 "%s\n"
 "Schéma „%s“: %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "kontroly PHP a jeho rozšiřujících modulů"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
-"Nastavení uspořádání PHP (<a href=\"?info\" target=\"_blank\">zobrazit "
-"informace</a>)"
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
@@ -4171,28 +4274,12 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory toto rozšíření potřebuje pro práci se snímky."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"„register_globals“ je mechanizmus v PHP pro registraci všech globálních "
-"proměnných, které jsou tak dostupné ze skriptů aniž by bylo třeba měnit "
-"jejich rozsah. Jenže to může rizikové z hlediska zabezpečení."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Vyhledejte ve svém php.ini parametr 'register_globals' a nastavte jej na "
-"'off'. "
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP tuto hodnotu používá pro „úklid“ (garbage collector) při odstraňování "
 "starých relací."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4200,7 +4287,7 @@ msgstr ""
 "Nastavení této hodnoty na jeden den zabrání ztrátě relace a cookies dříve, "
 "než skutečně vyprší nastavený časový limit."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4208,12 +4295,12 @@ msgstr ""
 "Vyhledejte ve svém php.ini parametr 'session.gc_maxlifetime' a nastavte jej "
 "na hodnotu '86400' a vyšší."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "vypnuto"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4221,13 +4308,13 @@ msgstr ""
 "Abyste se vyhnuli potížím při používání FusionDirectory, vyhledejte ve svém "
 "php.ini parametr session.auto_start a nastavte jej na hodnotu off ."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'session.auto_start' a nastavte jej na "
 "'off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4237,14 +4324,14 @@ msgstr ""
 "nevyzpytatelné chyby! Pro rozsáhlá nasazení je třeba tuto hodnotu ještě dále"
 " navýšit."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "V souboru s nastaveními php.ini na svém serveru vyhledejte volbu "
 "memory_limit a nastavte ji na hodnotu 128M a vyšší."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4252,17 +4339,17 @@ msgstr ""
 "Tato volba ovlivňuje to, jak PHP zachází s výstupem. Pro zvýšení výkonu "
 "nastavte na 'vypnuto'."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'implicit_flush' a nastavte jej na "
 "'off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "PHP skripty by měly dostat čas alespoň 30 vteřin na to, aby proběhly."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4270,7 +4357,7 @@ msgstr ""
 "Vyhledejte ve svém php.ini parametr 'max_execution_time' a nastavte jej na "
 "hodnotu '30' a vyšší."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4278,42 +4365,28 @@ msgstr ""
 "Pro zlepšení zabezpečení nastavte PHP tak, aby neposkytovalo jakékoli "
 "informace o serveru, na kterém běží."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'expose_php' a nastavte jej na 'off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Výkonnost Vašeho serveru můžete zlepšit nastavením parametru "
-"'magic_quotes_gpc' na 'off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Vyhledejte ve svém php.ini parametr 'zend.ze1_compatibility_mode' a nastavte"
-" jej na 'off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "migrovat"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "kontrola LDAPu"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "prozkoumání Vášeho LDAPu, zda je slučitelný s FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Udělit veškerá práva na uživatelích v dané větvi"
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4321,86 +4394,86 @@ msgstr ""
 "Umožnit uživatelům upravovat své vlastní údaje (panely Hlavní a Posix "
 "použijte jen na základu)"
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Umožnit uživatelům upravovat jejich vlastní hesla (použijte pouze na "
 "základu)"
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "kontrolují se třídy objektů v kořenovém objektu"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "kontrolují se oprávnění na LDAP databázi"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "kontroluje se, zda neexistují „neviditelní“ uživatelé"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "kontroluji, zda již existuje účet správce FusionDirectory/GOsa"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr "Kontrola výchozích ACL úloh a skupin"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "kontroluje se, zda neexistují účty uživatelů mimo příslušný podstrom"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "kontroluje se, zda neexistují účty skupin mimo příslušný podstrom"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "kontroluje se, zda neexistují „neviditelná“ oddělení"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 "kontroluje se, zda neexistují duplicity v číselných identifikátorech "
 "uživatelů (UID)"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr "Kontrola duplicitních identifikátorů skupin (GID)"
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "dotaz do LDAPu byl neúspěšný"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr "Možná chybí kořenový objekt."
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Nezdařilo se"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Chybí chybí třída objektů '%s' FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Zkontrolujte svou instalaci."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4409,17 +4482,17 @@ msgstr ""
 "Nedaří se manipulace s typem struktury kořenového objektu. Prosím pokuste se"
 " přidat třídu objektů '%s' ručním zásahem."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "Zvolený uživatel %s nemá plný přístup do LDAP databáze."
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "Zvolený uživatel %s nemá plný přístup do LDAP databáze."
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4428,102 +4501,102 @@ msgstr ""
 "Nalezeno %s uživatelů, kteří nebudou dostupní z FusionDirectory nebo jsou "
 "jejich účty neúplné."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Přemístění uživatele"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "chyba během migrace"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "Položku %s nelze přemístit:"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Skupiny"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Role"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Ve Vašem LDAPu neexistuje účet správce FusionDirectory/GOsa."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Uděluje veškerá práva na veškerých objektech"
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "Výchozí ACL úlohy nebyly vloženy"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Chybí některé výchozí ACL úlohy"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "Výchozí ACL úlohy byly vloženy"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "Nelze přidat ACL úlohu %s:"
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr "Nalezeno %s uživatelů, nacházejících se mimo nastavený strom %s."
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "přesunout uživatele do příslušného stromu"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr "Položky nelze přesunout do požadovaného oddělení!"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "Položka bude přesunuta z"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "do"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "tyto odkazy budou aktualizovány"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 "Bylo nalezeno %s účtů skupin, nacházejících se mimo příslušný strom '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Přesunout skupiny do příslušného stromu"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr "Bylo nalezeno %s oddělení, která nebudou viditelná z FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr "Přemístění oddělení"
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr "Nalezeno %s duplicitních hodnot pro atribut „uidNumber“: %s"
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr "Nalezeno %s duplicitních hodnot pro atribut „gidNumber“: %s"
@@ -4777,27 +4850,27 @@ msgstr "Zkontrolujte prosím správnost zadaného uživatelského jména a hesla
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Účet je uzamčen. Prosím kontaktujte svého správce systémů."
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr "V HTTP hlavičce „%s“ nebyla nalezena žádná hodnota"
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr "Uživatel z hlavičky „%s“ se nepodařilo v LDAP najít"
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr "Přihlášení účtem uživatele „%s“ vyvolalo chybu: %s"
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr "CAS uživatele z hlavičky „%s“ se nepodařilo v LDAP najít"
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -5002,11 +5075,15 @@ msgstr "po migraci"
 msgid "Close"
 msgstr "Zavřít"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "Dokud to nebude opraveno, FusionDirectory NEbude fungovat."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory bude fungovat i tak."
 
diff --git a/locale/de/fusiondirectory.po b/locale/de/fusiondirectory.po
index 2efd63208e085fd886121483afda62adeab4fcc4..0f6d324ed47fa66448b6c862b5443e6bfb49db44 100644
--- a/locale/de/fusiondirectory.po
+++ b/locale/de/fusiondirectory.po
@@ -4,17 +4,17 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
-# Ettore Atalan <atalanttore@googlemail.com>, 2018
+# Ettore Atalan <atalanttore@googlemail.com>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: German (https://www.transifex.com/fusiondirectory/teams/12202/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -40,9 +40,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fehler"
 
@@ -88,8 +88,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP-Fehler"
 
@@ -142,61 +142,62 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Datei"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Zeile"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "PHP Fehler"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "Klasse"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "Funktion"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statisch"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "Methode"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Ablaufverfolgung"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Typ"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumente"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "Der PHP-Interpreter meldete einen oder mehrere Fehler beim Erzeugen dieser "
 "Seite!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Bugreport an das FusionDirectory Team senden"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Fehlerbericht senden"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Zeige/Verstecke Informationen"
 
@@ -352,9 +353,7 @@ msgstr "Name der Vorlage"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Interner Fehler"
 
@@ -491,11 +490,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "Der LDAP-Server meldete: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Warnung"
@@ -670,12 +669,12 @@ msgstr "Kennung"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Berechtigung"
@@ -896,7 +895,7 @@ msgstr "Der Wert für '%s' ist zu groß!"
 #: include/class_msgPool.inc:364
 #, php-format
 msgid "'%s' must be smaller than %s!"
-msgstr "'%s' muß kleiner sein als %s!"
+msgstr "'%s' muss kleiner sein als %s!"
 
 #: include/class_msgPool.inc:378
 #, php-format
@@ -906,7 +905,7 @@ msgstr "Der Wert für '%s' ist zu kein!"
 #: include/class_msgPool.inc:380
 #, php-format
 msgid "'%s' must be %d or above!"
-msgstr "'%s' muß größer oder gleich %d sein!"
+msgstr "'%s' muss größer oder gleich %d sein!"
 
 #: include/class_msgPool.inc:393
 #, php-format
@@ -950,7 +949,7 @@ msgstr "'%s' sind nicht erlaubt!"
 #: include/class_msgPool.inc:471
 #, php-format
 msgid "Missing %s PHP extension!"
-msgstr "Fehlenden %s PHP-Erweiterung!"
+msgstr "Fehlende %s PHP-Erweiterung!"
 
 #: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
 #: setup/setup_migrate_accounts.tpl.c:32
@@ -959,8 +958,8 @@ msgstr "Fehlenden %s PHP-Erweiterung!"
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1069,7 +1068,9 @@ msgid "Remove %s settings"
 msgstr "%s Einstellungen entfernen"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1309,6 +1310,7 @@ msgstr "Bitte wählen Sie die gewünschten Einträge"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Name"
@@ -1343,8 +1345,8 @@ msgid "Restart service"
 msgstr "Dienst neustarten"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Basis"
 
@@ -1356,31 +1358,31 @@ msgstr "Objektbasis"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr "Fehler, falsches Datum: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Stunden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minuten"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Sekunden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Datum"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Zeit"
 
@@ -1664,7 +1666,7 @@ msgid "days"
 msgstr "Tage"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1717,23 +1719,23 @@ msgstr "Filter Fehler"
 msgid "The filter is incomplete!"
 msgstr "Der Filter ist unvollständig!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Berechtigungsfehler"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s zu erstellen."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s wiederherzustellen."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1745,7 +1747,7 @@ msgstr "KEIN LABEL"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Anlegen"
 
@@ -1779,13 +1781,6 @@ msgstr "Unbekannter Eintrag '%s'!"
 msgid "All users"
 msgstr "Alle Benutzer"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Der angeforderte Kanal existiert nicht! Bitte benachrichtigen Sie Ihren "
-"Administrator."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Leistungswarnung"
@@ -1890,7 +1885,7 @@ msgstr "Wiederherstellen"
 
 #: include/class_SnapshotDialogs.inc:257
 msgid "Restoring snapshots"
-msgstr ""
+msgstr "Schnappschüsse wiederherstellen"
 
 #: include/class_SnapshotDialogs.inc:265
 msgid "Snapshots"
@@ -2131,12 +2126,12 @@ msgstr "Aktion ausgelöst"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2500,7 +2495,7 @@ msgstr "Benutzer entfernen"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Benutzer"
 
@@ -3266,7 +3261,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:321
 msgid "Postal address pattern"
-msgstr ""
+msgstr "Postalisches Adressmuster"
 
 #: plugins/config/class_configInLdap.inc:321
 msgid ""
@@ -3364,7 +3359,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:385
 msgid "Group or role"
-msgstr ""
+msgstr "Gruppe oder Rolle"
 
 #: plugins/config/class_configInLdap.inc:390
 msgid "Plugin to blacklist"
@@ -3483,11 +3478,11 @@ msgstr "Passwörter"
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
 msgid "Statistics about passwords"
-msgstr ""
+msgstr "Statistik über Passwörter"
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
 msgid "Passwords statistics"
-msgstr ""
+msgstr "Passwörterstatistik"
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
 #, php-format
@@ -3526,6 +3521,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Kennung"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Abonnementstyp"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Startdatum"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Enddatum"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importieren"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Gruppen und Rollen des Benutzers bearbeiten"
@@ -3841,82 +3948,82 @@ msgstr "Willkommen im FusionDirectory Einrichtungsassistent"
 msgid "The welcome message"
 msgstr "Die Willkommensnachricht"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr "LDAP-Verbindung"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Name des Standortes"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "Verbindungs-URI"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "TLS-Verbindung"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "Die LDAP-Verzeichnisbasis"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Authentisierung"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "Administrator-DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Administrator-Passwort:"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Momentaner Status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "LDAP-Einrichtung"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Einrichten der LDAP-Verbindung"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3924,53 +4031,51 @@ msgstr ""
 "Dieser Dialog leistet die grundlegende Konfiguration der LDAP-Konnektivität "
 "für FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonyme Anmeldung an server '%s' ist fehlgeschlagen!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Verbindung als Benutzer '%s' ist fehlgeschlagen!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Wiederholen"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Verbindung als anonymer Benutzer zu Server '%s' war erfolgreich."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Aktualisieren"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Bitte geben Sie Ihren Benutzer und das zugehörige Passwort ein!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Verbindung als Benutzer '%s' zu Server '%s' war erfolgreich!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "PHP Modul- und Erweiterungsprüfung"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4084,27 +4189,12 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory benötigt diese Erweiterung um Snapshots zu verwalten."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals ist ein PHP-Mechanismus, welcher alle globalen Variablen "
-"für Skripte direkt zugänglich macht. Dies kann ein Sicherheitsrisiko sein."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Suchen Sie nach 'register_globals' in Ihrer php.ini und setzen Sie es auf "
-"'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP verwendet diese Einstellungen für den Garbage Collector, um alte "
 "Sessions zu entfernen."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4113,7 +4203,7 @@ msgstr ""
 " Sitzung und den zugehörigen Cookie verlieren, bevor diese tatsächlich ihre "
 "Gültigkeit verlieren."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4121,12 +4211,12 @@ msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'session.gc_maxlifetime' und setzen Sie es "
 "auf 84600 oder höher."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Aus"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4134,13 +4224,13 @@ msgstr ""
 "Um FusionDirectory ohne Probleme benutzen zu können, muss die Option "
 "session.auto_start in Ihrer php.ini auf 'Off' gestellt werden."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'session.auto_start' und setzen Sie es auf "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4149,14 +4239,14 @@ msgstr ""
 "unter dieses Limit gesetzt, kann dies unreproduzierbare Fehler hervorrufen. "
 "Erhöhen Sie dies für größere Installationen."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Suchen nach 'memory_limit' in Ihrer php.ini und setzen auf '128M' oder "
 "höher."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4164,17 +4254,17 @@ msgstr ""
 "Diese Einstellung beeinflusst die Verarbeitung der Ausgabe. Stellen Sie "
 "diese auf 'off', um die Leistung zu erhöhen."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'implicit_flush' und setzen Sie es auf "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Die Ausführungszeit sollte mindestens 30 Sekunden betragen."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4182,7 +4272,7 @@ msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'max_execution_time' und setzen Sie es auf "
 "'30' oder höher."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4191,124 +4281,110 @@ msgstr ""
 "setzen. PHP wird in dieser Einstellung keine Informationen über Ihren "
 "laufenden Server senden."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'expose_php' und setzen Sie es auf 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Erhöhen Sie die Leistung des Servers, indem sie magic_quotes_gpc auf 'off' "
-"stellen."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Suchen Sie in Ihrer php.ini nach 'zend.ze1_compatibility_mode' und setzen "
-"Sie es auf 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrieren"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "LDAP-Inspektion"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analysieren Sie Ihr aktuelles LDAP nach Kompatibilität mit FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Prüfe Objekt-Klassen des Wurzelobjektes"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Prüfe Berechtigungen auf die LDAP-Datenbank"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Prüfe auf unsichtbare Benutzer"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Prüfe auf Superadministrator"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Prüfe auf Benutzer ausserhalb des Benutzerbaums"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Prüfe auf Gruppen ausserhalb des Gruppenbaums"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Prüfe auf unsichtbare Abteilungen"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Prüfe auf doppelte UID Nummern"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "LDAP-Abfrage fehlgeschlagen."
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Fehlende FusionDirectory Objektklasse '%s'!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Bitte überprüfen Sie Ihre Installation."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4317,17 +4393,17 @@ msgstr ""
 "Die strukturelle Objekt-Typ Ihres Wurzel-Objektes kann nicht konvertiert "
 "werden. Bitte fügen Sie die Objekt-Klasse '%s' manuell hinzu."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4336,103 +4412,103 @@ msgstr ""
 "%s Benutzer(innen) gefunden, die nicht in FusionDirectory sichtbar sein "
 "werden oder unvollständig sind."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Benutzermigration"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Migrationsfehler"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "Kann Eintrag \"%s\" nicht migrieren:"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Gruppen"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Rollen"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Es gibt kein FusionDirectory Administratorkonto innerhalb Ihres LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Gibt alle Rechte auf alle Objekte"
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Einige Standard-ACL-Rollen fehlen"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "Kann ACL-Rolle \"%s\" nicht hinzufügen:"
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Verschiebe Benutzer in den konfigurierten Benutzerbaum"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "Eintrag wird verschoben von"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "an"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Die folgenden Referenzen werden aktualisiert"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 "Es wurden %s Gruppen ausserhalb des konfigurierten Baums '%s' gefunden."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Gruppen in den konfigurierten Gruppenbaum verschieben"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Fand %s Abteilungen, die nicht in FusionDirectory sichtbar sein werden."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4679,27 +4755,27 @@ msgstr "Bitte überprüfen Sie die Kombination von Benutzernamen und Passwort."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Das Konto ist gesperrt. Bitte benachrichtigen Sie den Administrator!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4885,11 +4961,15 @@ msgstr "Nach der Migration"
 msgid "Close"
 msgstr "Schliessen"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory wird NICHT ohne entsprechende Änderung laufen."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory wird ohne eine entsprechende Änderung laufen."
 
diff --git a/locale/el_GR/fusiondirectory.po b/locale/el_GR/fusiondirectory.po
index 09f8e611b9c21f6acd074f9e7a17fda7d0bf450b..46e0595da3719c9fffc08666a33268c1aa925a45 100644
--- a/locale/el_GR/fusiondirectory.po
+++ b/locale/el_GR/fusiondirectory.po
@@ -4,16 +4,17 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
+# LOUKAS SKOUROLIAKOS, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: LOUKAS SKOUROLIAKOS, 2021\n"
 "Language-Team: Greek (Greece) (https://www.transifex.com/fusiondirectory/teams/12202/el_GR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,9 +40,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Σφάλμα"
 
@@ -88,8 +89,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Σφάλμα LDAP"
 
@@ -140,59 +141,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Αρχείο"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Γραμμή"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "κλάση"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "συνάρτηση"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "στατικό"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "μέθοδος"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Ανίχνευση"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Τύπος"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Ορίσματα"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Αποστολή αναφοράς σφάλματος"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Εναλλαγή πληροφοριών"
 
@@ -348,9 +350,7 @@ msgstr "Όνομα προτύπου"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Εσωτερικό σφάλμα"
 
@@ -483,11 +483,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "Ο διακομιστής LDAP επίστρεψε: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Προειδοποίηση"
@@ -658,12 +658,12 @@ msgstr "Σύνδεση"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Άδεια"
@@ -946,8 +946,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Ακύρωση"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1048,7 +1048,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1283,6 +1285,7 @@ msgstr "Παρακαλώ επιλέξτε τις επιθυμητές εγγρα
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Όνομα"
@@ -1317,8 +1320,8 @@ msgid "Restart service"
 msgstr "Επανεκκίνηση υπηρεσίας"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Βάση"
 
@@ -1330,33 +1333,33 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Ώρες"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Λεπτά"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Ημερομηνία"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
-msgstr ""
+msgstr "Χρόνος"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
@@ -1638,7 +1641,7 @@ msgid "days"
 msgstr "ημέρες"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1691,23 +1694,23 @@ msgstr "Σφάλμα φίλτρου"
 msgid "The filter is incomplete!"
 msgstr "Το φίλτρο δεν είναι ολοκληρωμένο! "
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Σφάλμα δικαιωμάτων"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Δεν επιτρέπεται να δημιουργήσετε ένα στιγμιότυπο για  %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Δεν επιτρέπεται να επαναφέρετε ένα στιγμιότυπο για  %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1719,7 +1722,7 @@ msgstr "ΧΩΡΙΣ ΕΤΙΚΕΤΑ"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Δημιουργία"
 
@@ -1753,11 +1756,6 @@ msgstr ""
 msgid "All users"
 msgstr "Όλοι οι χρήστες"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2101,12 +2099,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2472,7 +2470,7 @@ msgstr "Αφαίρεση χρήστη"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Χρήστες"
 
@@ -3477,6 +3475,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Id"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Τύπος συνδρομής"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Ημερομηνία Εκκίνησης "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Εισαγωγή"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Επεξεργασία ομάδων και ρόλων του χρήστη"
@@ -3797,134 +3907,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Κατάσταση"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Προσπάθεια ξανά"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Ανανέωση"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Παρακαλώ επαληθεύστε το όνομα χρήστη και τον κωδικό σας!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4027,314 +4135,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Μετακίνηση"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Έλεγχος έγκρισης για βάση δεδομένων  LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "'Έλεγχος για αόρατους χρήστες"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Έλεγχος για υπερδιαχειριστές "
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr "Έλεγχος για προεπιλεγμένους ρόλους και ομάδες στην ACL"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Έλεγχος για χρήστες εκτός της δομής δεδομένων "
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Έλεγχος για ομάδες εκτός της δομής δεδομένων"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Ομάδες"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Ρόλοι"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4564,27 +4651,27 @@ msgstr "Παρακαλώ ελέγξτε το συνδυασμό όνομα χρ
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4766,11 +4853,15 @@ msgstr "Ύστερα από την μετάβαση"
 msgid "Close"
 msgstr "Κλείσιμο"
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/es/fusiondirectory.po b/locale/es/fusiondirectory.po
index 655baa40aa1e3f0fca960660ccb3b3d4fc13403f..576973765c4c580895157973e4fa66df1c9ed440 100644
--- a/locale/es/fusiondirectory.po
+++ b/locale/es/fusiondirectory.po
@@ -4,22 +4,22 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Spanish (https://www.transifex.com/fusiondirectory/teams/12202/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Error LDAP"
 
@@ -141,60 +141,61 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Linea"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Error PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "clase"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "función"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "estático"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traza"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "¡La generación de esta página ha provocado errores en el interprete PHP!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar informe de errores al equipo de FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Enviar informe de errores"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Modificar información"
 
@@ -350,9 +351,7 @@ msgstr "Nombre de la plantilla"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "error interno"
 
@@ -490,11 +489,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "El servidor LDAP devolvio: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Aviso"
@@ -667,12 +666,12 @@ msgstr "Inicio"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Permisos"
@@ -956,8 +955,8 @@ msgstr "¡Extensión PHP %s no encontrada!"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1066,7 +1065,9 @@ msgid "Remove %s settings"
 msgstr "Eliminar las caracteristicas %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1305,6 +1306,7 @@ msgstr "Por favor seleccione las entradas que desee"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nombre"
@@ -1339,8 +1341,8 @@ msgid "Restart service"
 msgstr "Reiniciar servicio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1352,31 +1354,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Fecha"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Tiempo"
 
@@ -1660,7 +1662,7 @@ msgid "days"
 msgstr "días"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1713,23 +1715,23 @@ msgstr "Error del filtro"
 msgid "The filter is incomplete!"
 msgstr "¡El filtro está incompleto!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Error de permisos"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "No tiene permisos para crear una instantanea para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "No tiene permisos para recuperar una instantanea para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1741,7 +1743,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Crear"
 
@@ -1775,12 +1777,6 @@ msgstr "¡Entrada desconocida '%s'!"
 msgid "All users"
 msgstr "Todos los usuarios"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"¡El canal requerido no existe!. Por favor  contacte con su Administrador."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Aviso e rendimiento"
@@ -2124,12 +2120,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2493,7 +2489,7 @@ msgstr "Eliminar usuario"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Usuarios"
 
@@ -3483,6 +3479,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importar"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3798,82 +3906,82 @@ msgstr "Bienvenido al asistente de configuración de FusionDirectory"
 msgid "The welcome message"
 msgstr "Mensaje de Bienvenida"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nombre de la localización"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI de conexión"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Conexión TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autenticación"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN del administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Contraseña de administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Estado"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Estado actual"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configuración LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Conectividad LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3881,53 +3989,51 @@ msgstr ""
 "Este dialogo realiza la configuración básica de la conectividad LDAP para "
 "FusionDirectory"
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La conexión anónima al servidor '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "¡La conexión como usuario '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Reintento"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La conexión anónima al servidor '%s' ha tenido exito."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Refresco"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "¡Por Favor especifique un usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡La conexión como usuario '%s' al servidor '%s' ha tenido exito!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Comprobaciones de módulos y extensiones PHP"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4037,26 +4143,12 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar capturas."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"registr_globals es un mecanismo de PHP para registrar todas las variables "
-"globales de tal manera que sean accesible desde scripts sin que cambien su "
-"ámbito. Esto puede ser un problema de seguridad."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr "Busque 'register_globals' en su php.ini y modifíquelo por 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP usa este valor en el recolector de basura para eliminar las sesiones "
 "antiguas."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4064,40 +4156,40 @@ msgstr ""
 "Ajustando este valor a un día impedirá la perdida de sesiones y cookies "
 "antes de que realmente se desconecte por tiempo."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 "Busque 'sessio.gc_maxlifetime' en su php.ini y modifíquelo a 86400 o mayor."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Busque 'session.auto_start' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4105,22 +4197,22 @@ msgstr ""
 "Esta opción está relacionada con el manejo de salida de PHP. Desactive esta "
 "opción poniéndola en off para mejorar el rendimiento."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Busque 'implicit_flush' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debe ser de al menos 30 segundos."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Busque 'max_execution_time' en su php.ini y modifíquelo a '30' o mayor."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4129,120 +4221,108 @@ msgstr ""
 "'off'. PHP no debería enviar ningún tipo de información sobre el servidor "
 "que esta ejecutando la aplicación."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busque 'expose_php' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Aumente el rendimiento de su servidor modificando 'magic_quotes_gpc' a 'off'"
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Busque 'zend.ze1_compatibility_mode' en su php.ini y modifíquelo a 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Inspección LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analizar el arbol LDAP actual por compatibilidad con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Analizando objetos en la entrada raíz"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Comprobando permisos en la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Comprobando usuarios invisibles"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Comprobando súper administrador"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Comprobando cuentas fuera del árbol de usuarios"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Comprobando grupos fuera del árbol de grupos"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Comprobando departamentos invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Comprobando números UID duplicados"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "La consulta LDAP ha fallado"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Objeto '%s' de FusionDirectory faltante!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Por favor compruebe su instalación"
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4251,17 +4331,17 @@ msgstr ""
 "No se puede un tipo de objeto estructural en su entrada raíz. Por favor "
 "intente añadir la clase de objeto '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4270,102 +4350,102 @@ msgstr ""
 "Se encontraron %s usuarios que no serán visibles en FusionDirectory o están "
 "incompletos."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Error de migración"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Roles"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "No hay una cuenta de administrador FusionDirectory dentro de su LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios al árbol de usuarios configurado"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "a"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias se actualizaran"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Encontrados '%s' grupos fuera del árbol configurado '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Se encontraron %s departamentos que no serán visibles en FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4607,27 +4687,27 @@ msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 "Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4682,6 +4762,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4697,6 +4778,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4711,6 +4793,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4721,6 +4804,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4732,18 +4816,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4758,6 +4845,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4813,11 +4901,15 @@ msgstr "Despues de migrar"
 msgid "Close"
 msgstr "Cerrar"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory NO correrá si no se arregla esto."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory correrá aun si no se arregla esto."
 
diff --git a/locale/es_CO/fusiondirectory.po b/locale/es_CO/fusiondirectory.po
index 394cf2c211fc1219b6dd105fa54c63be4131c0ad..ee5b253b272b53447790d7950176499b6aadd9e8 100644
--- a/locale/es_CO/fusiondirectory.po
+++ b/locale/es_CO/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Spanish (Colombia) (https://www.transifex.com/fusiondirectory/teams/12202/es_CO/)\n"
@@ -19,7 +19,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es_CO\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Error LDAP"
 
@@ -141,59 +141,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Line"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Error PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "clase"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "función"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "static"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "¡Al generar esta página se han generado errores en el intérprete PHP!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar un reporte de fallo al equipo de FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Enviar reporte de errores"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Alternar información"
 
@@ -349,9 +350,7 @@ msgstr "Nombre de la plantilla"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Error Interno"
 
@@ -488,11 +487,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "El servidor LDAP respondió: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Precacuión"
@@ -671,12 +670,12 @@ msgstr "Usuario"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Permisos"
@@ -959,8 +958,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1069,7 +1068,9 @@ msgid "Remove %s settings"
 msgstr "Borrar %s configuraciones "
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1306,6 +1307,7 @@ msgstr "Por favor elija las entradas que desea"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nombre"
@@ -1340,8 +1342,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1353,31 +1355,31 @@ msgstr "Objeto base"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1663,7 +1665,7 @@ msgid "days"
 msgstr "días"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1716,23 +1718,23 @@ msgstr "Error al filtrar"
 msgid "The filter is incomplete!"
 msgstr "¡El filtro está incompleto!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Error de permisos"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Usted no tiene permitido crear un 'snashot' para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Usted no está autorizado para restaurar un 'snapshot' para %s"
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1744,7 +1746,7 @@ msgstr "SIN ETIQUETA"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Crear"
 
@@ -1780,11 +1782,6 @@ msgstr "¡Entrada desconocida '%s'!"
 msgid "All users"
 msgstr "Todos los usuarios"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr "El canal requerido no existe. Por favor contacte a su administrador."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Advertencia de Rendmiento"
@@ -2128,12 +2125,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2500,7 +2497,7 @@ msgstr "Borrar usuario"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Usuarios"
 
@@ -3540,6 +3537,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Editar grupos y roles del usuario"
@@ -3861,45 +3970,45 @@ msgstr "Bienvenido al asistente de configuración de FusionDirectory."
 msgid "The welcome message"
 msgstr "Mensaje de bienvenida"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Ubicación"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 "Nombre de esta conexión para mostrar en la lista de servidores de LDAP."
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI de conexión"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr "URI para contactar al servidor LDAP. Usualmente comienza con ldap://"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Conexión TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr "¿Debería usarse TLS para conectarse a este servidor LDAP?"
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "El directorio base de LDAP"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autenticación"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
@@ -3907,41 +4016,41 @@ msgstr ""
 "DN de la cuenta admin para conectarse a LDAP. La base se añade "
 "automáticamente."
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN para el Administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Contraseña de Administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Contraseña para la cuenta de Administrador que será vinculada a LDAP."
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Estado"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Estado Actual"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 "Resultado del último intento al revisar la vinculación con LDAP y los "
 "esquemas básicos."
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configuración de LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Configuración de conexión LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3949,53 +4058,51 @@ msgstr ""
 "Este mensaje muestra una configuración básica de la conectividad de LDAP con"
 " FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La vinculación anónima al servidor %s ha fallado!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Falló la vinculación con el usuario '%s'"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "¡La vinculación anónima al servidor %s ha funcionado!"
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "¡Por favor especifique su usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡Ha funcionado la vinculación del usuario '%s' al servidor '%s'!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Verificación de extensiones y módulos PHP "
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4105,27 +4212,12 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar snapshots."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals  es un mecanismo PHP para registrar todas las variables "
-"globales y que puedan accederse mediante scripts sin cambiar el foco. Esto "
-"puede ser un riesgo de seguridad."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Buscar por 'register_globals' en su archivo php.ini y cámbielo a 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP utiliza este valor para que el colector de basura borre las sesiones "
 "obsoletas."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4133,7 +4225,7 @@ msgstr ""
 "Configurando este valor a 'un día' prevendrá perder sesiones y cookies antes"
 " de que realmente expiren."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4141,12 +4233,12 @@ msgstr ""
 "Buscar por  'session.gc_maxlifetime' en su archivo php.ini y configurarlo a "
 "86400 o superior."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Apagado"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4154,12 +4246,12 @@ msgstr ""
 "Para utilizar FusionDirectory sin problemas la opción session.auto_start  en"
 " su archivo php.ini debe estar configurada en 'Off'."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Buscar  'session.auto_start'  en su archivo php.ini y configurarlo en 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4168,14 +4260,14 @@ msgstr ""
 "que esto ¡puede causar errores que no son reproducibles! aumente la memoria "
 "para instalaciones grandes."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Buscar 'memory_limit' en su archivo php.ini y configurarlo con '128MB' o "
 "superior."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4183,16 +4275,16 @@ msgstr ""
 "Esta opción afecta el manejo de la salida PHP. Deshabilitar esta opción con "
 "'off' mejorará el rendimiento."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Busca 'omplicit_flush' en su archivo php.ini y lo establece como 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debería ser al menos de 30 segundos."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4200,7 +4292,7 @@ msgstr ""
 "Busca 'max_execution_time' en su archivo php.ini y lo establece como '30' o "
 "superior."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4208,41 +4300,27 @@ msgstr ""
 "Incrementa la seguridad del servidor estableciendo 'expose_php' como 'Off'. "
 "PHP no enviará información de su  servidor en este caso."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busca 'expose_php' en su archivo php.ini y lo establece como 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Incrementa el rendimiento del servidor estableciendo 'magic_quotes_gpc' como"
-" 'Off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Busca  'zend.ze1_compatibility_mode' en su archivo php.ini y lo establece "
-"como 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Revisión de LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Se va a analizar la compatibilidad entre LDAP y FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Otorgar todos los permisos en usuarios que pertenezcan a dicha rama."
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4250,84 +4328,84 @@ msgstr ""
 "Permitir a los usuarios editar su propia información (Pestaña de Inicio y "
 "posix, usar únicamente en base)"
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permitir a los usuarios editar su propia contraseña (Solo en las pestañas "
 "POSIX e Inicio)"
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Revisar las clases del objeto 'root'"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Revisar los permisos para la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Revisar si existen Divisiones ocultas"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Falló"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "¡No se encuentra el objeto clase '%s' de FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Por favor verifique su instalación."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4336,21 +4414,21 @@ msgstr ""
 "No es posible utilizar el tipo de objeto estructurado de su objeto 'root'. "
 "Por favor intente agregar el objeto clase '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 "El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
 "LDAP."
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 "El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
 "ldap."
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4359,102 +4437,102 @@ msgstr ""
 "Se encontraron %s usuario(s) que no estarán visibles en FusionDirectory o "
 "que están incompletos."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Migración de Usuario"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Error de migración"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "No se puede migrar la entrada \"%s\":"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "No hay una cuenta de administrador de FusionDirectory en su LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Dar permisos en todos los objetos."
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "Los roles ACL por defecto no han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "No se encuentran algunos de los roles ACL por defecto"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "Los roles ACL por defecto han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "No es posible agregar el rol ACL \"%s\":"
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr "Se encontraron %s usuario(s) fuera del árbol configurado \"%s\"."
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios dentro del árbol configurado"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr "¡No se pueden mover entradas en la División seleccionada!"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "La entrada será movida desde "
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "a"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias serán actualizadas"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Se encontraron %s grupos fuera del árbol configurado '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Mover grupos dentro del árbol configurado"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Se encontraron %s Division(es) que no serán visibles en FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr "Migración de Divisiones."
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4708,27 +4786,27 @@ msgstr "Por favor verifique su combinación de usuario/contraseña"
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Cuenta bloqueada. ¡Por favor contacte a su administrador!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4785,6 +4863,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4800,6 +4879,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4814,6 +4894,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4824,6 +4905,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4835,18 +4917,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4861,6 +4946,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4918,11 +5004,15 @@ msgstr "Luego de la migración"
 msgid "Close"
 msgstr "Cerrar"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory no se ejecutará sin arreglar esto."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory intentará ejecutarse sin arreglar esto."
 
diff --git a/locale/es_VE/fusiondirectory.po b/locale/es_VE/fusiondirectory.po
index bb5738522c3203f87f788df9a96f2c9a6084cbb3..6a0b96dc7cf8eec2dfb0a41efec8566861a84969 100644
--- a/locale/es_VE/fusiondirectory.po
+++ b/locale/es_VE/fusiondirectory.po
@@ -4,22 +4,22 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Spanish (Venezuela) (https://www.transifex.com/fusiondirectory/teams/12202/es_VE/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es_VE\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Error LDAP"
 
@@ -141,60 +141,61 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Linea"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Error PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "clase"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "función"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "estático"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traza"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "¡La generación de esta página ha provocado errores en el interprete PHP!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar informe de errores al equipo de FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Enviar informe de errores"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Modificar información"
 
@@ -350,9 +351,7 @@ msgstr "Nombre de la plantilla"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "error interno"
 
@@ -490,11 +489,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "El servidor LDAP devolvio: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Aviso"
@@ -667,12 +666,12 @@ msgstr "Inicio"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Permisos"
@@ -956,8 +955,8 @@ msgstr "¡Extensión PHP %s no encontrada!"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1066,7 +1065,9 @@ msgid "Remove %s settings"
 msgstr "Eliminar las caracteristicas %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1305,6 +1306,7 @@ msgstr "Por favor seleccione las entradas que desee"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nombre"
@@ -1339,8 +1341,8 @@ msgid "Restart service"
 msgstr "Reiniciar servicio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1352,31 +1354,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Fecha"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Tiempo"
 
@@ -1660,7 +1662,7 @@ msgid "days"
 msgstr "días"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1713,23 +1715,23 @@ msgstr "Error del filtro"
 msgid "The filter is incomplete!"
 msgstr "¡El filtro está incompleto!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Error de permisos"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "No tiene permisos para crear una instantanea para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "No tiene permisos para recuperar una instantanea para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1741,7 +1743,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Crear"
 
@@ -1775,12 +1777,6 @@ msgstr "¡Entrada desconocida '%s'!"
 msgid "All users"
 msgstr "Todos los usuarios"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"¡El canal requerido no existe!. Por favor  contacte con su Administrador."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Aviso e rendimiento"
@@ -2124,12 +2120,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2493,7 +2489,7 @@ msgstr "Eliminar usuario"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Usuarios"
 
@@ -3483,6 +3479,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importar"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3798,82 +3906,82 @@ msgstr "Bienvenido al asistente de configuración de FusionDirectory"
 msgid "The welcome message"
 msgstr "Mensaje de Bienvenida"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nombre de la localización"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI de conexión"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Conexión TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autenticación"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN del administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Contraseña de administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Estado"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Estado actual"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configuración LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Conectividad LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3881,53 +3989,51 @@ msgstr ""
 "Este dialogo realiza la configuración básica de la conectividad LDAP para "
 "FusionDirectory"
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La conexión anónima al servidor '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "¡La conexión como usuario '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Reintento"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La conexión anónima al servidor '%s' ha tenido exito."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Refresco"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "¡Por Favor especifique un usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡La conexión como usuario '%s' al servidor '%s' ha tenido exito!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Comprobaciones de módulos y extensiones PHP"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4037,26 +4143,12 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar capturas."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"registr_globals es un mecanismo de PHP para registrar todas las variables "
-"globales de tal manera que sean accesible desde scripts sin que cambien su "
-"ámbito. Esto puede ser un problema de seguridad."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr "Busque 'register_globals' en su php.ini y modifíquelo por 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP usa este valor en el recolector de basura para eliminar las sesiones "
 "antiguas."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4064,19 +4156,19 @@ msgstr ""
 "Ajustando este valor a un día impedirá la perdida de sesiones y cookies "
 "antes de que realmente se desconecte por tiempo."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 "Busque 'sessio.gc_maxlifetime' en su php.ini y modifíquelo a 86400 o mayor."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4084,22 +4176,22 @@ msgstr ""
 "Para poder usar FusionDirectory sin problemas, la opción session.auto_start "
 "debe estar configurada en 'Off' en su php.ini."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Busque 'session.auto_start' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4107,22 +4199,22 @@ msgstr ""
 "Esta opción está relacionada con el manejo de salida de PHP. Desactive esta "
 "opción poniéndola en off para mejorar el rendimiento."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Busque 'implicit_flush' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debe ser de al menos 30 segundos."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Busque 'max_execution_time' en su php.ini y modifíquelo a '30' o mayor."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4131,120 +4223,108 @@ msgstr ""
 "'off'. PHP no debería enviar ningún tipo de información sobre el servidor "
 "que esta ejecutando la aplicación."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busque 'expose_php' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Aumente el rendimiento de su servidor modificando 'magic_quotes_gpc' a 'off'"
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Busque 'zend.ze1_compatibility_mode' en su php.ini y modifíquelo a 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Inspección LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analizar el arbol LDAP actual por compatibilidad con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Analizando objetos en la entrada raíz"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Comprobando permisos en la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Comprobando usuarios invisibles"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Comprobando súper administrador"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Comprobando cuentas fuera del árbol de usuarios"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Comprobando grupos fuera del árbol de grupos"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Comprobando departamentos invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Comprobando números UID duplicados"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "La consulta LDAP ha fallado"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Objeto '%s' de FusionDirectory faltante!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Por favor compruebe su instalación"
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4253,17 +4333,17 @@ msgstr ""
 "No se puede un tipo de objeto estructural en su entrada raíz. Por favor "
 "intente añadir la clase de objeto '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4272,102 +4352,102 @@ msgstr ""
 "Se encontraron %s usuarios que no serán visibles en FusionDirectory o están "
 "incompletos."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Error de migración"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Roles"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "No hay una cuenta de administrador FusionDirectory dentro de su LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios al árbol de usuarios configurado"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "a"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias se actualizaran"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Encontrados '%s' grupos fuera del árbol configurado '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Se encontraron %s departamentos que no serán visibles en FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4609,27 +4689,27 @@ msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 "Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4684,6 +4764,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4699,6 +4780,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4713,6 +4795,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4723,6 +4806,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4734,18 +4818,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4760,6 +4847,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4815,11 +4903,15 @@ msgstr "Despues de migrar"
 msgid "Close"
 msgstr "Cerrar"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory NO correrá si no se arregla esto."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory correrá aun si no se arregla esto."
 
diff --git a/locale/fa_IR/fusiondirectory.po b/locale/fa_IR/fusiondirectory.po
index dcde0afc301a9e51fcb910ae399ddc87c1fd96e7..c816ed20ed7ab51df7d7dfba7dcc7c6fbd3067ef 100644
--- a/locale/fa_IR/fusiondirectory.po
+++ b/locale/fa_IR/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2017\n"
 "Language-Team: Persian (Iran) (https://www.transifex.com/fusiondirectory/teams/12202/fa_IR/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "خطا"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "خطای LDAP"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "خطای داخلی"
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "جواز"
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "خطا"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4526,27 +4612,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4728,11 +4814,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/fi_FI/fusiondirectory.po b/locale/fi_FI/fusiondirectory.po
index 33adce2c78628bee55dd6976054d690ad36c0a2a..0f1a5db0d7bc5da3aff7dc36c3b04455d3738c6b 100644
--- a/locale/fi_FI/fusiondirectory.po
+++ b/locale/fi_FI/fusiondirectory.po
@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Finnish (Finland) (https://www.transifex.com/fusiondirectory/teams/12202/fi_FI/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Virhe"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP virhe"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tyyppi"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Virhe"
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Varoitus"
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Lupa"
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Peruta"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nimi"
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Aika"
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Luo"
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Alkupäivämäärä"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Loppupäivämäärä"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4727,11 +4813,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/fr/fusiondirectory.po b/locale/fr/fusiondirectory.po
index 7e44beac455f2286ee9eaa9f3b83d2012d516525..ecde72526738024959fef4fceebbe1786a6fe944 100644
--- a/locale/fr/fusiondirectory.po
+++ b/locale/fr/fusiondirectory.po
@@ -5,23 +5,23 @@
 # 
 # Translators:
 # MCMic, 2018
-# fusiondirectory <contact@fusiondirectory.org>, 2018
-# Benoit Mortier <benoit.mortier@opensides.be>, 2019
+# fusiondirectory <contact@fusiondirectory.org>, 2021
+# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2022
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Benoit Mortier <benoit.mortier@opensides.be>, 2019\n"
+"Last-Translator: Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2022\n"
 "Language-Team: French (https://www.transifex.com/fusiondirectory/teams/12202/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -41,9 +41,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erreur"
 
@@ -91,8 +91,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Erreur LDAP"
 
@@ -151,60 +151,61 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Fichier"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Ligne"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Erreur PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "classe"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "fonction"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statique"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "méthode"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Type"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Arguments"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "La génération de cette page a causé des erreurs dans l'interpréteur PHP !"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Envoyer le rapport de bugs à l'équipe FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Envoyer le rapport de bug"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Afficher/Cacher l'information"
 
@@ -362,9 +363,7 @@ msgstr "Nom du modèle"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Erreur interne"
 
@@ -507,11 +506,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "Le serveur LDAP a retourné : %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Avertissement"
@@ -695,12 +694,12 @@ msgstr "Identifiant"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Permissions"
@@ -987,8 +986,8 @@ msgstr "Extension PHP %s manquante !"
 msgid "Cancel"
 msgstr "Annuler"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1099,10 +1098,12 @@ msgid "Remove %s settings"
 msgstr "Retirer les paramètres %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
-"Cliquez sur le bouton 'Éditer' ci-dessous pour changer les informations dans"
-" cette fenêtre"
+"Cliquez sur le bouton \"Modifier\" dans le coin inférieur droit de la page "
+"pour modifier les champs"
 
 #: include/class_msgPool.inc:646
 msgid "January"
@@ -1344,6 +1345,7 @@ msgstr "Veuillez sélectionner les entrées désirées"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nom"
@@ -1378,8 +1380,8 @@ msgid "Restart service"
 msgstr "Redémarrer le service"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1391,31 +1393,31 @@ msgstr "Base de l'objet"
 msgid "Base field value should always be a string"
 msgstr "La valeur de la base doit toujours être une chaîne"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr "Erreur, date incorrecte : %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Heures"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minutes"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Secondes"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Date"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Temps"
 
@@ -1713,7 +1715,7 @@ msgid "days"
 msgstr "jours"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr "Ajouter (dialogue)"
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1766,23 +1768,23 @@ msgstr "Erreur de filtre"
 msgid "The filter is incomplete!"
 msgstr "Le filtre est incomplet !"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Erreur de permissions"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Vous n'êtes pas autorisé à créer un nouvel instantané pour %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Vous n'êtes pas autorisé à restaurer un instantané de %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr "Vous n'êtes pas autorisé à supprimer l'instantané pour %s."
@@ -1794,7 +1796,7 @@ msgstr "PAS DE TITRE"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Créer"
 
@@ -1830,13 +1832,6 @@ msgstr "Entrée inconnue '%s' !"
 msgid "All users"
 msgstr "Tous les utilisateurs"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Le canal demandé n'existe pas ! Veuillez contacter votre administrateur "
-"système."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Avertissement de performance"
@@ -2196,12 +2191,12 @@ msgstr "Action déclenchée"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
-msgstr "Action lancée sans erreur (Le résultat était « %s »)"
+msgid "Action called without error(results were \"%s\")"
+msgstr "Action appelée sans erreur (résultat : \"%s\")"
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr "Action appelée sans erreur (résultat : \"%s\")"
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2569,7 +2564,7 @@ msgstr "Supprimer l'utilisateur"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Utilisateurs"
 
@@ -3647,6 +3642,123 @@ msgstr ""
 "Les statistiques pour le type «%s» n'ont pas pu être calculées en raison de "
 "l'erreur suivante : %s"
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr "Abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr "Information d'abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr "Informations sur votre abonnement FusionDirectory"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr "Texte d'information pour l'abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr "Nom de l'abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Id"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr "Identifiant d'abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Type d'inscription"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr "Contrat"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr "Référence du contrat"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Date de début"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr "Date de début de cet abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Date de fin"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr "Date de fin de cet abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr "Importez votre abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr "Texte d'information pour l'abonnement expiré"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr "Importer l'abonnement"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importer"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+"Vous ne disposez pas d'un abonnement valide pour cette instance de "
+"FusionDirectory. Veuillez visiter %s pour une liste des options disponibles."
+" "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+"Votre abonnement a expiré pour cette instance de FusionDirectory.\n"
+"Veuillez visiter %s pour le renouveler."
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr "Erreur d'importation"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr "Pas de données. Avez-vous oublié de télécharger un fichier ?"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr "Échec de l'analyse du fichier importé"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr "Section \"%s\" manquante dans le fichier importé"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr "Attribut \"%s\" manquant dans le fichier importé"
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Éditer les groupes et rôles de l’utilisateur"
@@ -3971,46 +4083,46 @@ msgstr "Bienvenue dans l'assistant de configuration de FusionDirectory"
 msgid "The welcome message"
 msgstr "Le message d'accueil"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr "Connexion LDAP"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nom de la connexion"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr "Nom de cette connexion à afficher dans la liste des serveurs LDAP"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI de connexion"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 "URI pour contacter le serveur LDAP. Commence habituellement par ldap://"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Connexion TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 "Est-ce que TLS doit être utilisé pour se connecter à ce serveur LDAP ?"
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "La base de l’annuaire LDAP"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Authentification"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
@@ -4018,43 +4130,43 @@ msgstr ""
 "DN du compte admin à utiliser pour l’identification au LDAP. La base y est "
 "automatiquement ajoutée."
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN de l'administrateur"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Mot de passe administrateur"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 "Mot de passe pour le compte administrateur à utiliser pour l’identification "
 "au LDAP"
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Statut"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Statut actuel"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 "Résultat de la dernière tentative de connexion LDAP et vérification des "
 "schémas de base"
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configuration LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Configuration de la connexion LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -4062,39 +4174,39 @@ msgstr ""
 "Cette page permet la configuration de base de l'annuaire LDAP pour "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "La connexion anonyme au serveur '%s' a échoué !"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "La connexion sous l’utilisateur '%s' a échoué !"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Réessayer"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La connexion anonyme au serveur '%s' a réussi."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Rafraîchir"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Veuillez introduire un utilisateur et un mot de passe !"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "La connexion sous l'utilisateur '%s' au serveur '%s' a réussi !"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
@@ -4103,17 +4215,13 @@ msgstr ""
 "%s\n"
 "Schéma \"%s\" : %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Vérification des extensions et modules PHP"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
-msgstr ""
-"Configuration de PHP (<a href=\"?info\" target=\"_blank\">afficher les "
-"informations</a>)"
+msgid "PHP setup configuration"
+msgstr "Configuration de l'installation PHP"
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
@@ -4232,26 +4340,10 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory a besoin de ce module pour gérer les instantanés."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals est un mécanisme PHP pour enregistrer toutes les variables "
-"globales afin que les scripts puissent y accéder sans changer la porté des "
-"variables. Cela peut constituer un risque de sécurité."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Cherchez l'option 'register_globals' dans votre php.ini et mettez la à "
-"'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP utilise cette variable pour effacer des anciennes sessions."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4259,7 +4351,7 @@ msgstr ""
 "Mettre cette valeur à 1 jour permet d'éviter de perde les cookies et les "
 "sessions avant qu'elles ne soient réellement expirées."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4267,12 +4359,12 @@ msgstr ""
 "Cherchez 'session.gc_maxlifetime' dans votre php.ini et mettez le à 86400 ou"
 " plus."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Éteint"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4280,13 +4372,13 @@ msgstr ""
 "Pour pouvoir utiliser FusionDirectory sans problèmes, la variable "
 "session.auto_start doit être à 'Off' dans votre php.ini."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cherchez la variable 'session.auto_start' dans votre php.ini et mettez la à "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4295,14 +4387,14 @@ msgstr ""
 "causera des erreurs imprévisibles, qui ne seront pas reproductibles ! "
 "Augmentez la mémoire pour les installations plus complexes."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Cherchez 'memory_limit' dans votre fichier php.ini votre et mettez le à "
 "'128M' ou plus."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4310,15 +4402,15 @@ msgstr ""
 "Cette option défini la gestion des sorties, mettez cette option à 'Off' pour"
 " améliorer les performances."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Cherchez 'implicit_flush' dans votre php.ini et mettez le à 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Le temps d'exécution doit être au moins de 30 secondes."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4326,7 +4418,7 @@ msgstr ""
 "Chercher l'option 'max_execution_time' dans votre php.ini et mettez la à "
 "'30' ou plus."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4334,42 +4426,28 @@ msgstr ""
 "Augmentez la sécurité de votre serveur en mettant l'option expose_php à "
 "'Off'. PHP n'enverra pas d'information à propos du serveur."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Cherchez 'expose_php' dans votre php.ini et mettez le à 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Améliorez la performance de votre serveur en mettant magic_quotes_gpc à "
-"'off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Cherchez l'option 'zend.ze1_compatibility_mode' dans votre hp.ini et mettez "
-"la à 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrer"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Inspection LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analyse de votre annuaire LDAP pour la compatibilité avec FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Donner tous les droits aux utilisateurs sur cette branche"
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4377,84 +4455,84 @@ msgstr ""
 "Permet aux utilisateurs d'éditer leurs propres informations (onglets "
 "générique et posix, à n'utiliser que sur la base)"
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permet aux utilisateurs de changer leur mot de passe (à n’utiliser que sur "
 "la base)"
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Inspection des classes d'objets de l'objet racine"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Vérification des permissions sur l'annuaire LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Recherche d’utilisateurs invisibles"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Vérification du superadministrateur"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr "Vérification des rôles ACL et groupes par défaut"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Recherche d'utilisateurs en dehors de la branche des utilisateurs"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Recherche de groupes en dehors de la branche des groupes"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Recherche de départements invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Recherche d’UID en double"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr "Recherche de GID en double"
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "La requête LDAP a échoué"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr "L'objet racine est peut-être manquant."
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Échec"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Object class FusionDirectory obligatoire '%s' manquante !"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Veuillez vérifier votre installation."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4463,17 +4541,17 @@ msgstr ""
 "Impossible de gérer l'objet structural de votre objet racine. Veuillez "
 "essayer d’ajouter la classe d’objet '%s' à la main."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "L'utilisateur «%s» n'a pas un accès complet à votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "L'utilisateur «%s» n'a pas un accès complet à votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4482,104 +4560,104 @@ msgstr ""
 "%s utilisateur(s) trouvé(s) qui ne seront pas visibles dans FusionDirectory "
 "ou qui sont incomplet(s)."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Migration des utilisateurs"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Erreur de migration"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "Impossible de migrer l'entrée «%s» :"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Groupes"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Rôles"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 "Il n'y a pas d'administrateur FusionDirectory dans votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Donne tous les droits sur tous les objets"
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "Les rôles ACL par défaut n'ont pas été insérés"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Certains rôles ACL par défaut sont manquants"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "Les rôles ACL par défaut ont été insérés"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "Impossible d’ajouter le rôle ACL «%s» :"
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr "%s utilsateur(s) trouvé(s) en dehors de la branche configurée «%s»."
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Déplacer les utilisateurs dans la branche configurée"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr "Impossible de déplacer les entrées vers le département spécifié !"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "Les entrées seront déplacées depuis"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "vers"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Les références suivantes seront mises à jour"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "%s groupes trouvés en dehors de la branche configurée '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Déplacer les groupes dans la branche configurée"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "%s département(s) trouvé(s) qui ne seront pas visible(s) dans "
 "FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr "Migration des départements"
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr "%s valeurs dupliquées trouvées pour l'attribut «uidNumber» : %s"
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr "%s valeurs dupliquées trouvées pour l'attribut «gidNumber» : %s"
@@ -4644,8 +4722,8 @@ msgstr "Smarty"
 #, php-format
 msgid "Directory '%s' specified as compile directory is not accessible!"
 msgstr ""
-"Le répertoire '%s' spécifié comme répertoire de compilation est inaccessible"
-" !"
+"Le répertoire '%s' spécifié comme répertoire de compilation est "
+"inaccessible !"
 
 #: html/class_passwordRecovery.inc:119
 #, php-format
@@ -4799,8 +4877,8 @@ msgstr "Erreur Smarty"
 #, php-format
 msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Le répertoire «%s» spécifié comme répertoire de compilation est inaccessible"
-" !"
+"Le répertoire «%s» spécifié comme répertoire de compilation est "
+"inaccessible !"
 
 #: html/index.php:216
 msgid "Your FusionDirectory session has expired!"
@@ -4839,28 +4917,28 @@ msgstr "Veuillez vérifier le nom d'utilisateur et le mot de passe."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Compte verrouillé. Veuillez contacter votre administrateur système !"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr "Aucune valeur trouvée dans l’entête HTTP «%s»"
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 "L'utilisateur «%s» mentionné dans l’entête n'existe pas dans l'annuaire LDAP"
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr "La connexion avec l'utilisateur «%s» a provoqué l'erreur : %s"
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr "L'utilisateur CAS «%s» n'existe pas dans l'annuaire LDAP"
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4920,6 +4998,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] "Il y a un compte expiré"
 msgstr[1] "Il y a %1 comptes expirés"
+msgstr[2] "Il y a %1 comptes expirés"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4935,6 +5014,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] "Il y a un compte qui expire dans les %1 prochain jours"
 msgstr[1] "Il y a %2 comptes qui expirent dans les %1 prochains jours"
+msgstr[2] "Il y a %2 comptes qui expirent dans les %1 prochains jours"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4949,6 +5029,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] "Il y a 1 groupe :"
 msgstr[1] "Il y a %1 groupes :"
+msgstr[2] "Il y a %1 groupes :"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4959,6 +5040,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] "L'un deux est un groupe %1"
 msgstr[1] "%2 sont des groupes %1"
+msgstr[2] "%2 sont des groupes %1"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4970,18 +5052,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] "Il y a 1 utilisateur :"
 msgstr[1] "Il y a %1 utilisateurs :"
+msgstr[2] "Il y a %1 utilisateurs :"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] "Un d'entre eux utilise la méthode %1"
 msgstr[1] "%2 d’entre eux utilisent la méthode %1"
+msgstr[2] "%2 d’entre eux utilisent la méthode %1"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] "Un est verrouille"
 msgstr[1] "%1 d’entre eux sont verrouillés"
+msgstr[2] "%1 d’entre eux sont verrouillés"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4996,6 +5081,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] "L'un d'entre eux a un compte %1"
 msgstr[1] "%2 d’entre eux ont un compte %1"
+msgstr[2] "%2 d’entre eux ont un compte %1"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -5053,11 +5139,15 @@ msgstr "Après migration"
 msgid "Close"
 msgstr "Fermer"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr "Montrer l'information"
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory ne fonctionnera pas si vous ne corrigez pas cela."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory fonctionnera même si vous ne corrigez pas cela."
 
diff --git a/locale/hu_HU/fusiondirectory.po b/locale/hu_HU/fusiondirectory.po
index bb368343db9ce6a0a5458a29c9a1a825438a0d0e..51d5d64d174b82bf1592b48213f8c8776b4e2ca8 100644
--- a/locale/hu_HU/fusiondirectory.po
+++ b/locale/hu_HU/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2016\n"
 "Language-Team: Hungarian (Hungary) (https://www.transifex.com/fusiondirectory/teams/12202/hu_HU/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Név"
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Felhasználók"
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4727,11 +4813,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/id/fusiondirectory.po b/locale/id/fusiondirectory.po
index bf5cfef6d11d7ab650ef4db959c2f6d49267a0ef..fa6be17799be1c22cac53dd5393a9f9e8dd064af 100644
--- a/locale/id/fusiondirectory.po
+++ b/locale/id/fusiondirectory.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Language-Team: Indonesian (https://www.transifex.com/fusiondirectory/teams/12202/id/)\n"
 "MIME-Version: 1.0\n"
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4715,11 +4801,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/it_IT/fusiondirectory.po b/locale/it_IT/fusiondirectory.po
index 6d6d0252b3e2bfe50d720f248e1231be0e4c25db..652310562b2fc158ed717ab051eb7ebdcbae8446 100644
--- a/locale/it_IT/fusiondirectory.po
+++ b/locale/it_IT/fusiondirectory.po
@@ -4,23 +4,24 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
 # Paola Penati <paola.penati@opensides.be>, 2019
+# fusiondirectory <contact@fusiondirectory.org>, 2021
+# Paola <paola.penati@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Paola Penati <paola.penati@opensides.be>, 2019\n"
+"Last-Translator: Paola <paola.penati@fusiondirectory.org>, 2021\n"
 "Language-Team: Italian (Italy) (https://www.transifex.com/fusiondirectory/teams/12202/it_IT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it_IT\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -40,9 +41,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Errore"
 
@@ -90,8 +91,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Errore LDAP"
 
@@ -148,62 +149,63 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "File"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Linea"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Errore PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "classe"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "funzione"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statico"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "metodo"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traccia"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argomenti"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "La creazione di questa pagina, secondo l'interprete PHP, ha generato degli "
 "errori ! "
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 "Invia i tuoi commenti a proposito di un bug al Team di FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Invia un rapporto di bug"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Mostra/Nascondi l'informazione"
 
@@ -362,9 +364,7 @@ msgstr "Nome del modello"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Errore interno"
 
@@ -506,11 +506,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "Il server LDAP ha risposto: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Avvertimento"
@@ -691,12 +691,12 @@ msgstr "Nome utente"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Autorizzazioni"
@@ -982,8 +982,8 @@ msgstr "Estensione PHP %s  mancante !"
 msgid "Cancel"
 msgstr "Annulla"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1094,10 +1094,12 @@ msgid "Remove %s settings"
 msgstr "Rimuovi i parametri %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
-"Clicka sul bottone 'Modifica' qui sotto per cambiare le informazioni in "
-"questa finestra"
+"Clicka su \"Modifica\" nell'angolo in basso a destra della pagina per "
+"modificare i campi"
 
 #: include/class_msgPool.inc:646
 msgid "January"
@@ -1339,6 +1341,7 @@ msgstr "Seleziona le entries desiderate"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nome"
@@ -1373,8 +1376,8 @@ msgid "Restart service"
 msgstr "Riavvia il servizio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1386,31 +1389,31 @@ msgstr "Base dell'oggetto"
 msgid "Base field value should always be a string"
 msgstr "Il valore del campo base dovrebbe sempre essere una stringa"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr "Errore, la data non é corretta: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Ore"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minuti"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Secondi"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Data"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Tempo"
 
@@ -1447,7 +1450,7 @@ msgstr "L'attributo %s è disabilitato, il suo valore non può essere impostato"
 #: include/simpleplugin/attributes/class_FileAttribute.inc:107
 #, php-format
 msgid "Invalid base64 data for attribute %s"
-msgstr ""
+msgstr "Dati base64 non validi per l'attributo %s"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:165
 #: include/simpleplugin/attributes/class_FileAttribute.inc:418
@@ -1463,7 +1466,7 @@ msgstr "Scarica"
 #: include/simpleplugin/attributes/class_FileAttribute.inc:368
 #, php-format
 msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
+msgstr "Impossibile impostare il valore \"%s\", contiene dati non validi : %s"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:378
 msgid ""
@@ -1476,7 +1479,7 @@ msgstr ""
 #: include/simpleplugin/attributes/class_FileAttribute.inc:395
 #, php-format
 msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
+msgstr "Dati non validi, errore Imagick: \"%s\""
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:428
 #: include/simpleplugin/attributes/class_FileAttribute.inc:429
@@ -1705,8 +1708,8 @@ msgid "days"
 msgstr "giorni"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
-msgstr "Aggiungi (finestra di dialogo)"
+msgid "Add(dialog)"
+msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
 #, php-format
@@ -1758,23 +1761,23 @@ msgstr "Errore di filtro"
 msgid "The filter is incomplete!"
 msgstr "Il filtro non è completo!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Errore d'autorizzazione"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Non sei autorizzato a creare una 'copia instantanea' di %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Non sei autorizzato a restaurare una 'copia instantanea' di %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr "Non sei autorizzato a eliminare uno snapshot per 1%s."
@@ -1786,7 +1789,7 @@ msgstr "Nessuna etichetta"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Crea"
 
@@ -1823,12 +1826,6 @@ msgstr "Voce '%s' sconosciuta !"
 msgid "All users"
 msgstr "Tutti gli utenti"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Il canale richiesto non esiste! Contatta l'amministratore del sistema."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Avvertimento sul rendimento"
@@ -2188,13 +2185,13 @@ msgstr "Azione innescata"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
-msgstr "Azione chiamata senza errori (i risultati sono stati \"%s\")"
+msgid "Action called without error(results were \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
-msgstr "Azione chiamata senza errori (il risultato è stato \"%s\")"
+msgid "Action called without error(result was \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
 #: plugins/admin/groups/class_roleGeneric.inc:55
@@ -2557,7 +2554,7 @@ msgstr "Elimina utente"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Utenti"
 
@@ -3635,6 +3632,122 @@ msgstr ""
 "Le statistiche per il tipo \"%s\" non possono essere calcolate a causa del "
 "seguente errore: %s"
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr "Abbonamento"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr "Informazioni sull'abbonamento"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr "Informazioni sul tuo abbonamento FusionDirectory "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr "Testo informativo per l'abbonamento"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr "Nome dell'abbonamento"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Id"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr "ID abbonamento "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Tipo di sottoscrizione"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr "Contratto"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr "Riferimento del contratto "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Data d'inizio"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr "Data di inizio di questo abbonamento"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Data di fine"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr "Data di fine di questo abbonamento "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr "Importa il tuo abbonamento "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr "Testo informativo per abbonamento scaduto "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr "Importa abbonamento "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importa"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+"Non disponi di un abbonamento valido per questa istanza di FusionDirectory. "
+"Visitare %s per un elenco delle opzioni disponibili. "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+"L'abbonamento è scaduto per questa istanza di FusionDirectory. Si prega di "
+"visitare %s per rinnovarlo. "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr "Nessun dato. Hai dimenticato di caricare un file? "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr "Impossibile analizzare il file importato "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr "Manca la sezione \"%s\" nel file importato "
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr "Attributo \"%s\"mancante nel file importato "
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Modifica gruppi e ruoli degli utenti"
@@ -3956,44 +4069,44 @@ msgstr ""
 msgid "The welcome message"
 msgstr "Messaggio di benvenuto"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr "Connessione LDAP"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nome del luogo"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr "Nome di questo collegamento per mostrare nell'elenco dei server LDAP"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI di connessione"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr "URI per contattare il server LDAP. Di solito inizia con ldap://"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Connessione TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr "TLS dovrebbe essere usato per connetterlo a questo server LDAP?"
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "Base del directory LDAP"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autentificazione"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
@@ -4001,43 +4114,43 @@ msgstr ""
 "DN dell'account amministratore da utilizzare per il legame alla LDAP . La "
 "base viene automaticamente aggiunta."
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN dell'amministratore"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Password dell'amministratore"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 "Password dell'account amministratore da utilizzare per il legame alla LDAP ."
 " "
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Stato"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Stato attuale"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 "Risultato dell'ultimo tentativo di controllo dei vincoli LDAP e degli schemi"
 " di base."
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configurazione di LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Configurazione della connessione di LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -4045,39 +4158,39 @@ msgstr ""
 "Questa finestra permette di indicare la configurazione di base di LDAP per "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "La connessione anonima sul server '%s' è fallita !"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "La connessione dell'utente '%s' è fallita !"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Riprova"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La connessione anonima al server '%s' è riuscita."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Aggiorna"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Specifica il nome utente e la password !"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "La connessione dell'utente '%s' al server '%s' è riuscita !"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
@@ -4086,15 +4199,13 @@ msgstr ""
 "%s\n"
 "Schema \"%s\": %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Verifica del modulo PHP e delle sue estensioni"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
-msgstr "Configurazione di installazione PHP ( 1 mostra informazione 1 )"
+msgid "PHP setup configuration"
+msgstr "Configurazione dell'installazione PHP"
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
@@ -4218,25 +4329,10 @@ msgstr ""
 " copie istantanee)."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals è un meccanismo PHP che permette di registrare tutte le "
-"variabili globali affinchè gli scripts possano accedervi senza cambiare la "
-"portata delle variabili. Questo puó generare un rischio per la sicurezza."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Cerca l'opzione register_globals nel tuo file php.ini e impostalo su 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP utilizza questa variabile per cancellare delle vecchie sessioni."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4244,7 +4340,7 @@ msgstr ""
 "Impostare questa variabile a \"1 giorno\" eviterà di perdere i coockies e le"
 " sessioni prima che siano realmente scadute."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4252,12 +4348,12 @@ msgstr ""
 "Cerca la variabile 'session.gc_maxlifetime' nel tuo file php.ini e impostala"
 " a 86400 o un valore più grande."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4265,13 +4361,13 @@ msgstr ""
 "Per non avere problemi nell'uso di FusionDirectory, è necessario impostare "
 "l'opzione 'session.auto_start' su 'Off' nel file php.ini."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cerca la variabile 'session.auto_start' nel file php.ini e impostala su "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4280,14 +4376,14 @@ msgstr ""
 "memoria causeranno degli errori imprevisti che non saranno riproducibili ! "
 "Aumenta la memoria per delle installazioni più complesse."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Cerca la variabile 'memory_limit' nel file php.ini e impostala su '128MB' o "
 "un valore più grande."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4295,16 +4391,16 @@ msgstr ""
 "Questa opzione influenza la gestione delle uscite. Per aumentare le "
 "prestazioni, impostala su 'Off'."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cerca la variabile 'implicit_flush' nel file php.ini e impostala su 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Il tempo di esecuzione deve essere di almeno 30 secondi."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4312,7 +4408,7 @@ msgstr ""
 "Cerca la variabile 'max_execution_time' nel file php.ini e impostala su '30'"
 " o un valore più grande."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4321,42 +4417,28 @@ msgstr ""
 "'Off'. PHP non trasmetterà alcuna informazione a proposito del server che "
 "stai configurando."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Cerca la variabile 'expose_php' nel file php.ini e impostala su 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Aumenta le prestazioni del tuo server impostando la variabile "
-"'magic_quotes_gpc' su 'Off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Cerca la variabile 'zend.ze1_compatibility_mode' nel file php.ini e "
-"impostala su 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migra"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Ispezione dell'annuario LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analisi dell'annuario LDAP per la compatibilità con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Dare tutti i diritti sugli utenti nel ramo dato"
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4364,83 +4446,83 @@ msgstr ""
 "Permette agli utenti di modificare le proprie informazioni (uso di scheda e "
 "posix principale solo sulla base)"
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permette agli utenti di modificare la loro password (usare solo su base)"
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Ispezione delle classi di oggetti nell'oggetto radice"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Verifica del permesso di accesso al database LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Verifica degli utenti nascosti"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Verifica del super amministratore"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr "Controllo per i ruoli ed i gruppi ACL predefiniti"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Verifica degli utenti al di fuori del ramo \"people\""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Verifica dei gruppi al di fuori del ramo \"groups\""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Verifica dei dipartimenti nascosti"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Verifica dei possibili doppioni UID"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr "Verifica dei possibili doppioni GID"
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "La richiesta al database LDAP è fallita!"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr "Forse l'\"oggetto radice\" é mancante"
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Fallito"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "L'oggetto di classe '%s' richiesto per FusionDirectory è mancante !"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Verifica la tua installazione."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4449,17 +4531,17 @@ msgstr ""
 "Impossibile gestire il tipo di oggetto strutturale del tuo oggetto radice. "
 "Prova ad aggiungere manualmente la classe d'oggetto '%s'. "
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "L'utente \"%s\" non ha accesso completo al vostro database LDAP."
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "L'utente \"%s\" non ha pieno accesso al database LDAP."
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4468,104 +4550,104 @@ msgstr ""
 "Ho trovato %s utenti(e) che non saranno visibili in FusionDirectory che sono"
 " incompleti."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Migrazione utente"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Errore durante la migrazione"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "Impossibile eseguire la migrazione di voce \"%s\":"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Gruppi"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Ruoli"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 "Non ho trovato alcun amministratore di FusionDirectory nel tuo annuario "
 "LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Dà tutti i diritti su ogni oggetto"
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "I ruoli ACL di default non sono stati inseriti"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Mancano alcuni ruoli ACL di default"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "Ruoli ACL di default sono stati inseriti"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "Impossibile aggiungere ruolo \"%s\" ACL "
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr "Ho trovato %s utente(i) al di fuori del ramo \"%s\" configurato."
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Sposta gli utenti nel ramo utenti configurato nell'annuario"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr "Impossibile spostare le entrate nel dipartimento richiesto!"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "L'entrata verrà spostata"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "verso"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Le seguenti reference saranno aggiornate"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Ho trovato %s gruppi al di fuori del ramo '%s' configurato."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Sposta i gruppi nel ramo di gruppi configurato"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Ho trovato %s departimenti(o) che non saranno visibili in FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr "Migrazione Dipartilento"
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr "Trovati %s valori duplicati per l'attributo \"uidNumber\":%s"
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr "Trovati %s valori duplicati per l'attributo \"gidNumber\":%s"
@@ -4823,27 +4905,27 @@ msgstr "Verifica il nome utente e la password."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Conto bloccato. Contatta l'amministratore del sistema!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr "Nessun valore trovato nell'header HTTP \"%s\""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr "L'utente header \"%s\"  non è stato trovato nel LDAP"
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr "L'accesso con utente \"%s\" ha innescato l'errore: %s"
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr "Impossibile trovare l'utente \"%s\" CAS nell'annuario LDAP"
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4902,6 +4984,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] "C'é un account scaduto"
 msgstr[1] "Ci sono %1 account scaduti"
+msgstr[2] "Ci sono %1 account scaduti"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4917,6 +5000,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] "C'é un account in scadenza nei prossimi %1 giorni"
 msgstr[1] "Ci sono %2 accounts in scadenza nei prossimi %1 giorni"
+msgstr[2] "Ci sono %2 accounts in scadenza nei prossimi %1 giorni"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4931,6 +5015,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] "C'é 1 gruppo:"
 msgstr[1] "Vi sono %1 gruppi:"
+msgstr[2] "Vi sono %1 gruppi:"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4941,6 +5026,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] "Uno di essi é un gruppo %1"
 msgstr[1] "%2 sono %1 gruppi"
+msgstr[2] "%2 sono %1 gruppi"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4952,18 +5038,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] "C'é 1 utente:"
 msgstr[1] "Ci sono %1 utenti:"
+msgstr[2] "Ci sono %1 utenti:"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] "Uno di essi usa %1  metodo"
 msgstr[1] "%2 di essi usano %1 metodo"
+msgstr[2] "%2 di essi usano %1 metodo"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] "Uno di essi é bloccato"
 msgstr[1] "%1 di essi sono bloccati"
+msgstr[2] "%1 di essi sono bloccati"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4978,6 +5067,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] "Uno di essi ha %1 account"
 msgstr[1] "%2 di essi hanno un %1 account"
+msgstr[2] "%2 di essi hanno un %1 account"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -5035,11 +5125,15 @@ msgstr "Dopo la migrazione"
 msgid "Close"
 msgstr "Chiuso"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr "Mostra informazione"
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "Fusiondirectory NON funzionerà prima di aver corretto questo."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "Fusiondirectory funzionerà anche senza aver corretto questo."
 
diff --git a/locale/ja/fusiondirectory.po b/locale/ja/fusiondirectory.po
index 8f9b1498e9c60cdea33430cf7e4216f0a7b782c2..9b8164ce175412223dc3a405bb972c6a961d6b19 100644
--- a/locale/ja/fusiondirectory.po
+++ b/locale/ja/fusiondirectory.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Language-Team: Japanese (https://www.transifex.com/fusiondirectory/teams/12202/ja/)\n"
 "MIME-Version: 1.0\n"
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4715,11 +4801,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/ko/fusiondirectory.po b/locale/ko/fusiondirectory.po
index f7653f6fc64d884e63df0da33f2e02ffeb00baef..2f2c70d18462201596d6ed864db8310a7f2e93f5 100644
--- a/locale/ko/fusiondirectory.po
+++ b/locale/ko/fusiondirectory.po
@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Choi Chris <chulwon.choi@gmail.com>, 2018
+# Choi Chris <chulwon.choi@gmail.com>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Choi Chris <chulwon.choi@gmail.com>, 2018\n"
+"Last-Translator: Choi Chris <chulwon.choi@gmail.com>, 2021\n"
 "Language-Team: Korean (https://www.transifex.com/fusiondirectory/teams/12202/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,20 +39,20 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "오류"
 
 #: include/class_msg_dialog.inc:177
 msgid "Please fix the above error and reload the page."
-msgstr ""
+msgstr "위의 오류를 수정하고 페이지를 다시 로드하십시오."
 
 #: include/class_config.inc:151
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
-msgstr ""
+msgstr "fusiondirectory.conf의 XML 오류 : %d 줄에 %s"
 
 #: include/class_config.inc:154 include/class_config.inc:287
 #: include/class_config.inc:775 include/class_config.inc:787
@@ -71,6 +71,8 @@ msgid ""
 "It seems you are trying to decode something which is not encoded : %s<br/>\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
+"인코딩되지 않은 것을 디코딩하려고하는 것 같습니다 : %s 1\n"
+"비밀번호가 암호화되지 않은 상태에서 fusiondirectory.secrets 파일을 사용하고 있지 않은지 확인하십시오."
 
 #: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
 #: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
@@ -87,113 +89,114 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
-msgstr "lDAP 오류"
+msgstr "LDAP 오류"
 
 #: include/class_config.inc:325
 msgid "Cannot bind to LDAP. Please contact the system administrator."
-msgstr ""
+msgstr "LDAP에 바인딩 할 수 없습니다. 시스템 관리자에게 문의하십시오."
 
 #: include/class_config.inc:354
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
-msgstr ""
+msgstr "구성 파일에서 \"%s\" 위치를 찾을 수 없습니다"
 
 #: include/class_config.inc:776
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
-msgstr ""
+msgstr "스냅 샷 기능이 사용 가능하지만 필수 변수 \"%s\"가 설정되지 않았습니다."
 
 #: include/class_config.inc:788
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
-msgstr ""
+msgstr "스냅 샷 기능이 활성화되었지만 필요한 압축 모듈이 없습니다. \"%s\"를 설치하십시오."
 
 #: include/class_config.inc:900
 msgid "All categories"
-msgstr ""
+msgstr "모든 카테고리"
 
 #: include/class_config.inc:1042
 msgid "My account"
-msgstr ""
+msgstr "내 계정"
 
 #: include/exporter/class_PDF.php:61
 msgid "Page"
-msgstr ""
+msgstr "페이지"
 
 #: include/exporter/class_pdfExporter.inc:58
 msgid "No PDF export possible: there is no FPDF library installed."
-msgstr ""
+msgstr "PDF로 내보낼 수 없음 : FPDF 라이브러리가 설치되어 있지 않습니다."
 
 #: include/exporter/class_pdfExporter.inc:196
 msgid "PDF"
-msgstr ""
+msgstr "PDF"
 
 #: include/exporter/class_cvsExporter.inc:93
 msgid "CSV"
-msgstr ""
+msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
-msgstr ""
+msgstr "파일"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
-msgstr ""
+msgstr "라인"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
-msgstr ""
+msgstr "PHP 오류"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
-msgstr ""
+msgstr "클래스"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
-msgstr ""
+msgstr "함수"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
-msgstr ""
+msgstr "정적"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
-msgstr ""
+msgstr "메소드"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
-msgstr ""
+msgstr "Trace"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "타입"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
-msgstr ""
+msgstr "인수"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
-msgstr ""
+msgstr "이 페이지를 생성하면 PHP 인터프리터에서 오류가 발생됩니다!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
-msgstr ""
+msgstr "FusionDirectory 팀에 버그 보고서 보내기"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
-msgstr ""
+msgstr "버그 리포트 보내기"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
-msgstr ""
+msgstr "정보 토글"
 
 #: include/class_listing.inc:312 include/class_listing.inc:1183
 #: include/class_listing.inc:1185
@@ -202,52 +205,52 @@ msgstr "위"
 
 #: include/class_listing.inc:312
 msgid "Down"
-msgstr ""
+msgstr "아래"
 
 #: include/class_listing.inc:312
 #: include/simpleplugin/attributes/class_SetAttribute.inc:479
 #: include/simpleplugin/attributes/class_SetAttribute.inc:480
 msgid "Sort up"
-msgstr ""
+msgstr "오름차순"
 
 #: include/class_listing.inc:312
 #: include/simpleplugin/attributes/class_SetAttribute.inc:492
 #: include/simpleplugin/attributes/class_SetAttribute.inc:493
 msgid "Sort down"
-msgstr ""
+msgstr "차순"
 
 #: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
 msgid "Select all"
-msgstr ""
+msgstr "전체선택"
 
 #: include/class_listing.inc:567
 msgid "created by"
-msgstr ""
+msgstr "만든 사람"
 
 #: include/class_listing.inc:1175
 msgid "Go to root department"
-msgstr ""
+msgstr "root 부서로 이동"
 
 #: include/class_listing.inc:1175 include/class_listing.inc:1177
 #: include/class_baseSelector.inc:212
 msgid "Root"
-msgstr ""
+msgstr "Root"
 
 #: include/class_listing.inc:1183
 msgid "Go up one department"
-msgstr ""
+msgstr "한 부서 위로 올라가"
 
 #: include/class_listing.inc:1191
 msgid "Go to user's department"
-msgstr ""
+msgstr "사용자 부서로 이동"
 
 #: include/class_listing.inc:1191 include/class_listing.inc:1193
 msgid "Home"
-msgstr ""
+msgstr "홈"
 
 #: include/class_listing.inc:1198
 msgid "Reload list"
-msgstr ""
+msgstr "목록 새로 고침"
 
 #: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
 #: plugins/admin/departments/dep-list.xml:37
@@ -257,74 +260,74 @@ msgstr "ìž‘ì—…"
 
 #: include/class_listing.inc:1655 include/class_listing.inc:1708
 msgid "Copy"
-msgstr ""
+msgstr "복사"
 
 #: include/class_listing.inc:1661 include/class_listing.inc:1696
 msgid "Cut"
-msgstr ""
+msgstr "잘라내기"
 
 #: include/class_listing.inc:1669 include/class_listing.inc:1671
 #: include/class_CopyPasteHandler.inc:330
 msgid "Paste"
-msgstr ""
+msgstr "붙여넣기"
 
 #: include/class_listing.inc:1696
 msgid "Cut this entry"
-msgstr ""
+msgstr "항목 잘라내기"
 
 #: include/class_listing.inc:1708
 msgid "Copy this entry"
-msgstr ""
+msgstr "항목 복사하기"
 
 #: include/class_listing.inc:1733 include/class_listing.inc:1735
 msgid "Restore snapshots"
-msgstr ""
+msgstr "스냅샷 복구"
 
 #: include/class_listing.inc:1749
 msgid "Export list"
-msgstr ""
+msgstr "목록 내보내기"
 
 #: include/class_listing.inc:1781 include/class_listing.inc:1782
 #: include/class_listing.inc:1786
 msgid "Restore snapshot"
-msgstr ""
+msgstr "스냅샷 복구"
 
 #: include/class_listing.inc:1794
 msgid "Create snapshot"
-msgstr ""
+msgstr "스냅샷 생성"
 
 #: include/class_listing.inc:1795
 msgid "Create a new snapshot from this object"
-msgstr ""
+msgstr "이 객체에서 새 스냅샷 생성"
 
 #: include/class_timezone.inc:52
 #, php-format
 msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr ""
+msgstr "구성에서 \"%s\"시간대 설정이 유효하지 않습니다."
 
 #: include/class_SnapshotHandler.inc:40
 msgid "Snapshot"
-msgstr ""
+msgstr "스냅샷"
 
 #: include/class_SnapshotHandler.inc:41
 msgid "Snapshot handler"
-msgstr ""
+msgstr "스냅샷 핸들러"
 
 #: include/class_SnapshotHandler.inc:46
 msgid "Restore over an existing object"
-msgstr ""
+msgstr "기존 객체를 통해 복원"
 
 #: include/class_SnapshotHandler.inc:47
 msgid "Restore a deleted object"
-msgstr ""
+msgstr "삭제된 객체 복원"
 
 #: include/class_SnapshotHandler.inc:408
 msgid "There was a problem uncompressing snapshot data"
-msgstr ""
+msgstr "스냅샷 데이터를 압축 해제하는 중에 문제가 발생했습니다"
 
 #: include/class_SnapshotHandler.inc:412
 msgid "Snapshot data could not be fetched"
-msgstr ""
+msgstr "스냅샷 데이터를 가져올 수 없습니다"
 
 #: include/class_template.inc:43
 #: include/simpleplugin/class_simpleManagement.inc:295
@@ -336,100 +339,98 @@ msgstr "템플릿"
 
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
-msgstr ""
+msgstr "비슷한 값을 가진 여러 개체를 만드는 데 사용되는 개체 템플릿"
 
 #: include/class_template.inc:49
 #: include/simpleplugin/class_simplePlugin.inc:348
 msgid "Template name"
-msgstr ""
+msgstr "템플릿"
 
 #: include/class_logging.inc:81 include/functions.inc:512
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
-msgstr ""
+msgstr "내부 오"
 
 #: include/class_logging.inc:81
 #, php-format
 msgid "Logging failed: %s"
-msgstr ""
+msgstr "로깅 실패: %s"
 
 #: include/class_logging.inc:103
 #, php-format
 msgid "Invalid option \"%s\" specified!"
-msgstr ""
+msgstr "\"%s\" 옵션이 잘못되었습니다!"
 
 #: include/class_logging.inc:107
 msgid "Specified objectType is empty or invalid!"
-msgstr ""
+msgstr "지정된 objectType이 비어 있거나 유효하지 않습니다!"
 
 #: include/password-methods/class_password-methods-sasl.inc:65
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
-msgstr ""
+msgstr "패스워드를 변경할 수 없습니다, 사용자를 알 수 없습니다. \"%s\""
 
 #: include/password-methods/class_password-methods-sasl.inc:92
 #: plugins/config/class_configInLdap.inc:584
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
-msgstr ""
+msgstr "SASL을 사용하려면 구성 화면에서 saslRealm 또는 saslExop를 채워야 합니다."
 
 #: include/class_baseSelector.inc:275
 msgid "Submit"
-msgstr ""
+msgstr "제출"
 
 #: include/class_filter.inc:331 include/functions.inc:1545
 msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr ""
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
 
 #: include/class_filter.inc:369
 msgid "Apply filter"
-msgstr ""
+msgstr "필터 적"
 
 #: include/class_filter.inc:380 include/class_msgPool.inc:51
 msgid "Search in subtrees"
-msgstr ""
+msgstr "하위 트리에서 검색"
 
 #: include/class_filter.inc:404
 #, php-format
 msgid "Searches in %s"
-msgstr ""
+msgstr "%s에서 검색"
 
 #: include/class_ldapSizeLimit.inc:114
 #, php-format
 msgid "The size limit of %d entries is exceed!"
-msgstr ""
+msgstr "%d 항목의 크기 제한이 초과되었습니다!"
 
 #: include/class_ldapSizeLimit.inc:115
 #, php-format
 msgid ""
 "Set the new size limit to %s and show me this message if the limit still "
 "exceeds"
-msgstr ""
+msgstr "새 크기 제한을 %s 으로 설정하고 제한이 여전히 초과하면 이 메시지를 표시하십시오"
 
 #: include/class_ldapSizeLimit.inc:131
 msgid "Configure"
-msgstr ""
+msgstr "구성"
 
 #: include/class_ldapSizeLimit.inc:136
 msgid "incomplete"
-msgstr ""
+msgstr "불완전한"
 
 #: include/functions.inc:97
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
-msgstr ""
+msgstr "치명적인 오류 : 클래스 위치가 정의되지 않았습니다.이 문제를 해결하려면 '1%s'을 (를) 실행하십시오."
 
 #: include/functions.inc:116
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
-msgstr ""
+msgstr "치명적인 오류 : 클래스 '1%s'을 (를) 인스턴스화 할 수 없습니다. '1%s'을(를) 실행하여이 문제를 해결하십시오."
 
 #: include/functions.inc:411 include/functions.inc:2310
 #: include/simpleplugin/class_simplePlugin.inc:468
@@ -437,50 +438,50 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:485
 #: html/class_passwordRecovery.inc:118
 msgid "Fatal error"
-msgstr ""
+msgstr "치명적 오류"
 
 #: include/functions.inc:412
 #, php-format
 msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
+msgstr "치명적 : LDAP 연결시 오류가 발생했습니다. 서버 오류 '%s'."
 
 #: include/functions.inc:472
 msgid ""
 "Login (uid) is not unique inside the LDAP tree. Please contact your "
 "administrator."
-msgstr ""
+msgstr "로그인 (uid)은 LDAP 트리 내에서 고유하지 않습니다. 관리자에게 문의하십시오."
 
 #: include/functions.inc:532
 msgid "Authentication error"
-msgstr ""
+msgstr "인증 오류"
 
 #: include/functions.inc:533
 msgid ""
 "It seems your user password has expired. Please use <a "
 "href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
+msgstr "사용자 비밀번호가 만료 된 것 같습니다. <a href=\"recovery.php\">비밀번호 복구</a>를 사용하여 변경하십시오."
 
 #: include/functions.inc:584 include/functions.inc:705
 msgid "Error while adding a lock. Contact the developers!"
-msgstr ""
+msgstr "잠금을 추가하는 중 오류가 발생했습니다. 개발자에게 문의하십시오!"
 
 #: include/functions.inc:594
 #, php-format
 msgid ""
 "Cannot create locking information in LDAP tree. Please contact your "
 "administrator!"
-msgstr ""
+msgstr "LDAP 트리에서 잠금 정보를 작성할 수 없습니다. 관리자에게 문의하십시오!"
 
 #: include/functions.inc:594
 #, php-format
 msgid "LDAP server returned: %s"
-msgstr ""
+msgstr "LDAP 서버에서 반환 : %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "ã…—"
@@ -489,65 +490,65 @@ msgstr "ã…—"
 msgid ""
 "Found multiple locks for object to be locked. This should not happen - "
 "cleaning up multiple references."
-msgstr ""
+msgstr "오브젝트를 잠글 여러 잠금을 찾았습니다. 여러 참조를 정리하지 마십시오."
 
 #: include/functions.inc:1107
 msgid "Continue anyway"
-msgstr ""
+msgstr "어쨌든 계속"
 
 #: include/functions.inc:1109
 msgid "Edit anyway"
-msgstr ""
+msgstr "어쨌든 편집"
 
 #: include/functions.inc:1111
 #, php-format
 msgid "You're going to edit the LDAP entry/entries %s"
-msgstr ""
+msgstr "LDAP 항목 %s을 편집하려고 합니다."
 
 #: include/functions.inc:1505
 #, php-format
 msgid "%sB"
-msgstr ""
+msgstr "%sB"
 
 #: include/functions.inc:1506
 #, php-format
 msgid "%sKiB"
-msgstr ""
+msgstr "%sKiB"
 
 #: include/functions.inc:1507
 #, php-format
 msgid "%sMiB"
-msgstr ""
+msgstr "%sMiB"
 
 #: include/functions.inc:1508
 #, php-format
 msgid "%sGiB"
-msgstr ""
+msgstr "%sGiB"
 
 #: include/functions.inc:1509
 #, php-format
 msgid "%sTiB"
-msgstr ""
+msgstr "%sTiB"
 
 #: include/functions.inc:1510
 #, php-format
 msgid "%sPiB"
-msgstr ""
+msgstr "%sPiB"
 
 #: include/functions.inc:1511
 #, php-format
 msgid "%sEiB"
-msgstr ""
+msgstr "%sEiB"
 
 #: include/functions.inc:1512
 #, php-format
 msgid "%sZiB"
-msgstr ""
+msgstr "%sZiB"
 
 #: include/functions.inc:1513
 #, php-format
 msgid "%sYiB"
-msgstr ""
+msgstr "%sYiB"
 
 #: include/functions.inc:1683
 #, php-format
@@ -555,79 +556,81 @@ msgid ""
 "File '%s' could not be deleted. Try fusiondirectory-setup --check-"
 "directories to fix permissions."
 msgstr ""
+"'%s' 파일을 삭제할 수 없습니다. fusiondirectory-setup --check-directories를 사용하여 권한을 "
+"수정하십시오."
 
 #: include/functions.inc:1722
 msgid "Cannot write to revision file!"
-msgstr ""
+msgstr "수정본 파일에 쓸 수 없습니다!"
 
 #: include/functions.inc:1753
 msgid "Cannot read revision file!"
-msgstr ""
+msgstr "개정판 파일을 읽을 수 없습니다!"
 
 #: include/functions.inc:1867
 msgid "LDAP warning"
-msgstr ""
+msgstr "LDAP 경고"
 
 #: include/functions.inc:1867
 msgid "Cannot get schema information from server. No schema check possible!"
-msgstr ""
+msgstr "서버에서 스키마 정보를 가져올 수 없습니다. 스키마 검사가 불가능합니다!"
 
 #: include/functions.inc:1891
 msgid "Main FusionDirectory schema"
-msgstr ""
+msgstr "기본 FusionDirectory 스키마"
 
 #: include/functions.inc:1899
 msgid "Schema used to store FusionDirectory configuration"
-msgstr ""
+msgstr "FusionDirectory 구성을 저장하는 데 사용되는 스키마"
 
 #: include/functions.inc:1907
 msgid "Used to store trust mode information in users or groups."
-msgstr ""
+msgstr "트러스트 모드 정보를 사용자 또는 그룹에 저장하는데 사용됩니다."
 
 #: include/functions.inc:1915
 msgid "Used to store templates."
-msgstr ""
+msgstr "템플릿을 저장하는데 사용됩니다."
 
 #: include/functions.inc:1924
 msgid "Used to store POSIX information."
-msgstr ""
+msgstr "POSIX 정보를 저장하는데 사용됩니다."
 
 #: include/functions.inc:1932
 #, php-format
 msgid "Missing required object class \"%s\"!"
-msgstr ""
+msgstr "필수 개체 클래스 \"%s\"가 없습니다!"
 
 #: include/functions.inc:1934
 #, php-format
 msgid "Missing optional object class \"%s\"!"
-msgstr ""
+msgstr "선택적 객체 클래스 \"%s\"가 없습니다!"
 
 #: include/functions.inc:1938
 #, php-format
 msgid "Class(es) available"
-msgstr ""
+msgstr "이용 가능한 클래스(들)"
 
 #: include/functions.inc:1957
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
-msgstr ""
+msgstr "혼합 그룹 플러그인을 설치했지만 스키마 구성에서 이를 지원하지 않습니다."
 
 #: include/functions.inc:1958
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
-msgstr ""
+msgstr "혼합 그룹을 사용하려면 objectClass \"posixGroup\"이 AUXILIARY여야 합니다."
 
 #: include/functions.inc:1961
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
-msgstr ""
+msgstr "스키마가 혼합 그룹을 지원하도록 구성되었지만 이 플러그인이 없습니다."
 
 #: include/functions.inc:1962
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
-msgstr ""
+msgstr "objectClass \"posixGroup\"은 STRUCTURAL이어야 합니다."
 
 #: include/functions.inc:2311
 #, php-format
@@ -636,328 +639,328 @@ msgstr "'%s' 파일을 사용할 수 없습니다.  '%s' 를 실행해 주세요
 
 #: include/class_pluglist.inc:196
 msgid "All objects in this category"
-msgstr ""
+msgstr "이 카테고리의 모든 객체"
 
 #: include/select/userSelect/class_userSelect.inc:35
 #: plugins/admin/users/user-list.xml:49
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:63
 #: plugins/personal/generic/class_user.inc:389
 msgid "Login"
-msgstr ""
+msgstr "로그인"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
-msgstr "í—ˆ"
+msgstr "허가"
 
 #: include/class_CopyPasteHandler.inc:266
 msgid "Cancel all"
-msgstr ""
+msgstr "모두 취소"
 
 #: include/class_CopyPasteHandler.inc:332
 msgid "Cannot paste"
-msgstr ""
+msgstr "붙여 넣을 수 없습니다"
 
 #: include/class_msgPool.inc:43
 #, php-format
 msgid "Select to list objects of type '%s'."
-msgstr ""
+msgstr "'%s' 유형의 객체를 나열하려면 선택하십시오."
 
 #: include/class_msgPool.inc:45
 #, php-format
 msgid "Select to list objects containig '%s'."
-msgstr ""
+msgstr "'%s'가 포함 된 객체를 나열하려면 선택하십시오."
 
 #: include/class_msgPool.inc:47
 #, php-format
 msgid "Select to list objects that have '%s' enabled"
-msgstr ""
+msgstr "'%s'가 활성화 된 개체를 나열하려면 선택하십시오"
 
 #: include/class_msgPool.inc:49
 msgid "Select to search within subtrees"
-msgstr ""
+msgstr "하위 트리 내에서 검색하려면 선택"
 
 #: include/class_msgPool.inc:67
 msgid "This object will be deleted!"
-msgstr ""
+msgstr "이 객체가 삭제됩니다!"
 
 #: include/class_msgPool.inc:69
 #, php-format
 msgid "This '%s' object will be deleted!"
-msgstr ""
+msgstr "이 '%s' 객체가 삭제됩니다!"
 
 #: include/class_msgPool.inc:74
 #, php-format
 msgid "This object will be deleted: %s"
-msgstr ""
+msgstr "이 객체는 삭제됩니다: %s"
 
 #: include/class_msgPool.inc:76
 #, php-format
 msgid "This '%s' object will be deleted: %s"
-msgstr ""
+msgstr "이 '%s' 객체가 삭제됩니다: %s"
 
 #: include/class_msgPool.inc:81
 msgid "This object will be deleted:"
-msgstr ""
+msgstr "이 객체는 삭제됩니다:"
 
 #: include/class_msgPool.inc:83
 #, php-format
 msgid "This '%s' object will be deleted:"
-msgstr ""
+msgstr "이 '%s' 객체가 삭제됩니다:"
 
 #: include/class_msgPool.inc:87
 #, php-format
 msgid "These objects will be deleted: %s"
-msgstr ""
+msgstr "이 객체들은 삭제됩니다: %s"
 
 #: include/class_msgPool.inc:89
 #, php-format
 msgid "These '%s' objects will be deleted: %s"
-msgstr ""
+msgstr "이 '%s'  객체들이 삭제됩니다: %s"
 
 #: include/class_msgPool.inc:101
 msgid "You have no permission to delete this object!"
-msgstr ""
+msgstr "이 객체를 삭제할 권한이 없습니다!"
 
 #: include/class_msgPool.inc:105 include/class_msgPool.inc:109
 msgid "You have no permission to delete the object:"
-msgstr ""
+msgstr "객체를 삭제할 권한이 없습니다:"
 
 #: include/class_msgPool.inc:112
 msgid "You have no permission to delete these objects:"
-msgstr ""
+msgstr "다음 객체들을 삭제할 권한이 없습니다."
 
 #: include/class_msgPool.inc:123
 msgid "You have no permission to create this object!"
-msgstr ""
+msgstr "이 개체를 만들 권한이 없습니다!"
 
 #: include/class_msgPool.inc:127 include/class_msgPool.inc:131
 msgid "You have no permission to create the object:"
-msgstr ""
+msgstr "객체를 생성할 권한이 없습니다 :"
 
 #: include/class_msgPool.inc:134
 msgid "You have no permission to create these objects:"
-msgstr ""
+msgstr "이러한 객체를 생성할 권한이 없습니다 :"
 
 #: include/class_msgPool.inc:146
 msgid "You have no permission to modify this object!"
-msgstr ""
+msgstr "이 개체를 수정할 권한이 없습니다!"
 
 #: include/class_msgPool.inc:151
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
-msgstr ""
+msgstr "\"%s\"개체의 \"%s\" 필드를 수정할 권한이 없습니다."
 
 #: include/class_msgPool.inc:153 include/class_msgPool.inc:158
 #, php-format
 msgid "You have no permission to modify the object:<br/>%s"
-msgstr ""
+msgstr "개체를 수정할 권한이 없습니다 : <br/>%s"
 
 #: include/class_msgPool.inc:161
 #, php-format
 msgid "You have no permission to modify these objects:<br/>%s"
-msgstr ""
+msgstr "이러한 개체를 수정할 권한이 없습니다 : <br/>%s"
 
 #: include/class_msgPool.inc:172
 msgid "You have no permission to view this object!"
-msgstr ""
+msgstr "이 개체를 볼 권한이 없습니다!"
 
 #: include/class_msgPool.inc:176 include/class_msgPool.inc:180
 msgid "You have no permission to view the object:"
-msgstr ""
+msgstr "객체를 볼 권한이 없습니다 :"
 
 #: include/class_msgPool.inc:183
 msgid "You have no permission to view these objects:"
-msgstr ""
+msgstr "다음 개체를 볼 수있는 권한이 없습니다 :"
 
 #: include/class_msgPool.inc:194
 msgid "You have no permission to move this object!"
-msgstr ""
+msgstr "이 개체를 이동할 권한이 없습니다!"
 
 #: include/class_msgPool.inc:198 include/class_msgPool.inc:202
 msgid "You have no permission to move the object:"
-msgstr ""
+msgstr "개체를 이동할 권한이 없습니다."
 
 #: include/class_msgPool.inc:205
 msgid "You have no permission to move these objects:"
-msgstr ""
+msgstr "이러한 개체를 이동할 권한이 없습니다:"
 
 #: include/class_msgPool.inc:223 include/class_msgPool.inc:243
 #: include/class_msgPool.inc:273
 msgid "Connection information"
-msgstr ""
+msgstr "ì—°ê²° ì •ë³´"
 
 #: include/class_msgPool.inc:225
 #, php-format
 msgid "Cannot connect to %s database!"
-msgstr ""
+msgstr "%s 데이터베이스에 연결할 수 없습니다!"
 
 #: include/class_msgPool.inc:245
 #, php-format
 msgid "Cannot select %s database!"
-msgstr ""
+msgstr "%s 데이터베이스를 선택할 수 없습니다!"
 
 #: include/class_msgPool.inc:255
 #, php-format
 msgid "No %s server defined!"
-msgstr ""
+msgstr "%s 서버가 정의되지 않았습니다!"
 
 #: include/class_msgPool.inc:275
 #, php-format
 msgid "Cannot query %s database!"
-msgstr ""
+msgstr "%s 데이터베이스를 쿼리 할 수 ​​없습니다!"
 
 #: include/class_msgPool.inc:285
 #, php-format
 msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
+msgstr "'%s' 입력란에 예약 키워드가 있습니다!"
 
 #: include/class_msgPool.inc:297
 #, php-format
 msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
+msgstr "플러그인 '%s'에 대한 후크로 지정된 명령 %s이 없습니다!"
 
 #: include/class_msgPool.inc:313
 #, php-format
 msgid "'%s' command is invalid!"
-msgstr ""
+msgstr "'%s' 명령이 유효하지 않습니다!"
 
 #: include/class_msgPool.inc:315
 #, php-format
 msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
+msgstr "%s 플러그인에 대한 '%s' 명령이 잘못되었습니다!"
 
 #: include/class_msgPool.inc:319
 #, php-format
 msgid "'%s' command (%s) is invalid!"
-msgstr ""
+msgstr "'%s' 명령(%s)이 유효하지 않습니다!"
 
 #: include/class_msgPool.inc:321
 #, php-format
 msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
+msgstr "'%s'  플러그인에 대한 '%s' 명령(%s)이 유효하지 않습니다!"
 
 #: include/class_msgPool.inc:339
 #, php-format
 msgid "Cannot execute '%s' command!"
-msgstr ""
+msgstr "'%s' 명령을 실행할 수 없습니다!"
 
 #: include/class_msgPool.inc:341
 #, php-format
 msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
+msgstr " %s 플러그인에 대해 '%s' 명령을 실행할 수 없습니다!"
 
 #: include/class_msgPool.inc:345
 #, php-format
 msgid "Cannot execute '%s' command (%s)!"
-msgstr ""
+msgstr "'%s' 명령(%s)을 실행할 수 없습니다!"
 
 #: include/class_msgPool.inc:347
 #, php-format
 msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr ""
+msgstr " %s 플러그인에 대해 '%s'명령 (%s)을 실행할 수 없습니다!"
 
 #: include/class_msgPool.inc:362
 #, php-format
 msgid "Value for '%s' is too large!"
-msgstr ""
+msgstr "'%s'의 값이 너무 큽니다!"
 
 #: include/class_msgPool.inc:364
 #, php-format
 msgid "'%s' must be smaller than %s!"
-msgstr ""
+msgstr "'%s'는 %s보다 작아야합니다!"
 
 #: include/class_msgPool.inc:378
 #, php-format
 msgid "Value for '%s' is too small!"
-msgstr ""
+msgstr "'%s'의 값이 너무 작습니다!"
 
 #: include/class_msgPool.inc:380
 #, php-format
 msgid "'%s' must be %d or above!"
-msgstr ""
+msgstr "'%s'는 %d 이상이어야 합니다!"
 
 #: include/class_msgPool.inc:393
 #, php-format
 msgid "'%s' depends on '%s' - please provide both values!"
-msgstr ""
+msgstr "'%s'는 '%s'에 의존합니다 - 두 값을 모두 입력하십시오!"
 
 #: include/class_msgPool.inc:405
 #, php-format
 msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr ""
+msgstr "시스템에 이미 '%s' 속성을 가진 항목이 이미 있습니다!"
 
 #: include/class_msgPool.inc:407
 #, php-format
 msgid "The entry '%s' already use this '%s' attribute!"
-msgstr ""
+msgstr "'%s' 항목은 이미 이 '%s' 속성을 사용합니다!"
 
 #: include/class_msgPool.inc:418
 #, php-format
 msgid "The required field '%s' is empty!"
-msgstr ""
+msgstr "필수 입력란 '%s'이 비어 있습니다!"
 
 #: include/class_msgPool.inc:436
 msgid "Example:"
-msgstr ""
+msgstr "예:"
 
 #: include/class_msgPool.inc:456 include/class_msgPool.inc:460
 #, php-format
 msgid "The field '%s' contains invalid characters"
-msgstr ""
+msgstr "'%s' 필드에 잘못된 문자가 포함되어 있습니다"
 
 #: include/class_msgPool.inc:457
 #, php-format
 msgid "'%s' is not allowed:"
-msgstr ""
+msgstr "'%s'는 허용되지 않습니다 :"
 
 #: include/class_msgPool.inc:457
 #, php-format
 msgid "'%s' are not allowed!"
-msgstr ""
+msgstr "'%s'는 허용되지 않습니다 :"
 
 #: include/class_msgPool.inc:471
 #, php-format
 msgid "Missing %s PHP extension!"
-msgstr ""
+msgstr "%s PHP 확장이 없습니다!"
 
 #: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
 #: setup/setup_migrate_accounts.tpl.c:32
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
 #: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Cancel"
-msgstr ""
+msgstr "취소"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
-msgstr ""
+msgstr "확인"
 
 #: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
 #: setup/setup_migrate_accounts.tpl.c:29
 msgid "Apply"
-msgstr ""
+msgstr "적용"
 
 #: include/class_msgPool.inc:503
 msgid "Save"
-msgstr ""
+msgstr "저장"
 
 #: include/class_msgPool.inc:513
 #, php-format
 msgid "Add"
-msgstr ""
+msgstr "추가"
 
 #: include/class_msgPool.inc:513
 #, php-format
 msgid "Add %s"
-msgstr ""
+msgstr "%s 추가"
 
 #: include/class_msgPool.inc:523
 #: include/simpleplugin/attributes/class_SetAttribute.inc:517
@@ -965,189 +968,191 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclEditionDialog.inc:194
 #, php-format
 msgid "Delete"
-msgstr ""
+msgstr "삭제"
 
 #: include/class_msgPool.inc:523
 #, php-format
 msgid "Delete %s"
-msgstr ""
+msgstr "%s를 삭"
 
 #: include/class_msgPool.inc:533
 #, php-format
 msgid "Edit..."
-msgstr ""
+msgstr "편집..."
 
 #: include/class_msgPool.inc:533
 #, php-format
 msgid "Edit %s..."
-msgstr ""
+msgstr "%s 편집..."
 
 #: include/class_msgPool.inc:541
 msgid "Back"
-msgstr ""
+msgstr "뒤로"
 
 #: include/class_msgPool.inc:570
 #, php-format
 msgid "This account has no valid %s extensions!"
-msgstr ""
+msgstr "이 계정에는 유효한 %s 확장이 없습니다!"
 
 #: include/class_msgPool.inc:583
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
-msgstr ""
+msgstr "이 계정에는 %s 설정이 활성화되어 있습니다. 아래를 클릭하여 비활성화 할 수 있습니다."
 
 #: include/class_msgPool.inc:588
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
-msgstr ""
+msgstr "이 계정에는 %s 설정이 활성화되어 있습니다. 비활성화하려면 먼저 %s 설정을 제거해야 합니다!"
 
 #: include/class_msgPool.inc:604
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
-msgstr ""
+msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 아래를 클릭하여 활성화 할 수 있습니다."
 
 #: include/class_msgPool.inc:606
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
-msgstr ""
+msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 이를 활성화하려면 먼저 %s 설정을 추가해야 합니다!"
 
 #: include/class_msgPool.inc:608
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
-msgstr ""
+msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 이를 활성화하려면 먼저 %s 설정을 비활성화해야 합니다!"
 
 #: include/class_msgPool.inc:619
 #, php-format
 msgid "Add %s settings"
-msgstr ""
+msgstr "%s 설정 추가"
 
 #: include/class_msgPool.inc:630
 #, php-format
 msgid "Remove %s settings"
-msgstr ""
+msgstr "%s 설정 제거"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
 msgid "January"
-msgstr ""
+msgstr "1ì›”"
 
 #: include/class_msgPool.inc:646
 msgid "February"
-msgstr ""
+msgstr "2ì›”"
 
 #: include/class_msgPool.inc:646
 msgid "March"
-msgstr ""
+msgstr "3ì›”"
 
 #: include/class_msgPool.inc:646
 msgid "April"
-msgstr ""
+msgstr "4"
 
 #: include/class_msgPool.inc:647
 msgid "May"
-msgstr ""
+msgstr "5ì›”"
 
 #: include/class_msgPool.inc:647
 msgid "June"
-msgstr ""
+msgstr "6ì›”"
 
 #: include/class_msgPool.inc:647
 msgid "July"
-msgstr ""
+msgstr "7ì›”"
 
 #: include/class_msgPool.inc:647
 msgid "August"
-msgstr ""
+msgstr "8ì›”"
 
 #: include/class_msgPool.inc:647
 msgid "September"
-msgstr ""
+msgstr "9ì›”"
 
 #: include/class_msgPool.inc:648
 msgid "October"
-msgstr ""
+msgstr "10"
 
 #: include/class_msgPool.inc:648
 msgid "November"
-msgstr ""
+msgstr "11ì›”"
 
 #: include/class_msgPool.inc:648
 msgid "December"
-msgstr ""
+msgstr "12ì›”"
 
 #: include/class_msgPool.inc:657
 msgid "Sunday"
-msgstr ""
+msgstr "일요일"
 
 #: include/class_msgPool.inc:657
 msgid "Monday"
-msgstr ""
+msgstr "월요일"
 
 #: include/class_msgPool.inc:657
 msgid "Tuesday"
-msgstr ""
+msgstr "수요일"
 
 #: include/class_msgPool.inc:657
 msgid "Wednesday"
-msgstr ""
+msgstr "수요일"
 
 #: include/class_msgPool.inc:657
 msgid "Thursday"
-msgstr ""
+msgstr "목요일"
 
 #: include/class_msgPool.inc:657
 msgid "Friday"
-msgstr ""
+msgstr "금요일"
 
 #: include/class_msgPool.inc:657
 msgid "Saturday"
-msgstr ""
+msgstr "토요일"
 
 #: include/class_msgPool.inc:674
 msgid "read operation"
-msgstr ""
+msgstr "읽기 조작"
 
 #: include/class_msgPool.inc:674
 msgid "add operation"
-msgstr ""
+msgstr "작업 추가"
 
 #: include/class_msgPool.inc:674
 msgid "modify operation"
-msgstr ""
+msgstr "작업 수정"
 
 #: include/class_msgPool.inc:675
 msgid "delete operation"
-msgstr ""
+msgstr "작업 삭제"
 
 #: include/class_msgPool.inc:675
 msgid "search operation"
-msgstr ""
+msgstr "작업  검색"
 
 #: include/class_msgPool.inc:675
 msgid "authentication"
-msgstr ""
+msgstr "인증"
 
 #: include/class_msgPool.inc:678
 #, php-format
 msgid "LDAP %s failed!"
-msgstr ""
+msgstr "LDAP %s가 실패했습니다!"
 
 #: include/class_msgPool.inc:680
 msgid "LDAP operation failed!"
-msgstr ""
+msgstr "LDAP 작업이 실패했습니다!"
 
 #: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
 #: include/class_SnapshotDialogs.inc:261
@@ -1157,21 +1162,21 @@ msgstr "오브젝트"
 
 #: include/class_msgPool.inc:701
 msgid "Upload failed!"
-msgstr ""
+msgstr "업로드하지 못했습니다!"
 
 #: include/class_msgPool.inc:704
 #, php-format
 msgid "Upload failed: %s"
-msgstr ""
+msgstr "업로드 실패 : %s"
 
 #: include/class_msgPool.inc:715
 msgid "Communication failure with the infrastructure service!"
-msgstr ""
+msgstr "인프라 서비스와의 통신 실패!"
 
 #: include/class_msgPool.inc:717
 #, php-format
 msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
+msgstr "인프라 서비스와의 통신 실패 : %s"
 
 #: include/class_msgPool.inc:730 include/class_msgPool.inc:733
 #, php-format
@@ -1228,12 +1233,12 @@ msgstr ""
 #: include/class_msgPool.inc:818
 #, php-format
 msgid "Checking for %s support"
-msgstr ""
+msgstr "%s 지원 확인"
 
 #: include/class_msgPool.inc:828
 #, php-format
 msgid "Install and activate the %s PHP module."
-msgstr ""
+msgstr "%s PHP 모듈을 설치하고 활성화합니다."
 
 #: include/class_msgPool.inc:838
 #, php-format
@@ -1250,14 +1255,14 @@ msgstr ""
 #: include/class_msgPool.inc:856
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
-msgstr ""
+msgstr "제공된 베이스가 유효하지 않으며 이전 값으로 재설정되었습니다!"
 
 #: include/class_templateHandling.inc:500
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
-msgstr ""
+msgstr "템플릿 필드의 순환적 종속성 : \"%1$s\"는 \"%1$s\"에 이미 종속되어 있으므로 \"%2$s\"은 \"%2$s\"에 종속 될 수 없습니다."
 
 #: include/simpleplugin/simple-select-list.xml:11
 msgid "Please select the desired entries"
@@ -1272,6 +1277,7 @@ msgstr "원하는 항목을 선택하십시오."
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "명칭"
@@ -1291,7 +1297,7 @@ msgstr "설명"
 
 #: include/simpleplugin/class_simpleService.inc:113
 msgid "Get service status"
-msgstr ""
+msgstr "서비스 상태 확인"
 
 #: include/simpleplugin/class_simpleService.inc:114
 msgid "Start service"
@@ -1306,44 +1312,44 @@ msgid "Restart service"
 msgstr "서비스 재시작"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
 msgid "Object base"
-msgstr ""
+msgstr "객체 기반"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
 msgid "Base field value should always be a string"
-msgstr ""
+msgstr "기본 필드 값은 항상 문자열이어야 합니다"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
-msgstr ""
+msgstr "오류, 잘못된 날짜: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "ì‹ "
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "분"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
-msgstr ""
+msgstr "ì´ˆ"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
-msgstr ""
+msgstr "일자"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "시간"
 
@@ -1352,7 +1358,7 @@ msgstr "시간"
 #: include/simpleplugin/attributes/class_FileAttribute.inc:39
 #, php-format
 msgid "Cannot read uploaded file: %s"
-msgstr ""
+msgstr "업로드 한 파일을 읽을 수 없습니다 : %s"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:33
 msgid "file is empty"
@@ -1360,22 +1366,22 @@ msgstr "파일이 비어있음"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
 msgid "file not found"
-msgstr ""
+msgstr "파일을 찾을 수 없습니다"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:39
 msgid "file not readable"
-msgstr ""
+msgstr "읽을 수 없는 파일"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:74
 #, php-format
 msgid "%s (%d bytes)"
-msgstr ""
+msgstr " %s (%d bytes)"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:102
 #: include/simpleplugin/class_Attribute.inc:641
 #, php-format
 msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
+msgstr "%s 속성이 비활성화되어 해당 값을 설정할 수 없습니다."
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:107
 #, php-format
@@ -1425,7 +1431,7 @@ msgstr "제거"
 
 #: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
 msgid "Number"
-msgstr ""
+msgstr "번호"
 
 #: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
 #: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
@@ -1441,7 +1447,7 @@ msgstr ""
 #: plugins/admin/users/user-list.xml:108
 #: plugins/admin/aclrole/class_aclEditionDialog.inc:192
 msgid "Edit"
-msgstr ""
+msgstr "편집"
 
 #: include/simpleplugin/attributes/class_IntAttribute.inc:50
 #, php-format
@@ -1508,19 +1514,19 @@ msgstr ""
 #: include/simpleplugin/attributes/class_StringAttribute.inc:114
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
-msgstr ""
+msgstr "StringAttribute \"%s\"이 호환되지 않는 값으로 설정되었습니다."
 
 #: include/simpleplugin/class_simplePlugin.inc:345
 msgid "Template settings"
-msgstr ""
+msgstr "템플릿 설정"
 
 #: include/simpleplugin/class_simplePlugin.inc:348
 msgid "This is the name of the template"
-msgstr ""
+msgstr "이것은 템플릿의 이름입니다"
 
 #: include/simpleplugin/class_simplePlugin.inc:468
 msgid "Only main tab can compute dn"
-msgstr ""
+msgstr "기본 탭만 DN을 계산할 수 있습니다"
 
 #: include/simpleplugin/class_simplePlugin.inc:475
 #, php-format
@@ -1541,27 +1547,29 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:1326
 #, php-format
 msgid "The entry %s is not existing"
-msgstr ""
+msgstr "%s 항목이 없습니다."
 
 #: include/simpleplugin/class_simplePlugin.inc:1525
 msgid ""
 "The object has changed since opened in FusionDirectory. All changes that may"
 " be done by others will get lost if you save this entry!"
 msgstr ""
+"FusionDirectory에서 열린 이후 개체가 변경되었습니다. 이 항목을 저장하면 다른 사용자가 수행 할 수 있는 모든 변경 사항이 "
+"손실됩니다!"
 
 #: include/simpleplugin/class_simplePlugin.inc:1789
 #, php-format
 msgid "Service \"%s\""
-msgstr ""
+msgstr "서비스 \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:1791
 #, php-format
 msgid "Tab \"%s\""
-msgstr ""
+msgstr "탭 \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:1854
 msgid "Failed to create a unique DN"
-msgstr ""
+msgstr "고유한 DN을 만들지 못했습니다."
 
 #: include/simpleplugin/class_simplePlugin.inc:1946
 #, php-format
@@ -1592,64 +1600,64 @@ msgstr ""
 
 #: include/simpleplugin/class_helpersAttribute.inc:268
 msgid "B"
-msgstr ""
+msgstr "B"
 
 #: include/simpleplugin/class_helpersAttribute.inc:269
 msgid "KiB"
-msgstr ""
+msgstr "KiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:270
 msgid "MiB"
-msgstr ""
+msgstr "MiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:271
 msgid "GiB"
-msgstr ""
+msgstr "GiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:272
 msgid "TiB"
-msgstr ""
+msgstr "TiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:286
 msgid "seconds"
-msgstr ""
+msgstr "ì´ˆ"
 
 #: include/simpleplugin/class_helpersAttribute.inc:287
 msgid "minutes"
-msgstr ""
+msgstr "분"
 
 #: include/simpleplugin/class_helpersAttribute.inc:288
 msgid "hours"
-msgstr ""
+msgstr "시"
 
 #: include/simpleplugin/class_helpersAttribute.inc:289
 msgid "days"
-msgstr ""
+msgstr "일"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
 #, php-format
 msgid "POSIX group %s"
-msgstr ""
+msgstr "POSIX 그룹 %s"
 
 #: include/simpleplugin/class_dialogAttributes.inc:519
 #: plugins/config/class_configInLdap.inc:479
 #, php-format
 msgid "Role %s"
-msgstr ""
+msgstr "ì—­í•  %s"
 
 #: include/simpleplugin/class_dialogAttributes.inc:521
 #: plugins/config/class_configInLdap.inc:472
 #, php-format
 msgid "Group %s"
-msgstr ""
+msgstr "그룹 %s"
 
 #: include/simpleplugin/class_dialogAttributes.inc:559
 msgid "Group of user"
-msgstr ""
+msgstr "사용자 그룹"
 
 #: include/simpleplugin/class_dialogAttributes.inc:760
 msgid "Unknown"
@@ -1658,63 +1666,63 @@ msgstr "알 수 없음"
 #: include/simpleplugin/class_simpleManagement.inc:301
 #: plugins/admin/users/user-list.xml:87
 msgid "From template"
-msgstr ""
+msgstr "템플릿에서"
 
 #: include/simpleplugin/class_simpleManagement.inc:329
 #, php-format
 msgid "%s template"
-msgstr ""
+msgstr "%s 템플릿"
 
 #: include/simpleplugin/class_simpleManagement.inc:526
 #: include/simpleplugin/class_simpleManagement.inc:532
 #: plugins/admin/groups/class_groupManagement.inc:355
 #, php-format
 msgid "Show %s"
-msgstr ""
+msgstr "보기 %s"
 
 #: include/simpleplugin/class_simpleManagement.inc:563
 msgid "Filter error"
-msgstr ""
+msgstr "필터 오류"
 
 #: include/simpleplugin/class_simpleManagement.inc:563
 msgid "The filter is incomplete!"
-msgstr ""
+msgstr "필터가 불완전합니다!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "권한 오류"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
-msgstr ""
+msgstr "%s에 대한 스냅샷을 생성 할 수 없습니다."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
-msgstr ""
+msgstr "%s에 대한 스냅샷을 복원 할 수 없습니다."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
+msgstr "%s에 대한 스냅 샷을 삭제할 수 없습니다."
 
 #: include/simpleplugin/simple-list.xml:11
 msgid "NO LABEL"
-msgstr ""
+msgstr "라벨 없음"
 
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "생성"
 
 #: include/class_acl.inc:35 include/class_acl.inc:39
 msgid "ACL"
-msgstr ""
+msgstr "ACL"
 
 #: include/class_acl.inc:36
 msgid "Manage access control lists"
@@ -1723,7 +1731,7 @@ msgstr ""
 #: include/class_acl.inc:39
 #: plugins/admin/aclrole/class_aclRoleManagement.inc:34
 msgid "ACL roles"
-msgstr ""
+msgstr "ACL ì—­í• "
 
 #: include/class_acl.inc:118
 #, php-format
@@ -1740,16 +1748,11 @@ msgstr ""
 #: include/class_acl.inc:173
 #, php-format
 msgid "All users"
-msgstr ""
-
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
+msgstr "모든 사용자들"
 
 #: include/class_ldap.inc:277
 msgid "Performance warning"
-msgstr ""
+msgstr "성능 경고"
 
 #: include/class_ldap.inc:277
 #, php-format
@@ -1813,11 +1816,11 @@ msgstr ""
 
 #: include/class_SnapshotDialogs.inc:40
 msgid "Creating an object snapshot"
-msgstr ""
+msgstr "개체 스냅샷 만들기"
 
 #: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
 msgid "DN of the object you are creating a snapshot of"
-msgstr ""
+msgstr "스냅샷을 생성할 개체의 DN"
 
 #: include/class_SnapshotDialogs.inc:47
 msgid "Timestamp"
@@ -1825,80 +1828,80 @@ msgstr "타임스탬프"
 
 #: include/class_SnapshotDialogs.inc:47
 msgid "Timestamp of this snapshot creation"
-msgstr ""
+msgstr "이 스냅샷 생성의 타임스탬프"
 
 #: include/class_SnapshotDialogs.inc:51
 msgid "Reason"
-msgstr ""
+msgstr "사유"
 
 #: include/class_SnapshotDialogs.inc:51
 msgid "Reason for creating this snapshot"
-msgstr ""
+msgstr "이 스냅샷을 만든 이유"
 
 #: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
 msgid "Y-m-d, H:i:s"
-msgstr ""
+msgstr "Y-m-d, H:i:s"
 
 #: include/class_SnapshotDialogs.inc:142
 msgid "DN"
-msgstr ""
+msgstr "DN"
 
 #: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
 msgid "Restore"
-msgstr ""
+msgstr "복원"
 
 #: include/class_SnapshotDialogs.inc:257
 msgid "Restoring snapshots"
-msgstr ""
+msgstr "스냅샷 복원"
 
 #: include/class_SnapshotDialogs.inc:265
 msgid "Snapshots"
-msgstr ""
+msgstr "스냅샷"
 
 #: include/class_SnapshotDialogs.inc:265
 msgid "Existing snapshots for this object"
-msgstr ""
+msgstr "이 객체의 기존 스냅샷"
 
 #: plugins/admin/departments/dep-list.xml:9
 msgid "List of departments"
-msgstr ""
+msgstr "부서리스트"
 
 #: plugins/admin/departments/dep-list.xml:21
 #: plugins/admin/departments/class_department.inc:33
 #: plugins/admin/departments/class_department.inc:39
 msgid "Department"
-msgstr ""
+msgstr "부서"
 
 #: plugins/admin/departments/class_domain.inc:30
 #: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
-msgstr "도메"
+msgstr "도메인"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
-msgstr ""
+msgstr "도메인"
 
 #: plugins/admin/departments/class_organization.inc:30
 #: plugins/admin/departments/class_organization.inc:31
 #: plugins/admin/departments/class_organization.inc:34
 #: plugins/personal/generic/class_user.inc:432
 msgid "Organization"
-msgstr ""
+msgstr "조직"
 
 #: plugins/admin/departments/class_organization.inc:51
 msgid "organization"
-msgstr ""
+msgstr "조직"
 
 #: plugins/admin/departments/class_department.inc:34
 #: plugins/admin/departments/class_department.inc:35
 #: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Departments"
-msgstr ""
+msgstr "부서"
 
 #: plugins/admin/departments/class_department.inc:57
 msgid "department"
-msgstr ""
+msgstr "부서"
 
 #: plugins/admin/departments/class_department.inc:63
 #: plugins/admin/groups/class_ogroup.inc:211
@@ -1912,45 +1915,45 @@ msgstr "설정"
 #: plugins/admin/departments/class_department.inc:67
 #, php-format
 msgid "Name of %s"
-msgstr ""
+msgstr "%s의 이름"
 
 #: plugins/admin/departments/class_department.inc:67
 #, php-format
 msgid "A name for this %s"
-msgstr ""
+msgstr "이 %s의 이름"
 
 #: plugins/admin/departments/class_department.inc:72
 #, php-format
 msgid "Short description of this %s"
-msgstr ""
+msgstr "이 %s에 대한 간단한 설명"
 
 #: plugins/admin/departments/class_department.inc:76
 msgid "Category"
-msgstr ""
+msgstr "카테고리"
 
 #: plugins/admin/departments/class_department.inc:76
 #, php-format
 msgid "Category of this %s"
-msgstr ""
+msgstr "이 %s의 카테고리"
 
 #: plugins/admin/departments/class_department.inc:80
 msgid "Website"
-msgstr ""
+msgstr "웹사이트"
 
 #: plugins/admin/departments/class_department.inc:80
 #, php-format
 msgid "Website of this %s"
-msgstr ""
+msgstr "이 %s의 웹 사이트"
 
 #: plugins/admin/departments/class_department.inc:84
 #: plugins/personal/generic/class_user.inc:452
 msgid "Manager"
-msgstr ""
+msgstr "관리자"
 
 #: plugins/admin/departments/class_department.inc:84
 #, php-format
 msgid "Manager of this %s"
-msgstr ""
+msgstr "이 %s의 관리자"
 
 #: plugins/admin/departments/class_department.inc:90
 #: plugins/admin/departments/class_department.inc:96
@@ -1978,7 +1981,7 @@ msgstr "주소"
 #: plugins/admin/departments/class_department.inc:102
 #, php-format
 msgid "A postal address for this %s"
-msgstr ""
+msgstr "이 %s의 우편 주소"
 
 #: plugins/admin/departments/class_department.inc:106
 #: plugins/personal/generic/class_user.inc:358
@@ -1987,52 +1990,52 @@ msgstr "전화번호"
 
 #: plugins/admin/departments/class_department.inc:106
 msgid "Telephone number"
-msgstr ""
+msgstr "전화번호"
 
 #: plugins/admin/departments/class_department.inc:112
 #: plugins/personal/generic/class_user.inc:374
 msgid "Fax"
-msgstr ""
+msgstr "팩스"
 
 #: plugins/admin/departments/class_department.inc:112
 msgid "Facsimile telephone number"
-msgstr ""
+msgstr "팩시밀리 전화번호"
 
 #: plugins/admin/departments/class_dcObject.inc:30
 #: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
-msgstr ""
+msgstr "도메인 구성 요소"
 
 #: plugins/admin/departments/class_dcObject.inc:51
 msgid "domain component"
-msgstr ""
+msgstr "도메인 구성 요소"
 
 #: plugins/admin/departments/class_country.inc:50
 msgid "country"
-msgstr ""
+msgstr "êµ­ê°€"
 
 #: plugins/admin/departments/class_country.inc:56
 msgid "Country code"
-msgstr ""
+msgstr "국가 코드"
 
 #: plugins/admin/departments/class_country.inc:56
 msgid "A two-letter country code from ISO 3166"
-msgstr ""
+msgstr "ISO 3166의 2자리 국가 코드"
 
 #: plugins/admin/departments/class_locality.inc:30
 #: plugins/admin/departments/class_locality.inc:31
 #: plugins/admin/departments/class_locality.inc:34
 msgid "Locality"
-msgstr ""
+msgstr "소재지"
 
 #: plugins/admin/departments/class_locality.inc:51
 msgid "locality"
-msgstr ""
+msgstr "소재지"
 
 #: plugins/admin/departments/class_departmentManagement.inc:34
 msgid "Manage departments"
-msgstr ""
+msgstr "부서 관리"
 
 #: plugins/admin/departments/class_departmentManagement.inc:35
 msgid ""
@@ -2055,7 +2058,7 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:37
 msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
+msgstr "객체 그룹, POSIX 그룹 및 역할을 관리할 수 ​​있습니다"
 
 #: plugins/admin/groups/class_groupManagement.inc:155
 #: plugins/admin/groups/class_groupManagement.inc:158
@@ -2090,13 +2093,13 @@ msgstr "실행 된 작업"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
-msgstr "오류없이 호출된 작업 (결과는 \"%s\")"
+msgid "Action called without error(results were \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
-msgstr "오류없이 호출된 작업 (결과는 \"%s\")"
+msgid "Action called without error(result was \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
 #: plugins/admin/groups/class_roleGeneric.inc:55
@@ -2104,7 +2107,7 @@ msgstr "오류없이 호출된 작업 (결과는 \"%s\")"
 #: plugins/admin/acl/class_aclAssignment.inc:47
 #: plugins/admin/aclrole/class_aclRole.inc:77
 msgid "Role"
-msgstr ""
+msgstr "ì—­í• "
 
 #: plugins/admin/groups/class_groupManagement.inc:263
 msgid "Edit role properties"
@@ -2124,7 +2127,7 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:323
 msgid "Show organizational roles"
-msgstr ""
+msgstr "조직 역할 표시"
 
 #: plugins/admin/groups/class_groupManagement.inc:324
 msgid "Show application groups"
@@ -2180,12 +2183,12 @@ msgstr ""
 #: plugins/admin/groups/class_ogroup.inc:61
 #, php-format
 msgid "Unknown type : %s"
-msgstr ""
+msgstr "알 수없는 유형 : %s"
 
 #: plugins/admin/groups/class_ogroup.inc:69
 #, php-format
 msgid "Non existing dn: %s"
-msgstr ""
+msgstr "존재하지 않는 DN : %s"
 
 #: plugins/admin/groups/class_ogroup.inc:175
 msgid "Object group"
@@ -2287,7 +2290,7 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:65
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:71
 msgid "Phone number"
-msgstr ""
+msgstr "전화 번호"
 
 #: plugins/admin/groups/class_roleGeneric.inc:99
 msgid "Fax number"
@@ -2320,7 +2323,7 @@ msgstr ""
 
 #: plugins/admin/acl/class_aclAssignment.inc:44
 msgid "Subtree"
-msgstr ""
+msgstr "서브 트리"
 
 #: plugins/admin/acl/class_aclAssignment.inc:44
 msgid "Base only"
@@ -2340,7 +2343,7 @@ msgstr ""
 
 #: plugins/admin/acl/class_aclAssignment.inc:56
 msgid "Members"
-msgstr ""
+msgstr "멤"
 
 #: plugins/admin/acl/class_aclAssignment.inc:56
 msgid "Users or groups to assign this role to."
@@ -2353,7 +2356,7 @@ msgstr ""
 
 #: plugins/admin/acl/class_aclAssignment.inc:270
 msgid "ACL assignment"
-msgstr ""
+msgstr "ACL 할당"
 
 #: plugins/admin/acl/class_aclAssignment.inc:284
 #: plugins/admin/acl/class_aclManagement.inc:226
@@ -2362,7 +2365,7 @@ msgstr ""
 
 #: plugins/admin/acl/class_aclAssignment.inc:285
 msgid "Access control roles assignment"
-msgstr ""
+msgstr "액세스 제어 역할 할당"
 
 #: plugins/admin/acl/class_aclAssignment.inc:304
 msgid "Assignments"
@@ -2381,7 +2384,7 @@ msgstr ""
 #: plugins/admin/acl/class_aclManagement.inc:32
 #: plugins/admin/acl/class_aclManagement.inc:45
 msgid "ACL assignment creation"
-msgstr ""
+msgstr "ACL 할당 생성"
 
 #: plugins/admin/acl/class_aclManagement.inc:33
 msgid "Create an ACL assignment on an arbitrary dn"
@@ -2439,7 +2442,7 @@ msgstr ""
 
 #: plugins/admin/users/user-list.xml:146
 msgid "Apply template"
-msgstr ""
+msgstr "템플릿 적용"
 
 #: plugins/admin/users/user-list.xml:177
 msgid "New user from template"
@@ -2459,9 +2462,9 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
-msgstr ""
+msgstr "사용자"
 
 #: plugins/admin/users/class_userManagement.inc:43
 msgid "Manage users"
@@ -2501,7 +2504,7 @@ msgstr ""
 #: plugins/admin/users/class_userManagement.inc:255
 #: plugins/personal/generic/class_user.inc:285
 msgid "User account"
-msgstr ""
+msgstr "사용자 계정"
 
 #: plugins/admin/users/class_userManagement.inc:255
 #: plugins/personal/generic/class_user.inc:279
@@ -2531,7 +2534,7 @@ msgstr ""
 
 #: plugins/admin/aclrole/class_aclRole.inc:109
 msgid "ACLs"
-msgstr ""
+msgstr "ACLs"
 
 #: plugins/admin/aclrole/class_aclRole.inc:113
 msgid "ACLs which are part of this group"
@@ -2607,7 +2610,7 @@ msgstr ""
 
 #: plugins/admin/aclrole/class_aclRoleManagement.inc:36
 msgid "Manage ACL roles"
-msgstr ""
+msgstr "ACL 역할 관리"
 
 #: plugins/config/class_mainPluginsConfig.inc:28
 msgid "Plugins configuration"
@@ -2615,7 +2618,7 @@ msgstr ""
 
 #: plugins/config/class_mainPluginsConfig.inc:29
 msgid "FusionDirectory plugins configuration"
-msgstr ""
+msgstr "FusionDirectory 플러그인 구성"
 
 #: plugins/config/class_mainPluginsConfig.inc:42
 msgid "Object groups"
@@ -2641,11 +2644,11 @@ msgstr ""
 msgid ""
 "Useful if you add a hook using password value when SASL user passwords are "
 "edited"
-msgstr ""
+msgstr "SASL 사용자 비밀번호를 편집할 때 비밀번호 값을 사용하여 hook을 추가하는 경우 유용"
 
 #: plugins/config/class_dashBoardConfig.inc:28
 msgid "Dashboard configuration"
-msgstr ""
+msgstr "대시보드 설정"
 
 #: plugins/config/class_dashBoardConfig.inc:29
 msgid "FusionDirectory dashboard plugin configuration"
@@ -2673,7 +2676,7 @@ msgstr ""
 
 #: plugins/config/class_dashBoardConfig.inc:59
 msgid "Dashboard expired users"
-msgstr ""
+msgstr "대시보드 만료된 사용자"
 
 #: plugins/config/class_dashBoardConfig.inc:62
 msgid "Number of days"
@@ -2696,7 +2699,7 @@ msgstr ""
 #: plugins/config/class_recoveryConfig.inc:28
 #: html/class_passwordRecovery.inc:357
 msgid "Password recovery"
-msgstr ""
+msgstr "비밀번호 복구"
 
 #: plugins/config/class_recoveryConfig.inc:29
 msgid "Settings for the password recovery feature"
@@ -2708,7 +2711,7 @@ msgstr ""
 
 #: plugins/config/class_recoveryConfig.inc:45
 msgid "Activate password recovery"
-msgstr ""
+msgstr "비밀번호 복구 활성화"
 
 #: plugins/config/class_recoveryConfig.inc:46
 msgid "Whether to activate or not password recovery feature"
@@ -2864,7 +2867,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:96
 msgid "Theme"
-msgstr ""
+msgstr "테마"
 
 #: plugins/config/class_configInLdap.inc:96
 msgid "Theme to be used"
@@ -2910,7 +2913,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:130
 msgid "Schema validation"
-msgstr ""
+msgstr "스키마 검증"
 
 #: plugins/config/class_configInLdap.inc:131
 msgid "Enables schema checking during login."
@@ -2928,7 +2931,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:141
 msgid "Snapshot base"
-msgstr ""
+msgstr "스냅샷 베이스"
 
 #: plugins/config/class_configInLdap.inc:141
 msgid "The base where snapshots should be stored inside of the LDAP."
@@ -2993,7 +2996,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:180
 msgid "SASL Realm"
-msgstr ""
+msgstr "SASL 영역"
 
 #: plugins/config/class_configInLdap.inc:184
 msgid "SASL Exop"
@@ -3084,7 +3087,7 @@ msgstr ""
 #: plugins/config/class_configInLdap.inc:246
 #: plugins/config/class_configInLdap.inc:261
 msgid "CA certificate path"
-msgstr ""
+msgstr "CA 인증서 경로"
 
 #: plugins/config/class_configInLdap.inc:246
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
@@ -3092,11 +3095,11 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:253
 msgid "CAS"
-msgstr ""
+msgstr "CAS"
 
 #: plugins/config/class_configInLdap.inc:256
 msgid "Enable CAS"
-msgstr ""
+msgstr "CAS 활성화"
 
 #: plugins/config/class_configInLdap.inc:256
 msgid "CAS login will be used instead of LDAP bind"
@@ -3104,7 +3107,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:261
 msgid "Path to the CA certificate of the CAS server"
-msgstr ""
+msgstr "CAS 서버의 CA 인증서 경로"
 
 #: plugins/config/class_configInLdap.inc:266
 msgid "Host"
@@ -3148,7 +3151,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:292
 msgid "The pattern to use to build the common name field"
-msgstr ""
+msgstr "공통 이름 필드를 빌드하는 데 사용할 패턴"
 
 #: plugins/config/class_configInLdap.inc:297
 msgid "Strict naming policy"
@@ -3164,7 +3167,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:303
 msgid "The branch where users are stored."
-msgstr ""
+msgstr "사용자가 저장된 브랜치."
 
 #: plugins/config/class_configInLdap.inc:308
 msgid "ACL role RDN"
@@ -3279,7 +3282,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:381
 msgid "Use this to hide some menu entry to specific groups of users"
-msgstr ""
+msgstr "특정 사용자 그룹에게 일부 메뉴 항목을 숨기려면이 옵션을 사용하십시오."
 
 #: plugins/config/class_configInLdap.inc:385
 msgid "Group or role"
@@ -3296,11 +3299,11 @@ msgstr ""
 #: plugins/config/class_configInLdap.inc:405
 #: plugins/config/class_configInLdap.inc:433
 msgid "Hooks"
-msgstr ""
+msgstr "Hooks"
 
 #: plugins/config/class_configInLdap.inc:410
 msgid "Hooks that are called when specific actions happens"
-msgstr ""
+msgstr "특정 액션이 발생할 때 호출되는 후크"
 
 #: plugins/config/class_configInLdap.inc:414
 msgid "Tab"
@@ -3308,7 +3311,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:414
 msgid "The tab that this hook concerns"
-msgstr ""
+msgstr "이 훅에 관한 탭"
 
 #: plugins/config/class_configInLdap.inc:419
 msgid "When to call this command"
@@ -3324,7 +3327,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:440
 msgid "Display hook output"
-msgstr ""
+msgstr "Hook 출력 표"
 
 #: plugins/config/class_configInLdap.inc:441
 msgid ""
@@ -3352,7 +3355,7 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
-msgstr ""
+msgstr "만료된 계정"
 
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:66
 msgid "Expiration date"
@@ -3361,7 +3364,7 @@ msgstr "만료일자"
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:70
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
-msgstr ""
+msgstr "이메일"
 
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:91
 #, php-format
@@ -3398,7 +3401,7 @@ msgstr ""
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
 msgid "Passwords"
-msgstr ""
+msgstr "비밀번호"
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
 msgid "Statistics about passwords"
@@ -3419,7 +3422,7 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoard.inc:28
 #: plugins/addons/dashboard/class_dashBoard.inc:33
 msgid "Dashboard"
-msgstr ""
+msgstr "대시보"
 
 #: plugins/addons/dashboard/class_dashBoard.inc:29
 msgid "Statistics and various information"
@@ -3427,7 +3430,7 @@ msgstr "통계 및 각종 정보"
 
 #: plugins/addons/dashboard/class_dashBoard.inc:38
 msgid "Reporting"
-msgstr ""
+msgstr "ë³´ê³ "
 
 #: plugins/addons/dashboard/class_dashBoard.inc:42
 msgid "See dashboard"
@@ -3445,6 +3448,118 @@ msgid ""
 "error: %s"
 msgstr "다음 오류로 인해 유형 \"%s\"의 통계를 계산할 수 없습니다 : %s"
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "아이디"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "가입 유형"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "시작일자"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "종료일자"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "가져오기"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3457,11 +3572,11 @@ msgstr ""
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
-msgstr ""
+msgstr "역할 멤버십"
 
 #: plugins/personal/generic/class_user.inc:46
 msgid "Password method"
-msgstr ""
+msgstr "비밀번호 방법"
 
 #: plugins/personal/generic/class_user.inc:46
 msgid "Password hash method to use"
@@ -3478,7 +3593,7 @@ msgstr "패스워드"
 
 #: plugins/personal/generic/class_user.inc:51
 msgid "Password (Leave empty if you do not wish to change it)"
-msgstr ""
+msgstr "비밀번호 (변경하지 않으려면 비워 두십시오)"
 
 #: plugins/personal/generic/class_user.inc:55
 msgid "Password again"
@@ -3510,11 +3625,11 @@ msgstr "성"
 
 #: plugins/personal/generic/class_user.inc:322
 msgid "First name of this user"
-msgstr ""
+msgstr "이 사용자의 이름"
 
 #: plugins/personal/generic/class_user.inc:327
 msgid "Short description of the user"
-msgstr ""
+msgstr "사용자에 대한 간단한 설명"
 
 #: plugins/personal/generic/class_user.inc:331
 msgid "Picture"
@@ -3558,7 +3673,7 @@ msgstr "호출기"
 
 #: plugins/personal/generic/class_user.inc:370
 msgid "Business pager number"
-msgstr ""
+msgstr "사업자 호출기 번호"
 
 #: plugins/personal/generic/class_user.inc:374
 msgid "Business fax number"
@@ -3570,11 +3685,11 @@ msgstr ""
 
 #: plugins/personal/generic/class_user.inc:378
 msgid "Personal homepage"
-msgstr ""
+msgstr "개인 홈페이지"
 
 #: plugins/personal/generic/class_user.inc:384
 msgid "Account information"
-msgstr ""
+msgstr "계정 정보"
 
 #: plugins/personal/generic/class_user.inc:389
 msgid "Login of this user"
@@ -3623,7 +3738,7 @@ msgstr ""
 
 #: plugins/personal/generic/class_user.inc:427
 msgid "Title"
-msgstr ""
+msgstr "제목"
 
 #: plugins/personal/generic/class_user.inc:427
 msgid ""
@@ -3740,7 +3855,7 @@ msgstr ""
 
 #: setup/class_setup.inc:194
 msgid "Completed"
-msgstr ""
+msgstr "완료"
 
 #: setup/class_setup.inc:237
 msgid "Next"
@@ -3759,134 +3874,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
-msgstr ""
+msgstr "LDAP 서버 목록에 표시할 연결의 이름"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
-msgstr ""
+msgstr "LDAP 서버에 접속하기 위한 URI. 일반적으로 ldap://로 시작합니다"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
-msgstr ""
+msgstr "관리자 DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "상태"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "재시도"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
-msgstr ""
+msgstr "리프레시"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3899,7 +4012,7 @@ msgstr ""
 
 #: setup/class_setupStepChecks.inc:67
 msgid "Checking PHP version"
-msgstr ""
+msgstr "PHP 버전 확인"
 
 #: setup/class_setupStepChecks.inc:68
 #, php-format
@@ -3989,314 +4102,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
-msgstr ""
+msgstr "끄"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
-msgstr ""
+msgstr "실패"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
-msgstr ""
+msgstr "설치를 확인하십시오."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "그룹"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
-msgstr ""
+msgstr "ì—­í• "
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4384,17 +4476,17 @@ msgstr "로그인 계정 \"%s\"이 여러 개 있습니다."
 #: html/class_passwordRecovery.inc:517
 #, php-format
 msgid "There is no account using email \"%s\""
-msgstr ""
+msgstr "\"%s\" 이메일을 사용하는 계정이 없습니다."
 
 #: html/class_passwordRecovery.inc:520
 #, php-format
 msgid "There are several accounts using email \"%s\""
-msgstr ""
+msgstr "\"%s\" 이메일을 사용하는 계정이 여러 개 있습니다."
 
 #: html/class_passwordRecovery.inc:528
 #, php-format
 msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
+msgstr "이메일 \"%s\"을 사용하는 사용자가 잠겨 있습니다. 관리자에게 문의하십시오."
 
 #: html/class_passwordRecovery.inc:583
 msgid "Contact your administrator, there was a problem with mail server"
@@ -4406,7 +4498,7 @@ msgstr "토큰이 유효하지 않습니다."
 
 #: html/class_passwordRecovery.inc:660
 msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
+msgstr "메일 서버에 문제가 있습니다. 확인 이메일이 전송되지 않았습니다."
 
 #: html/main.php:113
 msgid "PHP configuration"
@@ -4420,7 +4512,7 @@ msgstr ""
 
 #: html/main.php:140
 msgid "Password change"
-msgstr ""
+msgstr "비빌번호 변경"
 
 #: html/main.php:140
 msgid "Your password is about to expire, please change your password!"
@@ -4428,7 +4520,7 @@ msgstr ""
 
 #: html/main.php:156
 msgid "Your password has expired, please set a new one."
-msgstr ""
+msgstr "비밀번호가 만료되었습니다. 새 비밀번호를 설정하십시오."
 
 #: html/main.php:206
 msgid "Running out of memory!"
@@ -4436,7 +4528,7 @@ msgstr ""
 
 #: html/main.php:249
 msgid "User ACL checks disabled"
-msgstr ""
+msgstr "사용자 ACL 검사 비활성화"
 
 #: html/main.php:287
 msgid "Plugin"
@@ -4451,7 +4543,7 @@ msgstr ""
 
 #: html/main.php:303
 msgid "Configuration Error"
-msgstr ""
+msgstr "설정 오류"
 
 #: html/main.php:304
 #, php-format
@@ -4464,7 +4556,7 @@ msgstr ""
 #: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
 #: ihtml/themes/breezy/login.tpl.c:38
 msgid "Sign in"
-msgstr ""
+msgstr "로그인"
 
 #: html/index.php:67
 msgid ""
@@ -4486,7 +4578,7 @@ msgstr ""
 #: html/index.php:178
 #, php-format
 msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr ""
+msgstr "컴파일 디렉토리로 지정된 \"%s\" 디렉토리에 액세스 할 수 없습니다!"
 
 #: html/index.php:216
 msgid "Your FusionDirectory session has expired!"
@@ -4495,15 +4587,15 @@ msgstr ""
 #: html/index.php:219
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
-msgstr ""
+msgstr "잘못된 플러그인 매개 변수 \"%s\"!"
 
 #: html/index.php:222
 msgid "No session found!"
-msgstr ""
+msgstr "세션이 없습니다!"
 
 #: html/index.php:258
 msgid "LDAP schema check reported errors:"
-msgstr ""
+msgstr "LDAP 스키마 검사에서 보고된 오류 :"
 
 #: html/index.php:260
 msgid "LDAP schema error"
@@ -4511,11 +4603,11 @@ msgstr ""
 
 #: html/index.php:287
 msgid "Please specify a valid username!"
-msgstr ""
+msgstr "유효한 사용자이름을 지정하십시오!"
 
 #: html/index.php:290
 msgid "Please specify your password!"
-msgstr ""
+msgstr "암호를 지정하십시오!"
 
 #: html/index.php:309
 msgid "Please check the username/password combination."
@@ -4523,29 +4615,29 @@ msgstr ""
 
 #: html/index.php:344
 msgid "Account locked. Please contact your system administrator!"
-msgstr ""
+msgstr "계정이 잠겼습니다. 시스템 관리자에게 문의하십시오!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
-msgstr ""
+msgstr "HTTP 헤더 \"%s\"에 값이 없습니다."
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
+msgstr "헤더 사용자 \"%s\"를 LDAP에서 찾을 수 없습니다."
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
+msgstr "사용자 \"%s\"로 로그인 시 오류가 발생했습니다: %s"
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
+msgstr "LDAP에서 CAS 사용자 \"%s\"를 찾을 수 없습니다."
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4605,7 +4697,7 @@ msgstr ""
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
 msgid "Manager concerned"
-msgstr ""
+msgstr "관심있는 관리자"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:14
 msgid "There is one account expiring in the next %1 days"
@@ -4719,11 +4811,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
@@ -4790,29 +4886,30 @@ msgstr ""
 
 #: setup/setup_migrate.tpl.c:5
 msgid "Check again"
-msgstr ""
+msgstr "다시 확인"
 
 #: setup/setup_finish.tpl.c:2
 msgid "Create your configuration file"
-msgstr ""
+msgstr "구성 파일 작성"
 
 #: setup/setup_finish.tpl.c:5
 msgid "Run %1 to put the correct right on fusiondirectory.conf"
-msgstr ""
+msgstr "fusiondirectory.conf에 올바른 권한을 설정하려면 %1을 실행하십시오."
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
-msgstr ""
+msgstr "구성 다운로드"
 
 #: setup/setup_finish.tpl.c:11
 msgid "Status: "
-msgstr ""
+msgstr "상태:"
 
 #: setup/setup_migrate_accounts.tpl.c:2
 msgid ""
 "This dialog allows moving a couple of entries to the configured tree. Doing "
 "this may straighten your LDAP service."
 msgstr ""
+"이 대화 상자에서는 몇 개의 항목을 구성된 트리로 이동할 수 있습니다. 이 작업을 수행하면 LDAP 서비스가 향상 될 수 있습니다."
 
 #: setup/setup_migrate_accounts.tpl.c:5
 msgid ""
@@ -4820,10 +4917,12 @@ msgid ""
 "entries. The FusionDirectory setup can't migrate references, so you may want"
 " to cancel the migration in this case."
 msgstr ""
+"이 옵션에주의하십시오! 이러한 항목을 가리키는 참조가 있을 수 있습니다. FusionDirectory 설정은 참조를 마이그레이션 할 수 "
+"없으므로 이 경우 마이그레이션을 취소 할 수 있습니다."
 
 #: setup/setup_migrate_accounts.tpl.c:8
 msgid "Move selected entries into this tree"
-msgstr ""
+msgstr "선택한 항목을 이 트리로 이동"
 
 #: setup/setup_migrate_accounts.tpl.c:11
 msgid ""
@@ -4831,34 +4930,38 @@ msgid ""
 " If you want to change this for a couple of entries only, just select them "
 "and use the 'Migrate' button below."
 msgstr ""
+"나열된 항목은 현재 FusionDirectory 인터페이스에서 보이지 않습니다. 몇 개의 항목에 대해서만 이를 변경하려면 해당 항목을 "
+"선택하고 아래의 '마이그레이션' 버튼을 사용하십시오."
 
 #: setup/setup_migrate_accounts.tpl.c:14
 msgid ""
 "If you want to know what will be done when migrating the selected entries, "
 "use the 'Show changes' button to see the LDIF."
-msgstr ""
+msgstr "선택한 항목을 마이그레이션 할 때 수행 할 작업을 알려면 '변경사항 표시' 버튼을 사용하여 LDIF를 확인하십시오."
 
 #: setup/setup_migrate_accounts.tpl.c:26
 msgid "Show changes"
-msgstr ""
+msgstr "변경사항 표시"
 
 #: ihtml/themes/legacy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:2
 msgid "Lost password"
-msgstr ""
+msgstr "비밀번호 분실"
 
 #: ihtml/themes/legacy/recovery.tpl.c:5 ihtml/themes/breezy/recovery.tpl.c:5
 msgid "Information to reset password for %1 has been sent to email address %2"
-msgstr ""
+msgstr "%1 의 비밀번호를 재설정하는 정보가 이메일 주소 %2 로 전송되었습니다"
 
 #: ihtml/themes/legacy/recovery.tpl.c:8 ihtml/themes/breezy/recovery.tpl.c:8
 msgid "Warning : this email is only valid for %1 minutes."
-msgstr ""
+msgstr "경고 : 이 이메일은 %1 분 동안 만 유효합니다."
 
 #: ihtml/themes/legacy/recovery.tpl.c:11 ihtml/themes/breezy/recovery.tpl.c:11
 msgid ""
 "This dialog provides a simple way to change your password.<br/> Enter the "
 "new password (twice) in the fields below and press the 'Change' button."
 msgstr ""
+"이 대화 상자는 비밀번호를 변경하는 간단한 방법을 제공합니다. <br/> 아래 필드에 새 비밀번호 (2 회)를 입력하고 '변경' 버튼을 "
+"누르십시오."
 
 #: ihtml/themes/legacy/recovery.tpl.c:14 ihtml/themes/legacy/recovery.tpl.c:17
 #: ihtml/themes/legacy/recovery.tpl.c:20 ihtml/themes/legacy/login.tpl.c:8
@@ -4867,17 +4970,17 @@ msgstr ""
 #: ihtml/themes/breezy/recovery.tpl.c:20 ihtml/themes/breezy/login.tpl.c:8
 #: ihtml/themes/breezy/login.tpl.c:11 ihtml/themes/breezy/login.tpl.c:14
 msgid "Username"
-msgstr ""
+msgstr "사용자 이름"
 
 #: ihtml/themes/legacy/recovery.tpl.c:32 ihtml/themes/legacy/recovery.tpl.c:35
 #: ihtml/themes/legacy/recovery.tpl.c:38 ihtml/themes/breezy/recovery.tpl.c:32
 #: ihtml/themes/breezy/recovery.tpl.c:35 ihtml/themes/breezy/recovery.tpl.c:38
 msgid "New password repeated"
-msgstr ""
+msgstr "새 비밀번호 반복"
 
 #: ihtml/themes/legacy/recovery.tpl.c:41 ihtml/themes/breezy/recovery.tpl.c:41
 msgid "Password strength"
-msgstr ""
+msgstr "비밀번호 강도"
 
 #: ihtml/themes/legacy/recovery.tpl.c:44 ihtml/themes/legacy/recovery.tpl.c:47
 #: ihtml/themes/legacy/recovery.tpl.c:50 ihtml/themes/legacy/recovery.tpl.c:86
@@ -4894,14 +4997,14 @@ msgstr "디렉토리"
 #: ihtml/themes/legacy/recovery.tpl.c:53 ihtml/themes/legacy/recovery.tpl.c:98
 #: ihtml/themes/breezy/recovery.tpl.c:53 ihtml/themes/breezy/recovery.tpl.c:98
 msgid "Change"
-msgstr ""
+msgstr "변경"
 
 #: ihtml/themes/legacy/recovery.tpl.c:56
 #: ihtml/themes/legacy/recovery.tpl.c:101
 #: ihtml/themes/breezy/recovery.tpl.c:56
 #: ihtml/themes/breezy/recovery.tpl.c:101
 msgid "Click here to change your password"
-msgstr ""
+msgstr "비밀번호를 변경하려면 여기를 클릭하십시오"
 
 #: ihtml/themes/legacy/recovery.tpl.c:59 ihtml/themes/legacy/recovery.tpl.c:62
 #: ihtml/themes/breezy/recovery.tpl.c:59 ihtml/themes/breezy/recovery.tpl.c:62
@@ -4910,49 +5013,49 @@ msgstr "성공"
 
 #: ihtml/themes/legacy/recovery.tpl.c:65 ihtml/themes/breezy/recovery.tpl.c:65
 msgid "Your password has been changed successfully."
-msgstr ""
+msgstr "비밀번호가 성공적으로 변경되었습니다."
 
 #: ihtml/themes/legacy/recovery.tpl.c:68 ihtml/themes/legacy/recovery.tpl.c:95
 #: ihtml/themes/breezy/recovery.tpl.c:68 ihtml/themes/breezy/recovery.tpl.c:95
 msgid "Return to login screen"
-msgstr ""
+msgstr "로그인 화면으로 돌아가기"
 
 #: ihtml/themes/legacy/recovery.tpl.c:71 ihtml/themes/breezy/recovery.tpl.c:71
 msgid ""
 "Enter your current e-mail address in the field below and press the 'Change' "
 "button."
-msgstr ""
+msgstr "아래 필드에 현재 이메일 주소를 입력하고 '변경' 버튼을 누르십시오."
 
 #: ihtml/themes/legacy/recovery.tpl.c:74 ihtml/themes/breezy/recovery.tpl.c:74
 msgid ""
 "=> Use your e-mail in the long format, e.g : John Doe => "
 "john.doe@example.com"
-msgstr ""
+msgstr "=> 긴 형식으로 이메일을 사용하십시오, 예 : John Doe => john.doe@example.com"
 
 #: ihtml/themes/legacy/recovery.tpl.c:104
 #: ihtml/themes/breezy/recovery.tpl.c:104
 msgid ""
 "Password recovery is not activated. If you have lost your password, please "
 "contact your administrator"
-msgstr ""
+msgstr "비밀번호 복구가 활성화되지 않았습니다. 비밀번호를 잊어 버린 경우 관리자에게 문의하십시오"
 
 #: ihtml/themes/legacy/login.tpl.c:5 ihtml/themes/breezy/login.tpl.c:5
 msgid ""
 "Please use your username and your password to log into the site "
 "administration system."
-msgstr ""
+msgstr "사이트 관리 시스템에 로그인하려면 사용자 이름과 비밀번호를 사용하십시오."
 
 #: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
 msgid "I forgot my password"
-msgstr ""
+msgstr "비밀번호를 잊었습니다"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
 msgid "Click here to log in"
-msgstr ""
+msgstr "로그인하려면 여기를 클릭하십시오"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
-msgstr ""
+msgstr "경고 : 다음 객체를 삭제하려고합니다."
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
@@ -4960,19 +5063,20 @@ msgid ""
 "Please double check if you really want to do this since there is no way for "
 "FusionDirectory to get your data back."
 msgstr ""
+"FusionDirectory에서 데이터를 다시 가져올 수 있는 방법이 없기 때문에 실제로 이 작업을 수행하려면 다시 확인하십시오."
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:8
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
-msgstr ""
+msgstr "따라서 확실하다면 '삭제'를 눌러 계속하거나 '취소'를 눌러 중단하십시오."
 
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
-msgstr ""
+msgstr "템플릿을 사용하여 새 객체 만들기"
 
 #: ihtml/themes/breezy/template.tpl.c:8
 #: ihtml/themes/breezy/restore-confirm.tpl.c:14
 msgid "Continue"
-msgstr ""
+msgstr "계속"
 
 #: ihtml/themes/breezy/copynotice.tpl.c:2
 msgid ""
@@ -4982,7 +5086,7 @@ msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
-msgstr ""
+msgstr "잠금 충돌 감지"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
 msgid "\"%1\" has been locked by \"%2\" since %3"
@@ -4997,37 +5101,37 @@ msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:14
 msgid "Read only"
-msgstr ""
+msgstr "읽기 전용"
 
 #: ihtml/themes/breezy/restore-confirm.tpl.c:2
 msgid "Warning: you are about to restore the following snapshot"
-msgstr ""
+msgstr "경고 : 다음 스냅샷을 복원하려고합니다"
 
 #: ihtml/themes/breezy/restore-confirm.tpl.c:5
 msgid "Any modification made to the object since this snapshot will be lost."
-msgstr ""
+msgstr "이 스냅샷 이후 개체에 대한 수정 내용은 손실됩니다."
 
 #: ihtml/themes/breezy/restore-confirm.tpl.c:11
 msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
-msgstr ""
+msgstr "따라서 확실하다면 '계속'을 눌러 계속하거나 '취소'를 눌러 중단하십시오."
 
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
-msgstr ""
+msgstr "메인"
 
 #: ihtml/themes/breezy/framework.tpl.c:5
 msgid "Sign out"
-msgstr ""
+msgstr "로그아웃"
 
 #: ihtml/themes/breezy/framework.tpl.c:8
 msgid "Signed in:"
-msgstr ""
+msgstr "로그인:"
 
 #: ihtml/themes/breezy/framework.tpl.c:11
 #, c-format
 msgid "Session expires in %d!"
-msgstr ""
+msgstr "%d에서 세션이 만료됩니다!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
 msgid ""
@@ -5039,18 +5143,18 @@ msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid "Please choose the way to react for this session"
-msgstr ""
+msgstr "이 세션에 대응할 방법을 선택하십시오"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
 msgid "ignore this error and show all entries the LDAP server returns"
-msgstr ""
+msgstr "이 오류를 무시하고 LDAP 서버가 리턴하는 모든 항목을 표시하십시오."
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
 msgid ""
 "ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
-msgstr ""
+msgstr "이 오류를 무시하고 정의 된 크기 제한에 맞는 모든 항목을 표시하고 대신 필터를 사용하겠습니다"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid "Set"
-msgstr ""
+msgstr "설정"
diff --git a/locale/lv/fusiondirectory.po b/locale/lv/fusiondirectory.po
index cca015c885efa5f05dc539ed5e2285859635624f..dbc5edf16d607f69bcf8ca1252dc4f6a5f697501 100644
--- a/locale/lv/fusiondirectory.po
+++ b/locale/lv/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Latvian (https://www.transifex.com/fusiondirectory/teams/12202/lv/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Kļūda"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP kļūda"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Veids"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Iekšējā kļūda"
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Brīdinājums"
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Atļauja"
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Vārds "
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Izveidot"
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Lietotāji"
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4735,11 +4821,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/nb/fusiondirectory.po b/locale/nb/fusiondirectory.po
index 5936fe34bdb405fa494d2d3842607a69d01c0baf..1125cc7720efbc769bc24862174ae6b23c0186cd 100644
--- a/locale/nb/fusiondirectory.po
+++ b/locale/nb/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Norwegian Bokmål (https://www.transifex.com/fusiondirectory/teams/12202/nb/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Feil"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP-feil"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -647,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Navn"
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Opprett"
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Feil"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4727,11 +4813,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/nl/fusiondirectory.po b/locale/nl/fusiondirectory.po
index ccc23829861f970d3e411c73b9ad90e7d9c1ddd2..700d0604a2470c87f6bea20f47678a24012572e0 100644
--- a/locale/nl/fusiondirectory.po
+++ b/locale/nl/fusiondirectory.po
@@ -4,18 +4,18 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Benoit Mortier <benoit.mortier@opensides.be>, 2018
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2018
 # Lucien Antonissen <lucien.antonissen@digipolis.be>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Lucien Antonissen <lucien.antonissen@digipolis.be>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Dutch (https://www.transifex.com/fusiondirectory/teams/12202/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -41,9 +41,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fout"
 
@@ -91,8 +91,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAPfout"
 
@@ -147,60 +147,61 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Bestand"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Regel"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "PHP fout"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "klasse"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "functie"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statisch"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "methode"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Type"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumenten"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "Er is minimaal één PHP fout opgetreden bij het genereren van deze pagina!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Stuur probleemrapport naar het FusionDirectory Team"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Stuur probleemrapport"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Informatie weergeven/verbergen"
 
@@ -358,9 +359,7 @@ msgstr "Sjabloon naam"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Interne fout"
 
@@ -504,11 +503,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "LDAP server weergegeven: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Waarschuwing"
@@ -690,12 +689,12 @@ msgstr "Login"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Rechten"
@@ -978,8 +977,8 @@ msgstr "%s PHP extensie ontbreekt!"
 msgid "Cancel"
 msgstr "Annuleren"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1090,9 +1089,10 @@ msgid "Remove %s settings"
 msgstr "Verwijder %s opties"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
-"Klik de 'Bewerk' knop onderaan om informatie te veranderen in deze dialoog"
 
 #: include/class_msgPool.inc:646
 msgid "January"
@@ -1334,6 +1334,7 @@ msgstr "Gelieve de items te selecteren"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Naam"
@@ -1368,8 +1369,8 @@ msgid "Restart service"
 msgstr "Herstart service"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Basis"
 
@@ -1381,31 +1382,31 @@ msgstr "Objectbasis"
 msgid "Base field value should always be a string"
 msgstr "La valeur de la base doit toujours être une chaîne"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr "Fout, niet correcte datum: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Uren"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minuten"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Seconden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Datum"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr "Tijd"
 
@@ -1697,8 +1698,8 @@ msgid "days"
 msgstr "dagen"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
-msgstr "Toevoegen (dialoog)"
+msgid "Add(dialog)"
+msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
 #, php-format
@@ -1750,23 +1751,23 @@ msgstr "Filterfout"
 msgid "The filter is incomplete!"
 msgstr "Deze filter is niet compleet!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Toestemmingsfout"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "U heeft geen toestemming om een snapshot te maken voor %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "U heeft geen toestemming om een snapshot te herstellen voor %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr "Je hebt geen toelating om een snapshot te verwijderen voor %s.  "
@@ -1778,7 +1779,7 @@ msgstr "Geen label"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Aanmaken"
 
@@ -1814,12 +1815,6 @@ msgstr "Onbekende invoer '%s'!"
 msgid "All users"
 msgstr "Alle gebruikers"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Gevraagde kanaal bestaat niet! Gelieve je Systeembeheerder te contacteren."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Performantiewaarschuwing"
@@ -2173,13 +2168,13 @@ msgstr "Actie gestart"
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
-msgstr "Actie opgevraagd zonder fout (resultaat waren \"%s\")"
+msgid "Action called without error(results were \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
-msgstr "Actie opgevraagd zonder fout (resultaat was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
 #: plugins/admin/groups/class_roleGeneric.inc:55
@@ -2543,7 +2538,7 @@ msgstr "Verwijder gebruiker"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Gebruikers"
 
@@ -3604,6 +3599,118 @@ msgstr ""
 "Statistieken voor type \"%s\" kunnen niet verwerkt worden vanwege de "
 "volgende fout: %s"
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Id"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Subscription type"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Startdatum"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Einddatum"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importeren"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Bewerk gebruikers groepen en rollen"
@@ -3924,44 +4031,44 @@ msgstr "Welkom bij de FusionDirectory opzetbegeleider"
 msgid "The welcome message"
 msgstr "Het welkomstbericht"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr "LDAP connectie"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Naam van de plaats"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr "Naam van deze verbinding om te tonen in de LDAP server lijst"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "Connectie URI"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr "URI om de LDAP server te contacteren. Meestal startend met ldap://"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "TLS verbinding"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr "Moet TLS gebruikt worden om te verbinden met deze LDAP server?"
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr "De LDAP directory basis"
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Authenticatie"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
@@ -3969,40 +4076,40 @@ msgstr ""
 "DN van het admin account te gebruiken voor binding naar de LDAP. Basis is "
 "automatisch toegevoegd."
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "Beheerders DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Beheerderspaswoord"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Paswoord voor het adminaccount te gebruiken voor binding naar de LDAP"
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Huidige status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 "Resultaat van laatste poging van LDAP binding en basisschema's controles."
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "LDAP setup"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "LDAP verbindingsopzet"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -4010,39 +4117,39 @@ msgstr ""
 "Deze dialoog zorgt voor de basis configuratie van de LDAP connectiviteit "
 "voor FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonieme bind naar server '%s' is mislukt! "
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Bind als gebruiker '%s' is mislukt!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Opnieuw proberen"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonieme bind naar server '%s' is succesvol."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Vernieuwen"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Specifieer a.u.b. een gebruikersnaam en paswoord!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Bind als gebruiker '%s' naar server '%s' is succesvol!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
@@ -4051,15 +4158,13 @@ msgstr ""
 "%s\n"
 "Schema \"%s\": %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "PHP module en extensie verificaties"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
-msgstr "PHP setup configuratie (1show information1)"
+msgid "PHP setup configuration"
+msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
@@ -4179,26 +4284,12 @@ msgstr ""
 "FusionDirectory heeft deze extensie nodig om snapshots te kunnen behandelen."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals is een PHP mechanisme om alle globale variabelen te "
-"registreren en toegankelijk te maken vanuit scripts zonder de scope te "
-"moeten aanpassen. Dit kan een veiligheidsrisico vormen. "
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr "Zoek voor 'register_globals' in je php.ini en schakel het 'uit'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP gebruikt deze waarde voor de vuilbak verzamelaar en om oude sessies te "
 "verwijderen."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4206,7 +4297,7 @@ msgstr ""
 "Deze waarde naar 1 dag plaatsen kan het verliezen van de sessies en "
 "cookiesdoor timeout voorkomen."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4214,12 +4305,12 @@ msgstr ""
 "Zoek voor 'session.gc_maxlifetime' in je php.ini en plaats het naar 86400 of"
 " hoger."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Uit"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4227,12 +4318,12 @@ msgstr ""
 "Om FusionDirectory zonder problemen te kunnen gebruiken, de moet je de "
 "session.auto_start optie in je php.ini naar 'Off' wijzigen."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Zoek naar 'session.auto_start' in je php.ini en zet de waarde naar 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4241,13 +4332,13 @@ msgstr ""
 "limiet plaatsen kan errors veroorzaken die niet hergeproduceerd kunnen "
 "worden! Vergroot deze waarde voor grotere installaties."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Zoek voor 'memory_limit' in je php.ini en plaats het naar '128M' of hoger."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4255,22 +4346,22 @@ msgstr ""
 "Deze optie beinvloed de PHP output handling. Zet deze optie uit, om "
 "performantie te verhogen."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Zoek naar 'implicit_flush' in je php.ini and zet de waarde 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "De uitvoertijd zou minstens 30 seconden moeten zijn."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Zoek naar 'max_execution_time' in je php.ini en zet het naar '30' of hoger."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4279,41 +4370,27 @@ msgstr ""
 "plaatsen. PHP zal geen informatie over de server die je draait verzenden als"
 " je dit doet."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Zoek naar 'expose_php' in je php.ini en zet het naar 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Verhoog je server performantie door de optie magic_quotes_gpc naar 'off' te "
-"plaatsen."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Zoek naar 'zend.ze1_compatibility_mode' in je php.ini en plaats het naar "
-"'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migratie"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "LDAP inspectie"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analyseer je huidige LDAP voor FusionDirectory compatibiliteit"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Geef alle rechten aan gebruikers in de gegeven familie"
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4321,83 +4398,83 @@ msgstr ""
 "Toestaan dat gebruikers hun eigen informatie bewerken (enkel hoofdtab en "
 "posix gebruik alleen op basis)"
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Toestaan dat gebruikers hun eigen paswoord bewerken (gebruik enkel op basis)"
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Inspectie van de object classes in root object"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Controle op LDAPdatabankrechten"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Controle op niet-zichtbare gebruikers"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Controle op super-administrator"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr "Controle op standaard ACL rollen en groepen"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Controle op gebruikers buiten de personenstructuur"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Controle op groepen buiten de groepsstructuur"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Controle op niet-zichtbare afdelingen"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Controle op dubbele UID nummers"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr "Controle op dubbele GID nummers"
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "LDAP query mislukt"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr "Mogelijk ontbreekt het \"root object\"."
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Mislukt"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Ontbrekende FusionDirectory object class '%s'!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Kijk je installatie na a.u.b.."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4406,21 +4483,21 @@ msgstr ""
 "Kan het structurele object type van je root object niet gebruiken. Probeer "
 "de object class '%s' manueel toe te voegen."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 "De vermelde gebruiker \"%s\" heeft geen volledige toegang tot je LDAP "
 "database."
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 "De vermelde gebruiker \"%s\" heeft geen volledige toegang tot je ldap "
 "database."
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4429,102 +4506,102 @@ msgstr ""
 "%s gebruiker(s) gevonden die niet zichtbaar zijn in FusionDirectory of die "
 "incompleet zijn."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr "Gebruikersmigratie"
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Migratiefout"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr "Kan ingave \"%s\" niet migreren:"
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Groepen"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Rollen"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Er is geen FusionDirectory administrator account in je LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr "Geeft alle rechten op alle objecten"
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "Standaard ACL rollen zijn niet ingevoegd"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Sommige standaard ACL rollen mankeren"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "Standaard ACL rollen zijn toegevoegd"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr "Kan de ACL rol \"%s\" niet toevoegen:"
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr "Gebruiker(s) %s gevonden buiten de configuratieboom \"%s\"."
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Verplaats gebruikers in deze geconfigureerde user tree"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr "Kan ingaves niet naar de aangevraagde afdeling verplaatsen"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr "Ingave zal verplaatst worden van"
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "naar"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "De volgende referenties zullen upgedate worden"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Vond %s groepen buiten de geconfigureerde tree '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr "Verplaats groep naar geconfigureerde groepsboom"
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Vond %s departement(en) die niet zichtbaar zullen zijn in FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr "Afdelingmigratie"
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr "Dubbele waardes %s gevonden voor attribuut \"uidNumber\":%s"
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr "Dubbele waardes %s gevonden voor attribuut \"gidNumber\":%s"
@@ -4777,27 +4854,27 @@ msgstr "Controleer a.u.b. de gebruikersnaam/paswoord combinatie."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Accound geblokkeerd. Contacteer a.u.b. je systeembeheerder!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr "Geen waarde gevonden in HTTP header \"%s\""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr "Header gebruiker \"%s\" kan niet gevonden worden in de LDAP"
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr "Login met gebruiker \"%s\" geactiveerde fout: %s"
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr "CAS gebruiker \"%s\" kon niet gevonden worden in de LDAP"
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4989,11 +5066,15 @@ msgstr "Na migratie"
 msgid "Close"
 msgstr "Sluiten"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory zal NIET werken zonder dit op te lossen. "
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory zal werken zonder dit op te lossen."
 
diff --git a/locale/pl/fusiondirectory.po b/locale/pl/fusiondirectory.po
index 7e80071a39f22e7a51bcf5ad35579ed003389153..b1cfc7695a5a1afefc638fc8523b7760ad75b07c 100644
--- a/locale/pl/fusiondirectory.po
+++ b/locale/pl/fusiondirectory.po
@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Polish (https://www.transifex.com/fusiondirectory/teams/12202/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "BÅ‚Ä…d"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "błąd LDAP"
 
@@ -139,59 +139,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Plik"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Linia"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "błąd PHP:"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "klasa"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "funkcja"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statyczna"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "metoda"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Åšledzenie"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Typ"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argumenty"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Tworzenie tej strony spowodowało, że interpreter PHP zwrócił błędy!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Przełącz informacje"
 
@@ -347,9 +348,7 @@ msgstr "Nazwa Szablonu"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Błąd wewnętrzny"
 
@@ -478,11 +477,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Ostrzeżenie"
@@ -649,12 +648,12 @@ msgstr "Login"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Uprawnienie"
@@ -937,8 +936,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1039,7 +1038,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1274,6 +1275,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "ImiÄ™"
@@ -1308,8 +1310,8 @@ msgid "Restart service"
 msgstr "Restartuj usługę"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Kontener"
 
@@ -1321,31 +1323,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Data"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1629,7 +1631,7 @@ msgid "days"
 msgstr "dni"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1682,23 +1684,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1710,7 +1712,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Utwórz"
 
@@ -1744,11 +1746,6 @@ msgstr "Nieznany wpis  '%s'!"
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Ostrzeżenie wydajności"
@@ -2092,12 +2089,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2461,7 +2458,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Użytkownicy"
 
@@ -3447,6 +3444,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Import"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3761,134 +3870,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr "Wiadomość powitalna"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nazwa lokalizacji"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN Administratora"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Hasło Administratora"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Obecny status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Ustawienia LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Ponawia"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Odśwież"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3991,314 +4098,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Wyłączone"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Niepowodzenie"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "BÅ‚Ä…d migracji"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupy"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Przenieś użytkowników do skonfigurowanego drzewa"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "do"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4527,27 +4613,27 @@ msgstr "Proszę sprawdzić kombinację login/hasło."
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4747,11 +4833,15 @@ msgstr ""
 msgid "Close"
 msgstr "Zamknij"
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/pt/fusiondirectory.po b/locale/pt/fusiondirectory.po
index 1efa6c057e9e01b3e28b8e77147c312ead3113a8..edca28e501fafb340d7ff4b937fb0c68686da8ee 100644
--- a/locale/pt/fusiondirectory.po
+++ b/locale/pt/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Portuguese (https://www.transifex.com/fusiondirectory/teams/12202/pt/)\n"
@@ -19,7 +19,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erro"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Erro de LDAP"
 
@@ -141,59 +141,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -349,9 +350,7 @@ msgstr "Nome modelo"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Erro interno"
 
@@ -478,11 +477,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Atenção"
@@ -649,12 +648,12 @@ msgstr "Login"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -937,8 +936,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1039,7 +1038,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1274,6 +1275,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nome"
@@ -1308,8 +1310,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1321,31 +1323,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1629,7 +1631,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1682,23 +1684,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1710,7 +1712,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Criar"
 
@@ -1744,11 +1746,6 @@ msgstr "Entrada desconhecida '%s'!"
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Alerta de performance"
@@ -2093,12 +2090,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2462,7 +2459,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Usuários"
 
@@ -3448,6 +3445,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3762,134 +3871,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Estatus"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Recarregar"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3992,314 +4099,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Erro"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4528,27 +4614,27 @@ msgstr "Por favor, verifique a combinação usuário / senha"
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4603,6 +4689,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4618,6 +4705,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4632,6 +4720,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4642,6 +4731,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4653,18 +4743,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4679,6 +4772,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4732,11 +4826,15 @@ msgstr ""
 msgid "Close"
 msgstr "Fechar"
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/pt_BR/fusiondirectory.po b/locale/pt_BR/fusiondirectory.po
index 554c733f2591c9e3f37fb1c7faba96c34dff6b6c..0d039d7964637d1adbfe678c0d0752213fb781d1 100644
--- a/locale/pt_BR/fusiondirectory.po
+++ b/locale/pt_BR/fusiondirectory.po
@@ -4,22 +4,22 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Portuguese (Brazil) (https://www.transifex.com/fusiondirectory/teams/12202/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_BR\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erro"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Erro de LDAP"
 
@@ -139,59 +139,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Arquivo"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Tipo"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -347,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Erro interno"
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Aviso"
@@ -651,12 +650,12 @@ msgstr "Login"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Permissão"
@@ -939,8 +938,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1041,7 +1040,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1276,6 +1277,7 @@ msgstr "Por favor, selecione as entradas desejadas"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Nome"
@@ -1310,8 +1312,8 @@ msgid "Restart service"
 msgstr "Reiniciar serviço"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1323,31 +1325,31 @@ msgstr "Base de objeto"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Data"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1631,7 +1633,7 @@ msgid "days"
 msgstr "dias"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1684,23 +1686,23 @@ msgstr "Erro no filtro"
 msgid "The filter is incomplete!"
 msgstr "O filtro está incompleto!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Erro de permissão"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Você não tem permissões para criar um snapshot para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Você não tem permissões para restaurar um snapshot para %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1712,7 +1714,7 @@ msgstr "SEM RÓTULO"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Criar"
 
@@ -1746,11 +1748,6 @@ msgstr ""
 msgid "All users"
 msgstr "Todos os usuários"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2094,12 +2091,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2463,7 +2460,7 @@ msgstr "Remover usuário"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Usuários"
 
@@ -3463,6 +3460,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr "Tipo de inscrição"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Importar"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3777,82 +3886,82 @@ msgstr "Bem vindo ao assistente de configuração do FusionDirectory"
 msgid "The welcome message"
 msgstr "A mensagem de \"bem vindo\""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Nome do local"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI da conexão"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "conexão TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autenticação"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN do administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Senha do administrador"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Estado"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Status atual"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Configuração de LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Configuração da conexão de LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3860,53 +3969,51 @@ msgstr ""
 "Este diálogo executa a configuração básica da conectividade LDAP para o "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Ligação anônima para o servidor '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Ligação como usuário '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Tente novamente"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Ligação anônima para o servidor '%s' bem sucedida."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Atualizar"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Por favor, especifique usuário e senha!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Ligação como usuário '%s' para o servidor '%s' bem sucedida!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Módulo de PHP e checagem de extensões"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4017,31 +4124,16 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requer esta extensão para lidar com snapshots."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals é um mecanismo do PHP utilizado para registrar todas as "
-"variáveis globais para serem acessíveis por meio de scripts sem modificar o "
-"escopo. Isto pode ser um risco à segurança."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Procurar por 'register_globals' em seu php.ini e marcado como 'Desativado'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP usa este valor para deletar sessões antigas do garbage collector."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4049,51 +4141,51 @@ msgstr ""
 "Procurar por 'session.gc_maxlifetime' no seu php.ini e configurá-lo para "
 "86400 ou maior."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Desativar"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Pesquisar por 'session.auto_start' no seu php.ini e configurá-lo como "
 "'Desligado'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Procurar por 'implicit_flush' no seu php.ini e configurá-lo como "
 "'Desligado'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "O tempo de Execução deve ser no mínimo 30 segundos."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4101,249 +4193,235 @@ msgstr ""
 "Pesquisa por 'max_execution_time' no seu php.ini e defina-o como '30' ou "
 "superior."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Pesquisar por 'expose_php' no seu php.ini e defina-o como 'Desligado'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Aumente o desempenho do seu servidor definindo magic_quotes_gpc para "
-"'desligado'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Pesquisar por 'zend.ze1_compatibility_mode' no seu php.ini e defina-o como "
-"'Desligado'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Inspeção LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analisar seu LDAP atual para verificação de compatibilidade com o "
 "FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Inspecionando classes de objeto em objeto root"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Checando permissão para banco de dados LDAP"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Checando por usuários invisíveis"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Checando por super administrador"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Checando por usuários fora da árvore de pessoas"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Checando por grupos fora da árvore de grupos"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Checando por departamentos invisíveis"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Checando por números de UID duplicados"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "Consulta em LDAP falhou"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Falhou"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Atribuições"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Não existe uma conta de administrador do FusioDirectory no seu LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Encontrado %s grupos fora da árvore configurada '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4582,27 +4660,27 @@ msgstr "Por favor, verifique o usuário ou senha."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Conta bloqueada. Entre em contato com o administrador do sistema!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4657,6 +4735,7 @@ msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4672,6 +4751,7 @@ msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4686,6 +4766,7 @@ msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4696,6 +4777,7 @@ msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4707,18 +4789,21 @@ msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4733,6 +4818,7 @@ msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4786,11 +4872,15 @@ msgstr ""
 msgid "Close"
 msgstr "Fechar"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "O FusionDirectory NÃO irá rodar sem a correção disto."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "O FusionDirectory irá rodar sem a correção disto."
 
diff --git a/locale/ru/fusiondirectory.po b/locale/ru/fusiondirectory.po
index f14fce425e2abfd01441a56754203a0eb68ba786..1a1263c15e551c884743ff47566c94f056cef98d 100644
--- a/locale/ru/fusiondirectory.po
+++ b/locale/ru/fusiondirectory.po
@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Russian (https://www.transifex.com/fusiondirectory/teams/12202/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Ошибка"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Ошибка LDAP"
 
@@ -141,60 +141,61 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Файл"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Строка"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Ошибка PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Тип"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Аргументы"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "Создание этой страницы помогла PHP интерпретатору выявить некоторые ошибки!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Послать отчет об ошибке команде FusionDirectory"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Отправить отчет об ошибке"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -350,9 +351,7 @@ msgstr "Название шаблона"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Внутренняя ошибка"
 
@@ -487,11 +486,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "LDAP сервер вернул: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Предупреждение"
@@ -665,12 +664,12 @@ msgstr "Имя пользователя"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Права"
@@ -953,8 +952,8 @@ msgstr "Пропущено %s PHP расширение!"
 msgid "Cancel"
 msgstr "Отмена"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1063,7 +1062,9 @@ msgid "Remove %s settings"
 msgstr "Удалить параметры %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1302,6 +1303,7 @@ msgstr "Пожалуйста выберете нужные записи"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Название"
@@ -1336,8 +1338,8 @@ msgid "Restart service"
 msgstr "Перезапустить службу"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Ветка"
 
@@ -1349,31 +1351,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr "Минуты"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr "Секунды"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "Дата"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1657,7 +1659,7 @@ msgid "days"
 msgstr "дни"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1710,23 +1712,23 @@ msgstr "Ошибка фильтра"
 msgid "The filter is incomplete!"
 msgstr "Фильтр неполный!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Ошибка доступа"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Вам не разрешено создавать снапшот для %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Вам не разрешено восстанавливать снапшот для %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1738,7 +1740,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Создать"
 
@@ -1774,13 +1776,6 @@ msgstr "Неизвестная запись '%s'!"
 msgid "All users"
 msgstr "Все пользователи"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-"Запрашиваемый канал не существует! Пожалуйста свяжитесь с вашим системным "
-"администратором."
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Предупреждение о производительности"
@@ -2126,12 +2121,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2495,7 +2490,7 @@ msgstr "Удалить пользователя"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Пользователи"
 
@@ -3518,6 +3513,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr "Ид"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr "Дата начала"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr "Дата окончания"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "Импортировать"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3832,82 +3939,82 @@ msgstr "Добро пожаловать в мастер настройки Fusio
 msgid "The welcome message"
 msgstr "Сообщение приветствия"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Местоположение"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "URI подключения"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "TLS соединение"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Аутентификация"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "DN администратора"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Пароль администратора"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Состояние"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Текущее состояние"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Настройки LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Настройки LDAP соединения"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3915,53 +4022,51 @@ msgstr ""
 "Этот диалог выполняет основную настройку LDAP соединения для "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Сбой при анонимном привязывании к серверу '%s'!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Сбой при привязки под пользователем '%s'!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "Retry"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Анонимное подключение (bind) а к серверу '%s' удалась."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Refresh"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Пожалуйста укажите пользователя и пароль!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Привязка под пользователем '%s' к серверу '%s' удалась!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4068,30 +4173,17 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory требуется расширение для обработки снапшотов."
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals механизм PHP, предоставляющий доступ ко всем глобальным "
-"переменным из скриптов без изменения области видимости. Это не безопасно."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr "Найдите 'register_globals' в вашем php.ini и переключите в 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "Это значение используется PHP сборщиком мусора, чтобы удалять старые сессии."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4099,12 +4191,12 @@ msgstr ""
 "Найдите 'session.gc_maxlifetime' в вашем php.ini и установите в 86400 или "
 "больше."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Выкл"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4112,12 +4204,12 @@ msgstr ""
 "Чтобы во время использования FusionDirectory не возникло ни каких проблем, "
 "опция 'session.auto_start' должна быть установлена в 'Off' в вашем php.ini."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Найдите 'session.auto_start' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4126,27 +4218,27 @@ msgstr ""
 "может привести к ошибкам, которые не воспроизводятся! Увеличьте его в "
 "большинстве случаев."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Найдите 'memory_limit' в вашем php.ini и установите его в '128M' или больше."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Найдите 'implicit_flush' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Время исполнения, должно быть не менее 30 секунд."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4154,7 +4246,7 @@ msgstr ""
 "Найдите 'max_execution_time' в вашем php.ini и установите его в значение "
 "'30' или больше."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4162,138 +4254,125 @@ msgstr ""
 "Повысить безопасность сервера установив опцию expose_php в 'off'. PHP не "
 "будет отправлять ни какую информацию о сервере, запускающему, в этом случае."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Найдите 'expose_php' в вашем php.ini и установите в 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Повысите производительность вашего сервер установив setting magic_quotes_gpc"
-" в 'off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Найдите 'zend.ze1_compatibility_mode' в вашем php.ini и установите в 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Перемещение"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Инспекция LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Анализ вашего текущего LDAP для совместимости с FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr "Дать полные права на пользователей в выбранной ветке"
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Проверка прав для LDAP базы"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Проверка на невидимых пользователей"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Проверка для супер администратора"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Проверка на пользователей за пределами дерева людей"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Проверка на группы за пределами дерева для них"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Проверка на невидимые подразделения"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "LDAP запрос не удался"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Ошибка"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Пропущен объектный класс FusionDirectory '%s'!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Пожалуйста проверьте вашу установку."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4302,102 +4381,102 @@ msgstr ""
 "Найден пользователь(и) %s, которые будут не видны в FusionDirectory или "
 "которые не полные."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Ошибка перемещения"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Группы"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr "Роли"
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Нет учетной записи администратора FusionDirectory в вашем LDAP."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr "ACL ролей по умолчанию не вставлены"
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr "Некоторые ACL ролей по умолчанию пропущены"
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr "ACL ролей по умолчанию вставлен"
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Переместить пользователей в настроенное дерево пользователей"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Следующие ссылки будут обновлены"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Найдены группы %s, выходящие за пределы настроенного дерева '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Найдены подразделение(я) %s, которые будет не видны в FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4645,27 +4724,27 @@ msgstr ""
 "Учетная запись заблокирована. Пожалуйста свяжитесь с вашим системным "
 "администратором."
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr "CAS пользователь \"%s\" не может быть найден в LDAP"
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4867,12 +4946,16 @@ msgstr "После миграции"
 msgid "Close"
 msgstr "Закрыть"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr ""
 "FusionDirectory НЕ сможет продолжить работу без исправления этой ошибки."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory сможет продолжить работу без исправления этой ошибки."
 
diff --git a/locale/ru@petr1708/fusiondirectory.po b/locale/ru@petr1708/fusiondirectory.po
index 6623803ba694d10438dddd1f92bdc00eff3301dc..b80791e9ef4ddc7335380bc3fe5b921bb4c98cfe 100644
--- a/locale/ru@petr1708/fusiondirectory.po
+++ b/locale/ru@petr1708/fusiondirectory.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Language-Team: Russian Petrine orthography (https://www.transifex.com/fusiondirectory/teams/12202/ru@petr1708/)\n"
 "MIME-Version: 1.0\n"
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4739,11 +4825,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/sv/fusiondirectory.po b/locale/sv/fusiondirectory.po
index bbb25df5d1e40d21be6976b6ec9f778c70f126f4..8cd1d38af1036615e8e535f32b8fa753191ef59e 100644
--- a/locale/sv/fusiondirectory.po
+++ b/locale/sv/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Swedish (https://www.transifex.com/fusiondirectory/teams/12202/sv/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fel"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP-fel"
 
@@ -140,59 +140,60 @@ msgstr "PDF"
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "Fil"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Rad"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "PHP-fel"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "klass"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "funktion"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "statisk"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "metod"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Spårning"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Typ"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Argument"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Generering av denna sida gjorde att PHP-tolken observerade några fel!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Skicka buggrapport till FusionDirectory-teamet"
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Skicka buggrapport"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Växla informationsläge"
 
@@ -348,9 +349,7 @@ msgstr "Mall-namn"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Internt fel"
 
@@ -485,11 +484,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "LDAP-server returnerade %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Varning"
@@ -663,12 +662,12 @@ msgstr "Användarnamn"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Rättighet"
@@ -951,8 +950,8 @@ msgstr "Saknar PHP-tillägget %s !"
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1061,7 +1060,9 @@ msgid "Remove %s settings"
 msgstr "Ta bort %s-inställningar"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1302,6 +1303,7 @@ msgstr "Välj önskade poster"
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Namn"
@@ -1336,8 +1338,8 @@ msgid "Restart service"
 msgstr "Starta om tjänsten"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Bas"
 
@@ -1349,31 +1351,31 @@ msgstr "Objekt-bas"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1657,7 +1659,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1710,23 +1712,23 @@ msgstr "Filterfel"
 msgid "The filter is incomplete!"
 msgstr "Filtret är inte komplett!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Rättighetsfel"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Du har inte tillåtelse att skapa en ögonblicksbild för %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Du är inte tillåten att återskapa en ögonblicksbild för %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1738,7 +1740,7 @@ msgstr "INGEN ETIKETT"
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Skapa"
 
@@ -1772,11 +1774,6 @@ msgstr "Okänd post '%s'!"
 msgid "All users"
 msgstr "Alla användare"
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr "Begärd kanal finns inte! Vänligen kontakta din administratör"
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Prestandavarning"
@@ -2120,12 +2117,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2489,7 +2486,7 @@ msgstr "Ta bort användare"
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Användare"
 
@@ -3508,6 +3505,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3822,82 +3931,82 @@ msgstr "Välkommen till FusionDirectory setup wizard"
 msgid "The welcome message"
 msgstr "Välkomstmeddelandet"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Location name"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr "Koppling-URI"
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "TLS-koppling"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Autentisering"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "Admin DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Adminlösenord"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Nuvarande status"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "LDAP-inställningar"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "LDAP-koppling"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
@@ -3905,53 +4014,51 @@ msgstr ""
 "Den här dialogrutan utför den grundläggande konfigurationen för LDAP-"
 "kopplingen till FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonym koppling till server '%s' misslyckades!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Koppling som användare '%s' misslyckades!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonym koppling till servern '%s' lyckades."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "Uppdatera"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Skriv in användare och lösenord!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Koppling som användare '%s' till servern '%s' lyckades!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "PHP modul- och tilläggskontroll"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4065,27 +4172,12 @@ msgstr ""
 "FusionDirectory kräver det här tillägget för att hantera ögonblicksbilder"
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"register_globals är en PHP-mekanism för att registrera alla globala "
-"variabler så de är tillgängliga från skript utan att ändra scope. Detta kan "
-"vara en säkerhetsrisk."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Sök efter 'register_globals' i din php.ini och ställ in den som 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP använder det här värdet för garage collection för att ta bort gamla "
 "sessioner"
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4093,7 +4185,7 @@ msgstr ""
 "Att ställa in det här värdet till en dag kommer att förhindra förlust av "
 "sessioner och cookies innan de verkligen når time out."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4101,12 +4193,12 @@ msgstr ""
 "Sök efter 'session.gc_maxlifetime' i din php.ini och sätt den till 86400 "
 "eller högre."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Av"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4114,11 +4206,11 @@ msgstr ""
 "För att använda FusionDirectory utan problem, bör session.auto_start i din "
 "php.ini sättas till 'Off'."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Sök efter 'session.auto_start' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4127,14 +4219,14 @@ msgstr ""
 "gräns kan orsaka fel som inte är reproducerbara. Öka värdet för större "
 "installationer."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Sök efter 'memory_limit' i din php.ini och ställ in den på '128M' eller "
 "högre."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4142,22 +4234,22 @@ msgstr ""
 "Den här inställningen påverkar PHPs utdata-hantering. Stäng av den för att "
 "öka prestanda."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Sök efter 'implicit_flush' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Exekveringstiden bör vara åtminstone 30 sekunder."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Sök efter 'max_execution_time' i php.ini och sätt den till '30' eller högre."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4165,120 +4257,109 @@ msgstr ""
 "Öka serversäkerheten genom att sätta expose_php till 'off'. PHP kommer i så "
 "fall inte sända någon information om servern du kör på."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Sök efter 'expose_php' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr "Öka din serverprestanda genom att sätta magic_quotes_gpc till 'off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Sök efter 'zend.ze1_compatibility_mode' i php.ini och sätt den till 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrera"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "LDAP-inspektion"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analysera nuvarande LDAP-katalog för kompatibilitet med FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr "Inspekterar objektklasser i root-objektet"
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr "Kontrollerar rättigheter för LDAP-databas"
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Söker efter osynliga användare"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Söker efter superadministratör"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Söker efter användare utanför person-trädet"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Söker efter grupper utanför gruppträdet"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Söker efter osynliga avdelningar"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Söker efter dubbletter av UID-nummer"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "LDAP-fråga misslyckades"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Misslyckades"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Saknar objektklassen '%s' för FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr "Vänligen kontrollera din installation."
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4287,17 +4368,17 @@ msgstr ""
 "Kan inte hantera den strukturella objekttypen hos ditt root-objekt. Vänligen"
 " lägg till objektklassen '%s' manuellt."
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
@@ -4306,102 +4387,102 @@ msgstr ""
 "Hittade %s användare som inte kommer att vara synlig(a) i FusionDirectory "
 "eller som är ofullständig(a)."
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Migreringsfel"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Grupper"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr "Det finns inget FusionDirectory-adminkonto i din LDAP-katalog."
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Flytta användare in i det konfigurerade användarträdet"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "till"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Följande referenser kommer att uppdateras"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Hittade %s grupper utanför det konfigurerade trädet '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 "Hittade %s avdelning(ar) som inte kommer att vara synliga i FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4645,27 +4726,27 @@ msgstr "Kontrollera användarnamn/lösenord-kombinationen."
 msgid "Account locked. Please contact your system administrator!"
 msgstr "Kontot låst. Kontakta systemadministratören!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4851,11 +4932,15 @@ msgstr "Efter migrering"
 msgid "Close"
 msgstr "Stäng"
 
-#: setup/setup_checks.tpl.c:11
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr "FusionDirectory kommer INTE att kunna köras utan att åtgärda detta."
 
-#: setup/setup_checks.tpl.c:14
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr "FusionDirectory kommer att kunna köras utan att åtgärda detta."
 
diff --git a/locale/tr_TR/fusiondirectory.po b/locale/tr_TR/fusiondirectory.po
index 1fc49fe915286d1312d693306fa5851020148c5c..a506eeb63ea9c5dffa45c5792afccceb9505190a 100644
--- a/locale/tr_TR/fusiondirectory.po
+++ b/locale/tr_TR/fusiondirectory.po
@@ -3,13 +3,17 @@
 # This file is distributed under the same license as the FusionDirectory package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# abc Def <hdogan1974@gmail.com>, 2021
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"Last-Translator: abc Def <hdogan1974@gmail.com>, 2021\n"
 "Language-Team: Turkish (Turkey) (https://www.transifex.com/fusiondirectory/teams/12202/tr_TR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -35,11 +39,11 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
-msgstr ""
+msgstr "Hata"
 
 #: include/class_msg_dialog.inc:177
 msgid "Please fix the above error and reload the page."
@@ -83,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
-msgstr ""
+msgstr "Dosya"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
-msgstr ""
+msgstr "Tür"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -214,7 +219,7 @@ msgstr ""
 
 #: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
 msgid "Select all"
-msgstr ""
+msgstr "Hepsini seç"
 
 #: include/class_listing.inc:567
 msgid "created by"
@@ -253,16 +258,16 @@ msgstr ""
 
 #: include/class_listing.inc:1655 include/class_listing.inc:1708
 msgid "Copy"
-msgstr ""
+msgstr "Kopyala"
 
 #: include/class_listing.inc:1661 include/class_listing.inc:1696
 msgid "Cut"
-msgstr ""
+msgstr "Kes"
 
 #: include/class_listing.inc:1669 include/class_listing.inc:1671
 #: include/class_CopyPasteHandler.inc:330
 msgid "Paste"
-msgstr ""
+msgstr "Yapıştır"
 
 #: include/class_listing.inc:1696
 msgid "Cut this entry"
@@ -343,9 +348,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -377,7 +380,7 @@ msgstr ""
 
 #: include/class_baseSelector.inc:275
 msgid "Submit"
-msgstr ""
+msgstr "Gönder"
 
 #: include/class_filter.inc:331 include/functions.inc:1545
 msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
@@ -410,7 +413,7 @@ msgstr ""
 
 #: include/class_ldapSizeLimit.inc:131
 msgid "Configure"
-msgstr ""
+msgstr "Yapılandır"
 
 #: include/class_ldapSizeLimit.inc:136
 msgid "incomplete"
@@ -472,14 +475,14 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
-msgstr ""
+msgstr "Ä°kaz"
 
 #: include/functions.inc:783
 msgid ""
@@ -643,12 +646,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -929,10 +932,10 @@ msgstr ""
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
 #: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Cancel"
-msgstr ""
+msgstr "Ä°ptal et"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -943,12 +946,12 @@ msgstr ""
 
 #: include/class_msgPool.inc:503
 msgid "Save"
-msgstr ""
+msgstr "Kaydet"
 
 #: include/class_msgPool.inc:513
 #, php-format
 msgid "Add"
-msgstr ""
+msgstr "Ekle"
 
 #: include/class_msgPool.inc:513
 #, php-format
@@ -961,7 +964,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclEditionDialog.inc:194
 #, php-format
 msgid "Delete"
-msgstr ""
+msgstr "Sil"
 
 #: include/class_msgPool.inc:523
 #, php-format
@@ -971,7 +974,7 @@ msgstr ""
 #: include/class_msgPool.inc:533
 #, php-format
 msgid "Edit..."
-msgstr ""
+msgstr "Düzenle..."
 
 #: include/class_msgPool.inc:533
 #, php-format
@@ -1033,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,33 +1321,33 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
-msgstr ""
+msgstr "Saatler"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
-msgstr ""
+msgstr "Dakikalar"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
-msgstr ""
+msgstr "Saniyeler"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
-msgstr ""
+msgstr "Zaman"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
@@ -1382,12 +1388,12 @@ msgstr ""
 #: include/simpleplugin/attributes/class_FileAttribute.inc:418
 #: include/simpleplugin/attributes/class_FileAttribute.inc:419
 msgid "Upload"
-msgstr ""
+msgstr "Yükleme"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:171
 #: include/simpleplugin/attributes/class_FileAttribute.inc:172
 msgid "Download"
-msgstr ""
+msgstr "Ä°ndir"
 
 #: include/simpleplugin/attributes/class_FileAttribute.inc:368
 #, php-format
@@ -1417,7 +1423,7 @@ msgstr ""
 #: plugins/admin/groups/group-list.xml:150
 #: plugins/admin/users/user-list.xml:115
 msgid "Remove"
-msgstr ""
+msgstr "Kaldır"
 
 #: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
 msgid "Number"
@@ -1437,7 +1443,7 @@ msgstr ""
 #: plugins/admin/users/user-list.xml:108
 #: plugins/admin/aclrole/class_aclEditionDialog.inc:192
 msgid "Edit"
-msgstr ""
+msgstr "Düzenle"
 
 #: include/simpleplugin/attributes/class_IntAttribute.inc:50
 #, php-format
@@ -1588,42 +1594,42 @@ msgstr ""
 
 #: include/simpleplugin/class_helpersAttribute.inc:268
 msgid "B"
-msgstr ""
+msgstr "B"
 
 #: include/simpleplugin/class_helpersAttribute.inc:269
 msgid "KiB"
-msgstr ""
+msgstr "KiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:270
 msgid "MiB"
-msgstr ""
+msgstr "MiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:271
 msgid "GiB"
-msgstr ""
+msgstr "GiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:272
 msgid "TiB"
-msgstr ""
+msgstr "TiB"
 
 #: include/simpleplugin/class_helpersAttribute.inc:286
 msgid "seconds"
-msgstr ""
+msgstr "seconds"
 
 #: include/simpleplugin/class_helpersAttribute.inc:287
 msgid "minutes"
-msgstr ""
+msgstr "dakikalar"
 
 #: include/simpleplugin/class_helpersAttribute.inc:288
 msgid "hours"
-msgstr ""
+msgstr "saatler"
 
 #: include/simpleplugin/class_helpersAttribute.inc:289
 msgid "days"
-msgstr ""
+msgstr "günler"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,9 +1710,9 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
-msgstr ""
+msgstr "OluÅŸtur"
 
 #: include/class_acl.inc:35 include/class_acl.inc:39
 msgid "ACL"
@@ -1736,12 +1742,7 @@ msgstr ""
 #: include/class_acl.inc:173
 #, php-format
 msgid "All users"
-msgstr ""
-
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
+msgstr "Tüm kullanıcılar"
 
 #: include/class_ldap.inc:277
 msgid "Performance warning"
@@ -2086,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -2943,7 +2944,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:153
 msgid "Password settings"
-msgstr ""
+msgstr "Parola ayarları"
 
 #: plugins/config/class_configInLdap.inc:156
 msgid "Password default hash"
@@ -2963,7 +2964,7 @@ msgstr ""
 
 #: plugins/config/class_configInLdap.inc:165
 msgid "Password minimum length"
-msgstr ""
+msgstr "Parola asgari uzunluÄŸu"
 
 #: plugins/config/class_configInLdap.inc:165
 msgid "Minimum length of user passwords"
@@ -3394,7 +3395,7 @@ msgstr ""
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
 msgid "Passwords"
-msgstr ""
+msgstr "Parolalar"
 
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
 msgid "Statistics about passwords"
@@ -3441,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3470,7 +3583,7 @@ msgstr ""
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
 #: ihtml/themes/breezy/login.tpl.c:20 ihtml/themes/breezy/login.tpl.c:23
 msgid "Password"
-msgstr ""
+msgstr "Parola"
 
 #: plugins/personal/generic/class_user.inc:51
 msgid "Password (Leave empty if you do not wish to change it)"
@@ -3709,7 +3822,7 @@ msgstr ""
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
-msgstr ""
+msgstr "Yeni parola"
 
 #: plugins/personal/generic/class_user.inc:724
 msgid "The password used as new and current are too similar."
@@ -3755,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
-msgstr ""
+msgstr "Yönetici parolası"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4416,7 +4506,7 @@ msgstr ""
 
 #: html/main.php:140
 msgid "Password change"
-msgstr ""
+msgstr "Parola deÄŸiÅŸtir"
 
 #: html/main.php:140
 msgid "Your password is about to expire, please change your password!"
@@ -4521,27 +4611,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4723,11 +4813,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
@@ -4806,11 +4900,11 @@ msgstr ""
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
-msgstr ""
+msgstr "İndirme yapılandırması"
 
 #: setup/setup_finish.tpl.c:11
 msgid "Status: "
-msgstr ""
+msgstr "Durum:"
 
 #: setup/setup_migrate_accounts.tpl.c:2
 msgid ""
@@ -4881,7 +4975,7 @@ msgstr ""
 
 #: ihtml/themes/legacy/recovery.tpl.c:41 ihtml/themes/breezy/recovery.tpl.c:41
 msgid "Password strength"
-msgstr ""
+msgstr "Parola kuvvetliliÄŸi"
 
 #: ihtml/themes/legacy/recovery.tpl.c:44 ihtml/themes/legacy/recovery.tpl.c:47
 #: ihtml/themes/legacy/recovery.tpl.c:50 ihtml/themes/legacy/recovery.tpl.c:86
@@ -4910,7 +5004,7 @@ msgstr ""
 #: ihtml/themes/legacy/recovery.tpl.c:59 ihtml/themes/legacy/recovery.tpl.c:62
 #: ihtml/themes/breezy/recovery.tpl.c:59 ihtml/themes/breezy/recovery.tpl.c:62
 msgid "Success"
-msgstr ""
+msgstr "Başarı"
 
 #: ihtml/themes/legacy/recovery.tpl.c:65 ihtml/themes/breezy/recovery.tpl.c:65
 msgid "Your password has been changed successfully."
@@ -4948,7 +5042,7 @@ msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
 msgid "I forgot my password"
-msgstr ""
+msgstr "Ben ÅŸifremi unuttum"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
 msgid "Click here to log in"
diff --git a/locale/ug/fusiondirectory.po b/locale/ug/fusiondirectory.po
index ccd5e8df012fac2e252fc8c8f384bdf8a1149031..3f4cbab29d83b1d6f6f2523ea72d8139762557b9 100644
--- a/locale/ug/fusiondirectory.po
+++ b/locale/ug/fusiondirectory.po
@@ -8,14 +8,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Uighur (https://www.transifex.com/fusiondirectory/teams/12202/ug/)\n"
+"Language-Team: Uyghur (https://www.transifex.com/fusiondirectory/teams/12202/ug/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ug\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
 #: include/class_config.inc:354 include/class_listing.inc:530
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4593,6 +4679,7 @@ msgstr ""
 msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
 msgid "There is no expired account"
@@ -4607,6 +4694,7 @@ msgstr ""
 msgid "There is one account expiring in the next %1 days"
 msgid_plural "There are %2 accounts expiring in the next %1 days"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
@@ -4620,6 +4708,7 @@ msgstr ""
 msgid "There is 1 group:"
 msgid_plural "There are %1 groups:"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
@@ -4629,6 +4718,7 @@ msgstr ""
 msgid "One of them is a %1 group"
 msgid_plural "%2 are %1 groups"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
@@ -4639,16 +4729,19 @@ msgstr ""
 msgid "There is 1 user:"
 msgid_plural "There are %1 users:"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
 msgid "One of them use %1 method"
 msgid_plural "%2 of them use %1 method"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
 msgid_plural "%1 of them are locked"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
 msgid "None of them is locked"
@@ -4662,6 +4755,7 @@ msgstr ""
 msgid "One of them have a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -4715,11 +4809,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/vi_VN/fusiondirectory.po b/locale/vi_VN/fusiondirectory.po
index 2ef9fff81db5512c4098f2b31cca57288adc84fd..d6d405b3a8b1b1142101e3a83332c2b9a6962cb6 100644
--- a/locale/vi_VN/fusiondirectory.po
+++ b/locale/vi_VN/fusiondirectory.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
 "Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/fusiondirectory/teams/12202/vi_VN/)\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Lá»—i"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "Lá»—i LDAP"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "File"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "Dòng"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "Lá»—i PHP"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "lá»›p"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "chức năng"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "tĩnh"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "phương pháp"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Dò theo"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "Loại"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "Tranh luận"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Tạo ra trang này khiến cho bộ dịch PHP sinh ra một số lỗi!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr "Gửi thông báo lỗi"
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "Thông tin Toggle"
 
@@ -347,9 +348,7 @@ msgstr "Tên Mẫu"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr "Lá»—i ná»™i bá»™"
 
@@ -485,11 +484,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr "LDAP server trả về: %s"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "Cảnh báo"
@@ -660,12 +659,12 @@ msgstr "Đăng nhập"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "Cho phép"
@@ -948,8 +947,8 @@ msgstr "PHP mở rộng %s mất tích!"
 msgid "Cancel"
 msgstr "Hủy bỏ"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
@@ -1058,7 +1057,9 @@ msgid "Remove %s settings"
 msgstr "Xóa thiết lập %s"
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1293,6 +1294,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "Tên"
@@ -1327,8 +1329,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "Cơ sở"
 
@@ -1340,31 +1342,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1648,7 +1650,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1701,23 +1703,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr "Lỗi về cấp phép"
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr "Bạn không được phép tạo ra snapshot cho %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr "Bạn không được phép phục hồi một snapshot cho %s."
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1729,7 +1731,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "Tạo "
 
@@ -1763,11 +1765,6 @@ msgstr "Entry '%s' không được biết đến!"
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr "Cảnh báo khả năng hoạt động"
@@ -2112,12 +2109,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2481,7 +2478,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "Người dùng"
 
@@ -3467,6 +3464,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3781,134 +3890,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr "Tin nhắn chào mừng"
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "Tên vị trí"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr "Kết nối TLS"
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr "Thẩm định quyền"
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "Admin DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "Mật khẩu Admin"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "Trạng thái"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Tình trạng hiện tại"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr "Cài đặt LDAP"
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr "Thiết lập kết nối LDAP"
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Kết nối nặc danh với server '%s' thất bại!"
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Kết nối với vai trò người dùng '%s' thất bại!"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Kết nối nặc danh đến server '%s' thành công."
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr "Xin hãy xác định người dùng và mật khẩu!"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Kết nối với tư cách người dùng '%s' đến server '%s' thành công!"
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr "Kiểm tra các module và mở rộng của PHP"
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -4011,27 +4118,11 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-"đăng ký_toàn cầu (register_globals) là một cơ chế PHP dùng để đăng ký tất cả"
-" các biến số toàn cầu mà có thể truy cập từ các tập lệnh mà không phải thay "
-"đổi phạm vi. Đây có thể là một rủi ro về bảo mật."
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-"Tìm kiếm 'register_globals' trong thư mục php.ini của bạn và chuyển nó thành"
-" 'Off'."
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP sử dụng giá trị này để phần mềm thu dọn rác có thể sóa các phiên cũ đi."
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4039,7 +4130,7 @@ msgstr ""
 "Thiết lập giá trị này đến một ngày sẽ ngăn cản việc mất đi các phiên và "
 "cookies trước khi chúng thực sự hết hạn."
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4047,35 +4138,35 @@ msgstr ""
 "Tìm kiếm  'session.gc_maxlifetime' trong thư mục php.ini của bạn và thiết "
 "lập nó đển 86400 hoặc cao hơn."
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr "Tắt"
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Tìm kiếm  'session.auto_start' trong thư mục php.ini của bạn và đặt nó thành"
 " 'Off'."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4083,17 +4174,17 @@ msgstr ""
 "Lựa chọn này sẽ ảnh hưởng tới việc sử lý đầu vào PHP. Tắt chức năng này đi, "
 "để tăng khả năng hoạt động."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Tìm kiếm 'implicit_flush' trong thư mục php.ini của bạn và chuyển nó sang "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Thời gian chạy ít nhất là 30 giây."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4101,7 +4192,7 @@ msgstr ""
 "Tìm kiếm 'max_execution_time' trong thư mục php.ini của bạn và thiết lập nó "
 "đến '30' hoặc cao hơn."
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4110,242 +4201,228 @@ msgstr ""
 " sẽ không gửi bất cứ thông tin nào về server bạn đang chạy trong trường hợp "
 "này."
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Tìm kiếm 'expose_php' trong thư much php.ini của bạn và chuyển nó thành "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-"Tăng cường khả năng hoạt động cho server của bạn bằng việc thiết lập "
-"magic_quotes_gpc thành 'off'."
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-"Tìm kiếm 'zend.ze1_compatibility_mode' trong thư mục  php.ini và chuyển nó "
-"thành 'Off'."
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Di trú"
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr "Thanh tra LDAP"
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr "Kiểm tra những người dùng ẩn"
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr "Kiểm tra siêu admin"
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr "Kiểm tra người dùng bên ngoài cây con người"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr "Kiểm tra nhóm bên ngoài cây nhóm"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr "Kiểm tra các bộ phận ẩn"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr "Kiểm tra các số ID cuả người dùng (UID) được nhân bản"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr "Yêu cầu LDAP thất bại"
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "Thất bại"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr "Lỗi di trú"
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "Các nhóm"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr "Chuyển người dùng sang cây người dùng được cấu hình"
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr "đến"
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr "Tham chiếu sau sẽ được cập nhật"
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr "Đã tìm thấy %s nhóm bên ngoài cây được cấu hình '%s'."
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4578,27 +4655,27 @@ msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 "Tài khoản bị khóa. Xin hãy liên lạc với admin quản trị hệ thống của bạn!"
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4775,11 +4852,15 @@ msgstr "Sau khi di trú"
 msgid "Close"
 msgstr "Đóng"
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/zh/fusiondirectory.po b/locale/zh/fusiondirectory.po
index 179ca820897ad4e078f636f8a5c1b573e563cd05..6c836a07d206060fa26996f43cadb58e8c9aabae 100644
--- a/locale/zh/fusiondirectory.po
+++ b/locale/zh/fusiondirectory.po
@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2021
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
 "Language-Team: Chinese (https://www.transifex.com/fusiondirectory/teams/12202/zh/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,9 +39,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "错误"
 
@@ -87,8 +87,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr "LDAP 错误"
 
@@ -139,59 +139,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr "文件"
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr "行"
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr "PHP 错误"
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr "ç±»"
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr "功能"
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr "静态"
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr "方法"
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "跟踪"
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr "类型"
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr "参数"
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "生成这个页面导致 PHP 解析器发生一些错误!"
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr "切换信息"
 
@@ -347,9 +348,7 @@ msgstr "模板名称"
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -476,11 +475,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr "警告"
@@ -647,12 +646,12 @@ msgstr "登录名"
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr "允许"
@@ -935,8 +934,8 @@ msgstr ""
 msgid "Cancel"
 msgstr "取消"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "好"
 
@@ -1037,7 +1036,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1272,6 +1273,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr "名称"
@@ -1306,8 +1308,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr "位置"
 
@@ -1319,31 +1321,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr "日期"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1627,7 +1629,7 @@ msgid "days"
 msgstr "天"
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1680,23 +1682,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1708,7 +1710,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr "创建"
 
@@ -1742,11 +1744,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2090,12 +2087,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2459,7 +2456,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr "用户"
 
@@ -3445,6 +3442,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr "导入"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3759,134 +3868,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr "位置名称"
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr "管理员 DN"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr "管理员口令"
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr "状态"
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr "重试"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr "刷新"
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3989,314 +4096,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr "失败"
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr "用户组"
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4525,27 +4611,27 @@ msgstr "请检查用户名/口令。"
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4719,11 +4805,15 @@ msgstr ""
 msgid "Close"
 msgstr "关闭"
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/locale/zh_TW/fusiondirectory.po b/locale/zh_TW/fusiondirectory.po
index f0394723dc96fe29c2c97924ec13e97c4c7b8fab..b5b96a2899f56521fc6dc21e63021ad168557473 100644
--- a/locale/zh_TW/fusiondirectory.po
+++ b/locale/zh_TW/fusiondirectory.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2019-06-27 14:00+0000\n"
+"POT-Creation-Date: 2022-07-28 16:55+0000\n"
 "PO-Revision-Date: 2016-08-29 14:52+0000\n"
 "Language-Team: Chinese (Taiwan) (https://www.transifex.com/fusiondirectory/teams/12202/zh_TW/)\n"
 "MIME-Version: 1.0\n"
@@ -35,9 +35,9 @@ msgstr ""
 #: include/simpleplugin/class_simplePlugin.inc:697
 #: include/simpleplugin/class_simpleTabs.inc:73
 #: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:461
-#: html/index.php:475 html/index.php:485 html/index.php:542 html/index.php:552
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
+#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
+#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
@@ -83,8 +83,8 @@ msgstr ""
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:185
 #: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
 #: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:452
-#: setup/class_setupStepMigrate.inc:1068 html/index.php:379
+#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
+#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
 msgid "LDAP error"
 msgstr ""
 
@@ -135,59 +135,60 @@ msgstr ""
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
+#: include/php_setup.inc:61 include/php_setup.inc:148
 msgid "File"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
+#: include/php_setup.inc:63 include/php_setup.inc:148
 msgid "Line"
 msgstr ""
 
-#: include/php_setup.inc:53
+#: include/php_setup.inc:69
 msgid "PHP error"
 msgstr ""
 
-#: include/php_setup.inc:62
+#: include/php_setup.inc:78
 msgid "class"
 msgstr ""
 
-#: include/php_setup.inc:70
+#: include/php_setup.inc:86
 msgid "function"
 msgstr ""
 
-#: include/php_setup.inc:76
+#: include/php_setup.inc:92
 msgid "static"
 msgstr ""
 
-#: include/php_setup.inc:80
+#: include/php_setup.inc:96
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:132
+#: include/php_setup.inc:148
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
 msgid "Type"
 msgstr ""
 
-#: include/php_setup.inc:133
+#: include/php_setup.inc:149
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:231
+#: include/php_setup.inc:247
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:236
+#: include/php_setup.inc:252
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:237
+#: include/php_setup.inc:253
 msgid "Send bugreport"
 msgstr ""
 
-#: include/php_setup.inc:242
+#: include/php_setup.inc:258
 msgid "Toggle information"
 msgstr ""
 
@@ -343,9 +344,7 @@ msgstr ""
 #: include/functions.inc:584 include/functions.inc:705
 #: include/functions.inc:1683 include/functions.inc:1722
 #: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127 include/class_ldap.inc:797
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:797 include/class_ldap.inc:822
 msgid "Internal error"
 msgstr ""
 
@@ -472,11 +471,11 @@ msgstr ""
 msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:212
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:1021
-#: setup/class_setupStepMigrate.inc:1140 setup/class_setupStepMigrate.inc:1251
-#: setup/class_setupStepMigrate.inc:1326 setup/class_setupStepMigrate.inc:1370
-#: html/main.php:156 html/index.php:594 setup/setup_checks.tpl.c:8
+#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
+#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
+#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
+#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
 #: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
 msgid "Warning"
 msgstr ""
@@ -643,12 +642,12 @@ msgstr ""
 
 #: include/class_CopyPasteHandler.inc:206
 #: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1041
-#: include/simpleplugin/class_simpleManagement.inc:1138
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1042
+#: include/simpleplugin/class_simpleManagement.inc:1139
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #: plugins/admin/users/class_userManagement.inc:153
 msgid "Permission"
 msgstr ""
@@ -931,8 +930,8 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:133
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
+#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
@@ -1033,7 +1032,9 @@ msgid "Remove %s settings"
 msgstr ""
 
 #: include/class_msgPool.inc:638
-msgid "Click the 'Edit' button below to change information in this dialog"
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the"
+" fields"
 msgstr ""
 
 #: include/class_msgPool.inc:646
@@ -1268,6 +1269,7 @@ msgstr ""
 #: plugins/admin/aclrole/class_aclRole.inc:99
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:64
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
 #: setup/setup_migrate_adminAccount.tpl.c:8
 msgid "Name"
 msgstr ""
@@ -1302,8 +1304,8 @@ msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1315,31 +1317,31 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
+#: include/simpleplugin/attributes/class_DateAttribute.inc:132
 #, php-format
 msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:199
-#: include/simpleplugin/attributes/class_DateAttribute.inc:273
+#: include/simpleplugin/attributes/class_DateAttribute.inc:200
+#: include/simpleplugin/attributes/class_DateAttribute.inc:274
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:204
-#: include/simpleplugin/attributes/class_DateAttribute.inc:278
+#: include/simpleplugin/attributes/class_DateAttribute.inc:205
+#: include/simpleplugin/attributes/class_DateAttribute.inc:279
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:209
+#: include/simpleplugin/attributes/class_DateAttribute.inc:210
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:297
+#: include/simpleplugin/attributes/class_DateAttribute.inc:298
 #: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
 msgid "Date"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:303
+#: include/simpleplugin/attributes/class_DateAttribute.inc:304
 msgid "Time"
 msgstr ""
 
@@ -1623,7 +1625,7 @@ msgid "days"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add (dialog)"
+msgid "Add(dialog)"
 msgstr ""
 
 #: include/simpleplugin/class_dialogAttributes.inc:517
@@ -1676,23 +1678,23 @@ msgstr ""
 msgid "The filter is incomplete!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1106
+#: include/simpleplugin/class_simpleManagement.inc:1107
 msgid "Permission error"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1138
+#: include/simpleplugin/class_simpleManagement.inc:1139
 #, php-format
 msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1187
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: include/simpleplugin/class_simpleManagement.inc:1285
+#: include/simpleplugin/class_simpleManagement.inc:1188
+#: include/simpleplugin/class_simpleManagement.inc:1268
+#: include/simpleplugin/class_simpleManagement.inc:1286
 #, php-format
 msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1329
+#: include/simpleplugin/class_simpleManagement.inc:1330
 #, php-format
 msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
@@ -1704,7 +1706,7 @@ msgstr ""
 #: include/simpleplugin/simple-list.xml:59
 #: plugins/admin/departments/dep-list.xml:48
 #: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:829
 msgid "Create"
 msgstr ""
 
@@ -1738,11 +1740,6 @@ msgstr ""
 msgid "All users"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
-msgstr ""
-
 #: include/class_ldap.inc:277
 msgid "Performance warning"
 msgstr ""
@@ -2086,12 +2083,12 @@ msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:198
 #, php-format
-msgid "Action called without error (results were \"%s\")"
+msgid "Action called without error(results were \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:203
 #, php-format
-msgid "Action called without error (result was \"%s\")"
+msgid "Action called without error(result was \"%s\")"
 msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:263
@@ -2455,7 +2452,7 @@ msgstr ""
 
 #: plugins/admin/users/class_userManagement.inc:42
 #: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:809
+#: setup/class_setupStepMigrate.inc:816
 msgid "Users"
 msgstr ""
 
@@ -3441,6 +3438,118 @@ msgid ""
 "error: %s"
 msgstr ""
 
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:41
+#: plugins/addons/subscription/class_subscriptionInfo.inc:47
+#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+msgid "Subscription information"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+msgid "Import"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+#: plugins/addons/subscription/class_subscriptionInfo.inc:204
+msgid "Import error"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:178
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
@@ -3755,134 +3864,132 @@ msgstr ""
 msgid "The welcome message"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
+#: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Location name"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
+#: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
+#: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
+#: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
+#: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
+#: setup/class_setupStepLdap.inc:62
 msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
+#: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
+#: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
+#: setup/class_setupStepLdap.inc:86
 msgid "Status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
+#: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
+#: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
+#: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
+#: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: setup/class_setupStepLdap.inc:183
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: setup/class_setupStepLdap.inc:185
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:187
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:191
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
+#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
+#: setup/class_setupStepLdap.inc:193
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:195
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
 msgid "PHP module and extension checks"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:37
-msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+msgid "PHP setup configuration"
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
@@ -3985,314 +4092,293 @@ msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
 #: setup/class_setupStepChecks.inc:172
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:173
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:180
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181
+#: setup/class_setupStepChecks.inc:173
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:174
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:189 setup/class_setupStepChecks.inc:205
-#: setup/class_setupStepChecks.inc:221 setup/class_setupStepChecks.inc:229
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:182
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:183
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:190
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:198
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:199
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:206
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:207
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
+#: setup/class_setupStepChecks.inc:214
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
+#: setup/class_setupStepChecks.inc:215
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:230
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:231
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to "
-"'Off'."
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
+#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
+#: setup/class_setupStepMigrate.inc:230
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
+#: setup/class_setupStepMigrate.inc:238
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: setup/class_setupStepMigrate.inc:244
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
+#: setup/class_setupStepMigrate.inc:250
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
+#: setup/class_setupStepMigrate.inc:263
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
+#: setup/class_setupStepMigrate.inc:264
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
+#: setup/class_setupStepMigrate.inc:265
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
+#: setup/class_setupStepMigrate.inc:266
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
+#: setup/class_setupStepMigrate.inc:267
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:268
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:269
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:270
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:271
 msgid "Checking for duplicated UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:272
 msgid "Checking for duplicated GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:713
-#: setup/class_setupStepMigrate.inc:918 setup/class_setupStepMigrate.inc:994
-#: setup/class_setupStepMigrate.inc:1117 setup/class_setupStepMigrate.inc:1210
-#: setup/class_setupStepMigrate.inc:1300 setup/class_setupStepMigrate.inc:1344
+#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
+#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
+#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
+#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
+#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:714
-#: setup/class_setupStepMigrate.inc:919 setup/class_setupStepMigrate.inc:995
-#: setup/class_setupStepMigrate.inc:1118 setup/class_setupStepMigrate.inc:1211
-#: setup/class_setupStepMigrate.inc:1301 setup/class_setupStepMigrate.inc:1345
+#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
+#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
+#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
+#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
+#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:820
+#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
+#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
+#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
+#: setup/class_setupStepMigrate.inc:352
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
+#: setup/class_setupStepMigrate.inc:353
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
+#: setup/class_setupStepMigrate.inc:375
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: setup/class_setupStepMigrate.inc:508
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: setup/class_setupStepMigrate.inc:519
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: setup/class_setupStepMigrate.inc:582
 #, php-format
 msgid ""
 "Found %s user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:598
+#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:685 setup/class_setupStepMigrate.inc:965
+#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
 msgid "Migration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:687
+#: setup/class_setupStepMigrate.inc:694
 #, php-format
 msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:812
+#: setup/class_setupStepMigrate.inc:819
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:815
+#: setup/class_setupStepMigrate.inc:822
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:821
+#: setup/class_setupStepMigrate.inc:828
 msgid "There is no FusionDirectory administrator account inside your LDAP."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:859
+#: setup/class_setupStepMigrate.inc:866
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:933
+#: setup/class_setupStepMigrate.inc:940
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:935
+#: setup/class_setupStepMigrate.inc:942
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:937
+#: setup/class_setupStepMigrate.inc:944
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:967
+#: setup/class_setupStepMigrate.inc:974
 #, php-format
 msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1022
+#: setup/class_setupStepMigrate.inc:1029
 #, php-format
 msgid "Found %s user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1036 setup/class_setupStepMigrate.inc:1050
+#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1068
+#: setup/class_setupStepMigrate.inc:1075
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "Entry will be moved from"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1080
+#: setup/class_setupStepMigrate.inc:1087
 msgid "to"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1090
+#: setup/class_setupStepMigrate.inc:1097
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1141
+#: setup/class_setupStepMigrate.inc:1148
 #, php-format
 msgid "Found %s groups outside the configured tree '%s'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1155 setup/class_setupStepMigrate.inc:1169
+#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1252
+#: setup/class_setupStepMigrate.inc:1259
 #, php-format
 msgid "Found %s department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1263 setup/class_setupStepMigrate.inc:1274
+#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1327
+#: setup/class_setupStepMigrate.inc:1334
 #, php-format
 msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1371
+#: setup/class_setupStepMigrate.inc:1378
 #, php-format
 msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
 msgstr ""
@@ -4521,27 +4607,27 @@ msgstr ""
 msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: html/index.php:463
+#: html/index.php:467
 #, php-format
 msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: html/index.php:477
+#: html/index.php:481
 #, php-format
 msgid "Header user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:487 html/index.php:554
+#: html/index.php:491 html/index.php:555
 #, php-format
 msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: html/index.php:544
+#: html/index.php:545
 #, php-format
 msgid "CAS user \"%s\" could not be found in the LDAP"
 msgstr ""
 
-#: html/index.php:594
+#: html/index.php:595
 msgid ""
 "Your browser has cookies disabled. Please enable cookies and reload this "
 "page before logging in!"
@@ -4715,11 +4801,15 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/setup_checks.tpl.c:2
+msgid "show information"
 msgstr ""
 
 #: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
 msgstr ""
 
diff --git a/plugins/addons/dashboard/class_dashBoard.inc b/plugins/addons/dashboard/class_dashBoard.inc
index 4ba70276fb47562957342715e83f6b2f988eaad1..57cd0f47dbace4624c179be35a6c72122775ade7 100644
--- a/plugins/addons/dashboard/class_dashBoard.inc
+++ b/plugins/addons/dashboard/class_dashBoard.inc
@@ -21,38 +21,38 @@
 
 class dashboard extends simplePlugin
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Dashboard'),
       'plTitle'       => _('Dashboard'),
       'plDescription' => _('Statistics and various information'),
       'plIcon'        => 'geticon.php?context=applications&icon=utilities-system-monitor&size=48',
-      'plObjectType'  => array(
-        'dashboard' => array(
+      'plObjectType'  => [
+        'dashboard' => [
           'name'      => _('Dashboard'),
           'tabClass'  => 'tabs_dashboard',
           'mainAttr'  => FALSE
-        )
-      ),
-      'plSection'     => array('reporting' => array('name' => _('Reporting'), 'priority' => 30)),
+        ]
+      ],
+      'plSection'     => ['reporting' => ['name' => _('Reporting'), 'priority' => 30]],
       'plPriority'    => 0,
 
-      'plProvidedAcls'  => array(
+      'plProvidedAcls'  => [
         'dashboard' => _('See dashboard')
-      )
-    );
+      ]
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'stats' => array(
+    return [
+      'stats' => [
         'name'  => _('Statistics'),
-        'attrs' => array(new FakeAttribute('stats')),
+        'attrs' => [new FakeAttribute('stats')],
         'template' => get_template_path('main_stats.tpl', TRUE, dirname(__FILE__)),
-      ),
-    );
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -63,10 +63,10 @@ class dashboard extends simplePlugin
   }
 
   /* Compute some statistics */
-  function overview_stats()
+  function overview_stats ()
   {
     global $config;
-    $stats = array();
+    $stats = [];
     foreach ($config->data['OBJECTS'] as $type => $infos) {
       try {
         $nb = count(objects::ls($type, NULL, NULL, '', TRUE));
@@ -83,10 +83,10 @@ class dashboard extends simplePlugin
       if ($nb == 0) {
         continue;
       }
-      $node = array(
+      $node = [
         'name'  => $infos['name'],
         'nb'    => $nb
-      );
+      ];
       if (isset($infos['icon'])) {
         $node['img'] = $infos['icon'];
       } else {
diff --git a/plugins/addons/dashboard/class_dashBoardPasswords.inc b/plugins/addons/dashboard/class_dashBoardPasswords.inc
index fe43bf1b0eebf94ffb4453bb39349a44cb4c6c43..86103501bbc004109d3a76750a0aabec47c8ae5a 100644
--- a/plugins/addons/dashboard/class_dashBoardPasswords.inc
+++ b/plugins/addons/dashboard/class_dashBoardPasswords.inc
@@ -20,27 +20,27 @@
 
 class dashboardPassword extends simplePlugin
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Passwords'),
       'plDescription' => _('Statistics about passwords'),
-      'plObjectType'  => array('dashboard'),
+      'plObjectType'  => ['dashboard'],
       'plPriority'    => 12,
 
-      'plProvidedAcls'  => array()
-    );
+      'plProvidedAcls'  => []
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'pwds' => array(
+    return [
+      'pwds' => [
         'name'  => _('Passwords statistics'),
-        'attrs' => array(new FakeAttribute('pwds_stats')),
+        'attrs' => [new FakeAttribute('pwds_stats')],
         'template' => get_template_path('pwd_stats.tpl', TRUE, dirname(__FILE__)),
-      ),
-    );
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -64,11 +64,11 @@ class dashboardPassword extends simplePlugin
         sprintf(_('Password statistics could not be computed because of the following LDAP error: %s'), $e->getMessage()),
         ERROR_DIALOG
       );
-      $users = array();
+      $users = [];
     }
     $nb_accounts = count($users);
     $nb_locked_accounts = 0;
-    $methods_stats = array();
+    $methods_stats = [];
     foreach ($users as $userPassword) {
       if (!empty($userPassword)) {
         if (preg_match("/^\{[^\}]+\}!/", $userPassword)) {
@@ -77,10 +77,10 @@ class dashboardPassword extends simplePlugin
         $method = passwordMethod::get_method($userPassword);
         $methodClass = get_class($method);
         if (!isset($methods_stats[$methodClass])) {
-          $methods_stats[$methodClass] = array(
+          $methods_stats[$methodClass] = [
             'nb' => 0,
             'name' => $method->get_hash()
-          );
+          ];
           if ($method->get_hash() == $defaultMethod) {
             $methods_stats[$methodClass]['style'] = 'default';
           } elseif ($method->get_hash() == 'clear') {
@@ -95,15 +95,15 @@ class dashboardPassword extends simplePlugin
       }
     }
 
-    return array(
+    return [
       'methods'         => $methods_stats,
       'nb'              => $nb_accounts,
       'img'             => 'geticon.php?context=types&icon=user&size=16',
-      'locked_accounts' => array(
+      'locked_accounts' => [
         'nb'  => $nb_locked_accounts,
         'img' => 'geticon.php?context=status&icon=object-locked&size=16'
-      ),
-    );
+      ],
+    ];
   }
 }
 ?>
diff --git a/plugins/addons/dashboard/class_dashBoardUsers.inc b/plugins/addons/dashboard/class_dashBoardUsers.inc
index e3d72351fed9fc6c2d6123968a9ae5d31ab42f2f..16ae0ea7c36cd30029d2273c915610922c9a68b5 100644
--- a/plugins/addons/dashboard/class_dashBoardUsers.inc
+++ b/plugins/addons/dashboard/class_dashBoardUsers.inc
@@ -21,56 +21,56 @@
 
 class dashboardUsers extends simplePlugin
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Users'),
       'plDescription' => _('Statistics about users'),
-      'plObjectType'  => array('dashboard'),
+      'plObjectType'  => ['dashboard'],
       'plPriority'    => 10,
 
-      'plProvidedAcls'    => array()
-    );
+      'plProvidedAcls'    => []
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'userstats' => array(
+    return [
+      'userstats' => [
         'name'  => _('Users statistics'),
-        'attrs' => array(new FakeAttribute('users_stats')),
+        'attrs' => [new FakeAttribute('users_stats')],
         'template' => get_template_path('users_stats.tpl', TRUE, dirname(__FILE__)),
-      ),
-      'groupstats' => array(
+      ],
+      'groupstats' => [
         'name'  => _('Groups statistics'),
-        'attrs' => array(new FakeAttribute('groups_stats')),
+        'attrs' => [new FakeAttribute('groups_stats')],
         'template' => get_template_path('groups_stats.tpl', TRUE, dirname(__FILE__)),
-      ),
-      'expired_accounts' => array(
+      ],
+      'expired_accounts' => [
         'name'  => _('Expired accounts'),
-        'attrs' => array(new FakeAttribute('expired')),
+        'attrs' => [new FakeAttribute('expired')],
         'template' => get_template_path('users_accounts.tpl', TRUE, dirname(__FILE__)),
-      ),
-    );
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
   {
     parent::__construct($dn, $object, $parent, $mainTab);
 
-    $this->expiredAccountsColumns = array(
-      'user' => array(
+    $this->expiredAccountsColumns = [
+      'user' => [
         'uid'             => _('Login'),
         'cn'              => _('Name'),
         'telephoneNumber' => _('Phone number'),
         'expirationDate'  => _('Expiration date'),
-      ),
-      'manager' => array(
+      ],
+      'manager' => [
         'manager_cn'      => _('Name'),
         'manager_mail'    => _('Email'),
         'manager_phone'   => _('Phone number'),
-      )
-    );
+      ]
+    ];
     $this->users_stats  = $this->computeUsersStats();
     $this->groups_stats = $this->computeGroupsStats();
     $this->expired      = $this->expired_accounts_info();
@@ -97,15 +97,15 @@ class dashboardUsers extends simplePlugin
       $nb_samba_accounts  = 0;
     }
 
-    return array(
-      'accounts' => array(
-        array('name' => 'mail',   'nb' => $nb_mail_accounts,  'img' => 'geticon.php?context=applications&icon=internet-mail&size=16'),
-        array('name' => 'posix',  'nb' => $nb_posix_accounts, 'img' => 'geticon.php?context=applications&icon=os-linux&size=16'),
-        array('name' => 'samba',  'nb' => $nb_samba_accounts, 'img' => 'geticon.php?context=applications&icon=os-windows&size=16')
-      ),
+    return [
+      'accounts' => [
+        ['name' => 'mail',   'nb' => $nb_mail_accounts,  'img' => 'geticon.php?context=applications&icon=internet-mail&size=16'],
+        ['name' => 'posix',  'nb' => $nb_posix_accounts, 'img' => 'geticon.php?context=applications&icon=os-linux&size=16'],
+        ['name' => 'samba',  'nb' => $nb_samba_accounts, 'img' => 'geticon.php?context=applications&icon=os-windows&size=16']
+      ],
       'nb'  => $nb_accounts,
       'img' => 'geticon.php?context=types&icon=user&size=16',
-    );
+    ];
   }
 
   function computeGroupsStats ()
@@ -132,14 +132,14 @@ class dashboardUsers extends simplePlugin
       $nb_samba_groups  = 0;
     }
 
-    return array(
-      'groups' => array(
-        array('name' => 'mail',   'nb' => $nb_mail_groups,  'img' => 'geticon.php?context=applications&icon=internet-mail&size=16'),
-        array('name' => 'samba',  'nb' => $nb_samba_groups, 'img' => 'geticon.php?context=applications&icon=os-windows&size=16')
-      ),
+    return [
+      'groups' => [
+        ['name' => 'mail',   'nb' => $nb_mail_groups,  'img' => 'geticon.php?context=applications&icon=internet-mail&size=16'],
+        ['name' => 'samba',  'nb' => $nb_samba_groups, 'img' => 'geticon.php?context=applications&icon=os-windows&size=16']
+      ],
       'nb'  => $nb_groups,
       'img' => 'geticon.php?context=types&icon=user-group&size=16',
-    );
+    ];
   }
 
   function expired_accounts_info ()
@@ -158,24 +158,24 @@ class dashboardUsers extends simplePlugin
 
     if (!class_available('posixAccount')) {
       /* if shadowExpire is not available no way to check expiration */
-      return array(
+      return [
         'columns'             => $this->expiredAccountsColumns,
-        'accounts'            => array(),
-        'accounts_next_days'  => array(),
+        'accounts'            => [],
+        'accounts_next_days'  => [],
         'next_days'           => $next_expired_days,
-      );
+      ];
     }
 
     /* search all account with all date, mail, telephone */
     try {
-      $attributes = array(
+      $attributes = [
         'dn'                    => 'raw',
         'uid'                   => '*',
         'cn'                    => '*',
         'telephoneNumber'       => '*',
         'manager'               => '*',
         'shadowExpire'          => '*',
-      );
+      ];
       if (class_available('mailAccount')) {
         $attributes['mail'] = 'raw';
       }
@@ -186,18 +186,18 @@ class dashboardUsers extends simplePlugin
         sprintf(_('Expired user information could not be computed because of the following LDAP error: %s'), $e->getMessage()),
         ERROR_DIALOG
       );
-      $users = array();
+      $users = [];
     } catch (FusionDirectoryException $e) {
       msg_dialog::display(
         _('Error'),
         sprintf(_('Expired user information could not be computed because of the following error: %s'), $e->getMessage()),
         ERROR_DIALOG
       );
-      $users = array();
+      $users = [];
     }
 
-    $expired_accounts       = array();
-    $next_expired_accounts  = array();
+    $expired_accounts       = [];
+    $next_expired_accounts  = [];
     foreach ($users as $user) {
       // Test if account is expired now
       if ($user['shadowExpire'][0] <= $today) {
@@ -207,24 +207,24 @@ class dashboardUsers extends simplePlugin
       }
     }
 
-    uasort($expired_accounts,       array('dashboardUsers','compareUsers'));
-    uasort($next_expired_accounts,  array('dashboardUsers','compareUsers'));
+    uasort($expired_accounts,       ['dashboardUsers','compareUsers']);
+    uasort($next_expired_accounts,  ['dashboardUsers','compareUsers']);
 
-    return array(
+    return [
       'columns'             => $this->expiredAccountsColumns,
       'accounts'            => $expired_accounts,
       'accounts_next_days'  => $next_expired_accounts,
       'next_days'           => $next_expired_days,
-    );
+    ];
   }
 
-  static function get_user_infos($attrs)
+  static function get_user_infos ($attrs)
   {
     global $config;
 
     if (isset($attrs['manager'][0])) {
       $ldap = $config->get_ldap_link();
-      $ldap->cat($attrs['manager'][0], array('cn', 'mail', 'telephoneNumber'));
+      $ldap->cat($attrs['manager'][0], ['cn', 'mail', 'telephoneNumber']);
       if ($manager_attrs = $ldap->fetch()) {
         $manager_cn     = (isset($manager_attrs['cn'][0]) ? $manager_attrs['cn'][0] : '');
         $manager_mail   = (isset($manager_attrs['mail'][0]) ? $manager_attrs['mail'][0] : '');
@@ -247,7 +247,7 @@ class dashboardUsers extends simplePlugin
       $human_shadowExpire = '';
     }
 
-    return array(
+    return [
       'uid'             => $attrs['uid'][0],
       'cn'              => $attrs['cn'][0],
       'telephoneNumber' => (isset($attrs['telephoneNumber'][0]) ? $attrs['telephoneNumber'][0] : ''),
@@ -256,7 +256,7 @@ class dashboardUsers extends simplePlugin
       'manager_mail'    => $manager_mail,
       'manager_phone'   => $manager_phone,
       'expirationDate'  => $human_shadowExpire,
-    );
+    ];
   }
 
   static function compareUsers ($a, $b)
diff --git a/plugins/addons/dashboard/tabs_dashBoard.inc b/plugins/addons/dashboard/tabs_dashBoard.inc
index 3cb313f40cfe335d2b4bc997938c802819176d7b..8b3e9788aa991208e98950e42c7beb92b5fce0cd 100644
--- a/plugins/addons/dashboard/tabs_dashBoard.inc
+++ b/plugins/addons/dashboard/tabs_dashBoard.inc
@@ -20,7 +20,7 @@
 
 class tabs_dashboard extends simpleTabs_noSpecial
 {
-  function __construct($type, $dn, $copied_object = NULL)
+  function __construct ($type, $dn, $copied_object = NULL)
   {
     parent::__construct($type, $dn, $copied_object);
     if (!class_available('dhcpService') && !class_available('dnsZone')) {
@@ -29,7 +29,7 @@ class tabs_dashboard extends simpleTabs_noSpecial
     }
   }
 
-  function save()
+  function save ()
   {
   }
 }
diff --git a/plugins/addons/subscription/class_subscriptionInfo.inc b/plugins/addons/subscription/class_subscriptionInfo.inc
new file mode 100644
index 0000000000000000000000000000000000000000..4e381b623410e9a16fa877c667930953221f0d0d
--- /dev/null
+++ b/plugins/addons/subscription/class_subscriptionInfo.inc
@@ -0,0 +1,245 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2020-2021  FusionDirectory
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class subscriptionInfo extends simplePlugin
+{
+  public $objectclasses = ['fdSubscriptionInformation'];
+
+  /* ldap attribute => ini variable */
+  public static $subscriptionAttributes = [
+    'fdSubscriptionName'                => 'Name',
+    'uid'                               => 'Id',
+    'fdSubscriptionType'                => 'Type',
+    'fdSubscriptionContractId'          => 'Contract',
+    'fdSubscriptionStartDate'           => 'StartDate',
+    'fdSubscriptionEndDate'             => 'EndDate',
+  ];
+
+  public static $sectionName = 'FusionDirectory Subscription';
+
+  public static function plInfo ()
+  {
+    return [
+      'plShortName'   => _('Subscription'),
+      'plTitle'       => _('Subscription information'),
+      'plDescription' => _('Information about your FusionDirectory subscription'),
+      'plIcon'        => 'geticon.php?context=applications&icon=fusiondirectory&size=48',
+      'plObjectClass' => ['fdSubscriptionInformation'],
+      'plObjectType'  => [
+        'subscriptionInfo' => [
+          'name'      => _('Subscription information'),
+          'ou'        => get_ou('fusiondirectoryRDN'),
+          'filter'    => 'objectClass=fdSubscriptionInformation',
+        ]
+      ],
+      'plSection'     => 'conf',
+      'plPriority'    => 1,
+
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo()),
+    ];
+  }
+
+  public static function getAttributesInfo ()
+  {
+    return [
+      'info' => [
+        'name'  => _('Subscription information'),
+        'attrs' => [
+          new HiddenAttribute(
+            'cn', TRUE, 'subscription'
+          ),
+          new DisplayAttribute(
+            '', _('Information text for subscription'),
+            'fdSubscriptionText', FALSE
+          ),
+          new DisplayLDAPAttribute(
+            _('Name'), _('Subscription name'),
+            'fdSubscriptionName', TRUE
+          ),
+          new DisplayLDAPAttribute(
+            _('Id'), _('Subscription id'),
+            'uid', TRUE
+          ),
+          new DisplayLDAPAttribute(
+            _('Type'), _('Subscription type'),
+            'fdSubscriptionType', TRUE
+          ),
+          new DisplayLDAPAttribute(
+            _('Contract'), _('Contract reference'),
+            'fdSubscriptionContractId', TRUE
+          ),
+          new GeneralizedTimeDisplayAttribute(
+            _('Start date'), _('Start date of this subscription'),
+            'fdSubscriptionStartDate', TRUE,
+            '', 'Y-m-d'
+          ),
+          new GeneralizedTimeDisplayAttribute(
+            _('End date'), _('End date of this subscription'),
+            'fdSubscriptionEndDate', TRUE,
+            '', 'Y-m-d'
+          ),
+        ],
+      ],
+      'import' => [
+        'name'  => _('Import your subscription'),
+        'attrs' => [
+          new DisplayAttribute(
+            '', _('Information text for expired subscription'),
+            'fdSubscriptionTextExpired', FALSE
+          ),
+          new FileAttribute(
+            '', _('Import subscription'),
+            'import_file', FALSE
+          ),
+          new ButtonAttribute(
+            '', '',
+            'import',
+            _('Import'),
+            NULL, '',
+            'import_file'
+          ),
+        ],
+      ],
+    ];
+  }
+
+  public function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    $this->attributesAccess['import_file']->setInLdap(FALSE);
+    $this->attributesAccess['import']->setInLdap(FALSE);
+
+    $this->fdSubscriptionText = '<p>'.nl2br(sprintf(
+      htmlescape(_("You do not have a valid subscription for this instance of FusionDirectory.\nPlease visit %s for a list of available options.")),
+      '<a href="https://www.fusiondirectory.org/support/" target="_blank"><strong>https://www.fusiondirectory.org/support/</strong></a>'
+    )).'</p>';
+    $this->attributesAccess['fdSubscriptionText']->setAllowHTML(TRUE);
+    $this->fdSubscriptionTextExpired = '<p>'.nl2br(sprintf(
+      htmlescape(_("Your subscription is expired for this instance of FusionDirectory.\nPlease visit %s to renew it.")),
+      '<a href="https://www.fusiondirectory.org/support/" target="_blank"><strong>https://www.fusiondirectory.org/support/</strong></a>'
+    )).'</p>';
+    $this->attributesAccess['fdSubscriptionTextExpired']->setAllowHTML(TRUE);
+  }
+
+  function execute ()
+  {
+    if ($this->uid !== '') {
+      $this->attributesAccess['fdSubscriptionText']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionName']->setVisible(TRUE);
+      $this->attributesAccess['uid']->setVisible(TRUE);
+      $this->attributesAccess['fdSubscriptionType']->setVisible(TRUE);
+      $this->attributesAccess['fdSubscriptionContractId']->setVisible(TRUE);
+      $this->attributesAccess['fdSubscriptionStartDate']->setVisible(TRUE);
+      $this->attributesAccess['fdSubscriptionEndDate']->setVisible(TRUE);
+      if ($this->attributesAccess['fdSubscriptionEndDate']->getDateValue() < new DateTime()) {
+        $this->attributesAccess['fdSubscriptionTextExpired']->setVisible(TRUE);
+      } else {
+        $this->attributesAccess['fdSubscriptionTextExpired']->setVisible(FALSE);
+      }
+    } else {
+      $this->attributesAccess['fdSubscriptionText']->setVisible(TRUE);
+      $this->attributesAccess['fdSubscriptionName']->setVisible(FALSE);
+      $this->attributesAccess['uid']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionType']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionContractId']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionStartDate']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionEndDate']->setVisible(FALSE);
+      $this->attributesAccess['fdSubscriptionTextExpired']->setVisible(FALSE);
+    }
+
+    return parent::execute();
+  }
+
+  public function handle_import ()
+  {
+    $data = $this->import_file;
+    if (empty($data)) {
+      /* No file or empty file */
+      msg_dialog::display(
+        _('Import error'),
+        htmlescape(_('No data. Did you forgot to upload a file?')),
+        ERROR_DIALOG
+      );
+    } elseif (($data = parse_ini_string($data, TRUE)) === FALSE) {
+      /* Import of INI failed */
+      msg_dialog::display(
+        _('Import error'),
+        htmlescape(_('Failed to parse imported file')),
+        ERROR_DIALOG
+      );
+    } else {
+      /* Check content of ini file */
+      $errorText = NULL;
+      if (!isset($data[static::$sectionName])) {
+        $errorText = sprintf(_('Missing section "%s" in imported file'), static::$sectionName);
+      } else {
+        $data = $data[static::$sectionName];
+        foreach (static::$subscriptionAttributes as $attr => $iniVar) {
+          if ($this->attributesAccess[$attr]->isRequired() && (!isset($data[$iniVar]) || ($data[$iniVar] === ''))) {
+            $errorText = sprintf(_('Missing attribute "%s" in imported file'), $iniVar);
+            break;
+          }
+        }
+      }
+      if ($errorText !== NULL) {
+        msg_dialog::display(
+          _('Import error'),
+          htmlescape($errorText),
+          ERROR_DIALOG
+        );
+      } else {
+        /* Import data and save it to the LDAP */
+        foreach (static::$subscriptionAttributes as $attr => $iniVar) {
+          $this->attributesAccess[$attr]->setValue(isset($data[$iniVar]) ? $data[$iniVar] : '');
+        }
+        $errors = $this->parent->save();
+        if (empty($errors)) {
+          /* The object will stay open so it needs to appear as loaded from LDAP */
+          $this->is_account             = TRUE;
+          $this->initially_was_account  = TRUE;
+        } else {
+          msg_dialog::displayChecks($errors);
+          /* Reset fields to LDAP value */
+          foreach (array_keys(static::$subscriptionAttributes) as $attr) {
+            $this->attributesAccess[$attr]->setValue($this->attributesAccess[$attr]->getInitialValue());
+          }
+        }
+      }
+    }
+    /* Avoid double import */
+    $this->import_file = '';
+  }
+
+  public static function mainInc ($classname = NULL, $entry_dn = NULL, $tabs = FALSE, $edit_mode = FALSE, $objectType = FALSE)
+  {
+    global $config;
+
+    if ($classname === NULL) {
+      $classname = get_called_class();
+    }
+
+    if ($entry_dn === NULL) {
+      $entry_dn = 'cn=subscription,'.get_ou('fusiondirectoryRDN').$config->current['BASE'];
+    }
+
+    parent::mainInc($classname, $entry_dn, $tabs, $edit_mode, $objectType);
+  }
+}
diff --git a/plugins/addons/subscription/main.inc b/plugins/addons/subscription/main.inc
new file mode 100644
index 0000000000000000000000000000000000000000..0d38b4186cb1390aa7769e98493fe8680ab8e4f0
--- /dev/null
+++ b/plugins/addons/subscription/main.inc
@@ -0,0 +1,21 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org)
+  Copyright (C) 2013-2021  FusionDirectory
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+subscriptionInfo::mainInc();
diff --git a/plugins/admin/acl/class_aclAssignment.inc b/plugins/admin/acl/class_aclAssignment.inc
index a5e0eff820900bb00eb47bb8333b4e845115661a..977152361f89861ffa1aa2ddc98f1d03f68e08b0 100644
--- a/plugins/admin/acl/class_aclAssignment.inc
+++ b/plugins/admin/acl/class_aclAssignment.inc
@@ -20,33 +20,33 @@
 
 class aclAssignmentDialogWindow extends simplePlugin
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('ACL Assignment Dialog'),
       'plDescription' => _('Access control roles assignment dialog'),
-      'plCategory'    => array('acl'),
+      'plCategory'    => ['acl'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'properties' => array(
+    return [
+      'properties' => [
         'name'  => _('Properties'),
-        'attrs' => array(
+        'attrs' => [
           new SelectAttribute(
             _('Mode'), _('Is this applying on complete subtree or only the base?'),
             'aclMode', TRUE,
-            array('subtree',    'base'), 'base',
-            array(_('Subtree'), _('Base only'))
+            ['subtree',    'base'], 'base',
+            [_('Subtree'), _('Base only')]
           ),
           new SelectAttribute(
             _('Role'), _('Role to apply'),
             'aclRole', TRUE,
-            array()
+            []
           ),
           new BooleanAttribute(
             _('For all users'), _('Apply this ACL for all LDAP users'),
@@ -56,9 +56,9 @@ class aclAssignmentDialogWindow extends simplePlugin
             _('Members'), _('Users or groups to assign this role to.'),
             'aclMembers', TRUE
           )
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($value, $isContainer = FALSE)
@@ -75,11 +75,11 @@ class aclAssignmentDialogWindow extends simplePlugin
     $this->attributesAccess['aclRole']->setChoices(array_keys($roles), array_values($roles));
     $this->attributesAccess['allUsers']->setInLdap(FALSE);
     $this->attributesAccess['allUsers']->setManagedAttributes(
-      array(
-        'disable' => array(
-          TRUE => array('aclMembers')
-        )
-      )
+      [
+        'disable' => [
+          TRUE => ['aclMembers']
+        ]
+      ]
     );
 
     if ($value !== NULL) {
@@ -92,7 +92,7 @@ class aclAssignmentDialogWindow extends simplePlugin
     }
   }
 
-  function execute()
+  function execute ()
   {
     $smarty = get_smarty();
     $display = parent::execute();
@@ -107,15 +107,15 @@ class aclAssignmentDialogWindow extends simplePlugin
     return $display;
   }
 
-  function getAclEntry()
+  function getAclEntry ()
   {
-    $entry = array(
+    $entry = [
       'scope'   => $this->aclMode,
       'role'    => $this->aclRole,
       'members' => $this->aclMembers,
-    );
+    ];
     if ($this->allUsers) {
-      $entry['members'] = array('*');
+      $entry['members'] = ['*'];
     }
     return $entry;
   }
@@ -128,13 +128,13 @@ class ACLsAssignmentDialog extends GenericDialog
   protected $post_finish = 'add_acl_finish';
   protected $dialogClass = 'aclAssignmentDialogWindow';
 
-  function __construct($simplePlugin, $attribute, $acl = NULL)
+  function __construct ($simplePlugin, $attribute, $acl = NULL)
   {
     $isContainer = FALSE;
     if (isset($simplePlugin->attrs['objectClass'])) {
       if (count(array_intersect(
                   $simplePlugin->attrs['objectClass'],
-                  array('organizationalUnit', 'organization', 'domain', 'country', 'locality'))
+                  ['organizationalUnit', 'organization', 'domain', 'country', 'locality'])
                 )) {
         $isContainer = TRUE;
       }
@@ -180,7 +180,7 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
   protected $dialogClass  = 'ACLsAssignmentDialog';
   protected $height       = 300;
 
-  protected function getAttributeArrayValue($key, $value)
+  protected function getAttributeArrayValue ($key, $value)
   {
     /* Convert text value to displayable array value */
     sort($value['members']);
@@ -193,22 +193,22 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
     return $value;
   }
 
-  function readValue($value)
+  function readValue ($value)
   {
     $acl = explode(':', $value);
-    return array($acl[0], array(
+    return [$acl[0], [
       'scope'   => $acl[1],
       'role'    => base64_decode($acl[2]),
       'members' => array_map('base64_decode', explode(',', $acl[3])),
-    ));
+    ]];
   }
 
-  function writeValue($key, $value)
+  function writeValue ($key, $value)
   {
     return $key.':'.$value['scope'].':'.base64_encode($value['role']).':'.join(',', array_map('base64_encode', $value['members']));
   }
 
-  function foreignKeyUpdate($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
   {
     foreach ($this->value as $key => &$value) {
       if ($source['FIELD'] == 'dn') {
@@ -243,14 +243,14 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
     unset($value);
   }
 
-  function foreignKeyCheck($oldvalue, $source)
+  function foreignKeyCheck ($oldvalue, $source)
   {
     foreach ($this->value as $value) {
       if (($source['CLASS'] == 'aclRole') && ($value['role'] == $oldvalue)) {
         return TRUE;
-      } elseif (in_array($source['CLASS'], array('user','posixGroup','roleGeneric')) && in_array($oldvalue, $value['members'])) {
+      } elseif (in_array($source['CLASS'], ['user','posixGroup','roleGeneric']) && in_array($oldvalue, $value['members'])) {
         return TRUE;
-      } elseif (!in_array($source['CLASS'], array('aclRole','user','posixGroup','roleGeneric'))) {
+      } elseif (!in_array($source['CLASS'], ['aclRole','user','posixGroup','roleGeneric'])) {
         trigger_error('unknown source '.$source['CLASS']);
       }
     }
@@ -259,13 +259,13 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
 
 class aclAssignment extends simplePlugin
 {
-  var $objectclasses  = array('gosaAcl');
+  var $objectclasses  = ['gosaAcl'];
 
-  static function plInfo()
+  static function plInfo ()
   {
     global $config;
-    $oc = array(
-      'aclAssignment' => array(
+    $oc = [
+      'aclAssignment' => [
         'aclCategory' => 'acl',
         'name'        => _('ACL assignment'),
         'filter'      => 'objectClass=gosaAcl',
@@ -273,58 +273,58 @@ class aclAssignment extends simplePlugin
         'icon'        => 'geticon.php?context=categories&icon=acl&size=16',
         'tabClass'    => 'simpleTabs_noSpecial',
         'mainAttr'    => FALSE
-      ),
-    );
+      ],
+    ];
     if ($config->get_cfg_value('aclTabOnObjects') == 'TRUE') {
       $oc[] = 'special';
     } else {
       $oc = array_merge($oc, departmentManagement::getDepartmentTypes());
     }
-    return array(
+    return [
       'plShortName'   => _('ACL Assignment'),
       'plDescription' => _('Access control roles assignment'),
       'plObjectType'  => $oc,
-      'plForeignKeys'  => array(
-        'gosaAclEntry' => array(
-          array('aclRole',      'dn', 'gosaAclEntry=*:*:%b|oldvalue%:*',    'gosaAclEntry=*'),
-          array('user',         'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'),
-          array('posixGroup',   'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'),
-          array('roleGeneric',  'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'),
-        )
-      ),
+      'plForeignKeys'  => [
+        'gosaAclEntry' => [
+          ['aclRole',      'dn', 'gosaAclEntry=*:*:%b|oldvalue%:*',    'gosaAclEntry=*'],
+          ['user',         'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'],
+          ['posixGroup',   'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'],
+          ['roleGeneric',  'dn', 'gosaAclEntry=*:*:*:*%b|oldvalue%*',  'gosaAclEntry=*'],
+        ]
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('Assignments'),
-        'class' => array('fullwidth'),
-        'attrs' => array(
+        'class' => ['fullwidth'],
+        'attrs' => [
           new ACLsAssignmentAttribute(
             '', _('ACL role assignments for this base'),
             'gosaAclEntry', FALSE
           )
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
   {
-    parent::__construct ($dn, $object, $parent, FALSE);
+    parent::__construct($dn, $object, $parent, FALSE);
     $this->attributesInfo['main']['name'] = sprintf(_('Assignments on object or subtree %s'), $this->dn);
   }
 
-  function compute_dn()
+  function compute_dn ()
   {
     return $this->dn;
   }
 
-  function save()
+  function save ()
   {
     $this->ignore_account = FALSE;
     $this->is_account = (count($this->gosaAclEntry) != 0);
@@ -335,24 +335,24 @@ class aclAssignment extends simplePlugin
     }
   }
 
-  function post_remove()
+  function post_remove ()
   {
     parent::post_remove();
 
     /* Refresh users ACLs */
     $ui = get_userinfo();
     $ui->loadACL();
-    session::global_set('ui', $ui);
+    session::set('ui', $ui);
   }
 
-  function post_save()
+  function post_save ()
   {
     parent::post_save();
 
     /* Refresh users ACLs */
     $ui = get_userinfo();
     $ui->loadACL();
-    session::global_set('ui', $ui);
+    session::set('ui', $ui);
   }
 
   function foreignKeyUpdate ($field, $oldvalue, $newvalue, $source)
diff --git a/plugins/admin/acl/class_aclManagement.inc b/plugins/admin/acl/class_aclManagement.inc
index dea452766707c5b2c09911b164fe017222d4d522..67337af0bbd90ce997a29db8d5e617439028d938 100644
--- a/plugins/admin/acl/class_aclManagement.inc
+++ b/plugins/admin/acl/class_aclManagement.inc
@@ -25,36 +25,36 @@ class aclAssignmentCreationDialog extends simplePlugin
   protected $post_cancel = 'add_cancel';
   protected $simpleManagement;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('ACL assignment creation'),
       'plShortName'   => _('ACL assignment creation'),
       'plDescription' => _('Create an ACL assignment on an arbitrary dn'),
-      'plCategory'    => array('acl'),
+      'plCategory'    => ['acl'],
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 
   static function getAttributesInfo ()
   {
     global $config;
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('ACL assignment creation'),
-        'class' => array('fullwidth'),
-        'attrs' => array(
-          new StringAttribute (
+        'class' => ['fullwidth'],
+        'attrs' => [
+          new StringAttribute(
             _('Dn'), _('DN you wish to add assignments for'),
             'baseDn', TRUE,
             $config->current['BASE'], 'aclMode',
             '/^([^=,]+=[^=,]+,)+'.preg_quote($config->current['BASE'], '/').'$/',
             'ou=people,'.$config->current['BASE']
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($parent)
@@ -68,7 +68,7 @@ class aclAssignmentCreationDialog extends simplePlugin
     $this->attributesAccess['baseDn']->setInLdap(FALSE);
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
     if (isset($_POST[$this->post_cancel])) {
@@ -80,11 +80,11 @@ class aclAssignmentCreationDialog extends simplePlugin
     return TRUE;
   }
 
-  function save()
+  function save ()
   {
   }
 
-  function execute()
+  function execute ()
   {
     if ($this->save_object()) {
       $smarty = get_smarty();
@@ -107,7 +107,7 @@ class aclAssignmentCreationDialog extends simplePlugin
     try {
       $this->simpleManagement->newEntryConfirmed($this->baseDn);
     } catch (NonExistingLdapNodeException $e) {
-      msg_dialog::displayChecks(array(_('The dn you entered could not be found in the LDAP')));
+      msg_dialog::displayChecks([_('The dn you entered could not be found in the LDAP')]);
       return TRUE;
     }
     return FALSE;
@@ -122,9 +122,9 @@ class aclAssignmentCreationDialog extends simplePlugin
 
 class aclManagement extends simpleManagement
 {
-  protected $objectTypes  = array('aclAssignment');
+  protected $objectTypes  = ['aclAssignment'];
 
-  protected $autoFilterAttributes = array('dn', 'cn', 'description', 'ou', 'dc');
+  protected $autoFilterAttributes = ['dn', 'cn', 'description', 'ou', 'dc'];
 
   protected $departmentBrowser      = FALSE;
   protected $departmentRootVisible  = FALSE;
@@ -134,22 +134,22 @@ class aclManagement extends simpleManagement
 
   public static $skipSnapshots = TRUE;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('ACL assignments'),
       'plTitle'       => _('ACL assignments management'),
       'plDescription' => _('Manage ACL roles assignments to users'),
       'plIcon'        => 'geticon.php?context=categories&icon=acl&size=48',
       'plSection'     => 'accounts',
       'plPriority'    => 28,
-      'plManages'     => array('aclAssignment'),
+      'plManages'     => ['aclAssignment'],
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 
-  function configureFilter()
+  function configureFilter ()
   {
     parent::configureFilter();
     $this->filter->scope = 'sub';
@@ -168,7 +168,7 @@ class aclManagement extends simpleManagement
   function configureHeadpage ()
   {
     /* Remove department types so that we don't mistake assignments with them */
-    $this->headpage->objectTypes = array();
+    $this->headpage->objectTypes = [];
     $this->headpage->registerElementFilter('filterLabel', 'aclManagement::filterLabel');
     parent::configureHeadpage();
   }
@@ -176,12 +176,12 @@ class aclManagement extends simpleManagement
   /*!
    * \brief  This method intiates the object creation.
    */
-  function newEntry($action, array $target, array $all)
+  function newEntry ($action, array $target, array $all)
   {
     $this->dialogObject = new aclAssignmentCreationDialog($this);
   }
 
-  function newEntryConfirmed($dn)
+  function newEntryConfirmed ($dn)
   {
     $type = 'aclAssignment';
 
@@ -198,10 +198,10 @@ class aclManagement extends simpleManagement
     set_object_info($this->dn);
 
     $this->openTabObject($tabObject, $this->headpage->getBase());
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Creating new ACL assignment');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Creating new ACL assignment');
   }
 
-  static function filterLabel($row, $dn, $pid = 0, $base = '')
+  static function filterLabel ($row, $dn, $pid = 0, $base = '')
   {
     $ou = '';
     if ($dn == $base) {
@@ -213,7 +213,7 @@ class aclManagement extends simpleManagement
           continue;
         }
         if (!is_array($val)) {
-          $val = array($val);
+          $val = [$val];
         }
         $ou = htmlentities(reset($val), ENT_COMPAT, 'UTF-8');
       }
@@ -228,7 +228,7 @@ class aclManagement extends simpleManagement
     return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$pid.'&amp;act=listing_edit_'.$row.'" title="'.$dn.'">'.$ou.'</a>';
   }
 
-  protected function removeEntryRequested($action, array $target, array $all)
+  protected function removeEntryRequested ($action, array $target, array $all)
   {
     $result = parent::removeEntryRequested($action, $target, $all);
     if ($result != "") {
diff --git a/plugins/admin/aclrole/class_aclEditionDialog.inc b/plugins/admin/aclrole/class_aclEditionDialog.inc
index 56ae1bcba569aaf8608503bf9114c5ee5b525e52..a6376a628f3835a319f1f4cd854a1d2e87005526 100644
--- a/plugins/admin/aclrole/class_aclEditionDialog.inc
+++ b/plugins/admin/aclrole/class_aclEditionDialog.inc
@@ -25,17 +25,17 @@ class ACLEditionDialog extends GenericDialog
   protected $initialAclValue;
   protected $dialogState      = 'create';
   protected $aclObject        = '';
-  protected $aclContents      = array();
-  protected $savedAclContents = array();
+  protected $aclContents      = [];
+  protected $savedAclContents = [];
 
-  function __construct($simplePlugin, $attribute, $acl = NULL)
+  function __construct ($simplePlugin, $attribute, $acl = NULL)
   {
     $this->attribute        = $attribute;
     $this->initialAclValue  = $acl;
 
     /* New entry gets presets... */
     if ($acl === NULL) {
-      $this->aclContents  = array();
+      $this->aclContents  = [];
     } else {
       $this->aclContents  = $acl;
     }
@@ -55,11 +55,11 @@ class ACLEditionDialog extends GenericDialog
     return FALSE;
   }
 
-  function save_object()
+  function save_object ()
   {
     global $config;
 
-    $new_acl = array();
+    $new_acl = [];
 
     foreach ($_POST as $name => $post) {
       /* Actions... */
@@ -98,7 +98,7 @@ class ACLEditionDialog extends GenericDialog
 
         /* Ordinary ACL */
         if (!isset($new_acl[$object])) {
-          $new_acl[$object] = array();
+          $new_acl[$object] = [];
         }
         if (isset($new_acl[$object][$attribute])) {
           $new_acl[$object][$attribute] .= $value;
@@ -164,7 +164,7 @@ class ACLEditionDialog extends GenericDialog
           /* Hide empty categories */
           continue;
         }
-        $summary = array();
+        $summary = [];
         foreach ($infos['classes'] as $oc) {
           if (isset($this->aclContents[$oc]) && count($this->aclContents[$oc]) && isset($this->aclContents[$oc][0]) &&
               $this->aclContents[$oc][0] != '') {
@@ -193,17 +193,17 @@ class ACLEditionDialog extends GenericDialog
                   '<input class="center" type="image" src="geticon.php?context=actions&amp;icon=edit-delete&amp;size=16"
                     alt="'._('Delete').'" name="cat_del_'.$section.'" title="'._('Reset category ACL').'"/>';
 
-        $field1 = array('html' => $infos['description'], 'attach' => 'style="width:140px"');
-        $field2 = array('html' => $summary);
-        $field3 = array('html' => $action, 'attach' => 'style="border-right:0px;width:40px"');
-        $aclList->AddEntry(array($field1, $field2, $field3));
+        $field1 = ['html' => $infos['description'], 'attach' => 'style="width:140px"'];
+        $field2 = ['html' => $summary];
+        $field3 = ['html' => $action, 'attach' => 'style="border-right:0px;width:40px"'];
+        $aclList->AddEntry([$field1, $field2, $field3]);
       }
 
       $smarty->assign('headline', _('List of available ACL categories'));
       $smarty->assign('aclEdition', $aclList->DrawList());
     } elseif ($this->dialogState == 'edit') {
       /* Collect objects for selected category */
-      $aclObjects = array();
+      $aclObjects = [];
       foreach ($config->data['CATEGORIES'][$this->aclObject]['classes'] as $idx => $class) {
         if ($idx == 0) {
           continue;
@@ -233,7 +233,7 @@ class ACLEditionDialog extends GenericDialog
    *
    * \return String containing checkbox
    */
-  function mkchkbx($name, $text, $state = FALSE)
+  function mkchkbx ($name, $text, $state = FALSE)
   {
     $tname = preg_replace('/[^a-z0-9]/i', '_', $name);
     return  '<input id="acl_'.$tname.'" type="checkbox" name="acl_'.$name.'"'.($state ? ' checked="checked"' : '').'/>'."\n".
@@ -248,7 +248,7 @@ class ACLEditionDialog extends GenericDialog
    *
    * \return String containing checkbox
    */
-  function mkrwbx($name, $state = '')
+  function mkrwbx ($name, $state = '')
   {
     $rstate = (preg_match('/r/', $state) ? ' checked="checked"' : '');
     $wstate = (preg_match('/w/', $state) ? ' checked="checked"' : '');
@@ -267,11 +267,11 @@ class ACLEditionDialog extends GenericDialog
    *
    * \return the acl selector form
    */
-  function buildAclSelector($list)
+  function buildAclSelector ($list)
   {
     $display  = '<input type="hidden" name="acl_dummy_0_0_0" value="1"/>';
     $cols     = 3;
-    $tmp      = session::global_get('plist');
+    $tmp      = session::get('plist');
     $plist    = $tmp->info;
     asort($plist);
 
@@ -310,7 +310,7 @@ class ACLEditionDialog extends GenericDialog
     foreach ($list as $key => $name) {
       /* Create sub acl if it does not exist */
       if (!isset($this->aclContents[$key])) {
-        $this->aclContents[$key] = array();
+        $this->aclContents[$key] = [];
       }
       if (!isset($this->aclContents[$key][0])) {
         $this->aclContents[$key][0] = '';
diff --git a/plugins/admin/aclrole/class_aclRole.inc b/plugins/admin/aclrole/class_aclRole.inc
index a435a50990659f6cb4bbddf9de7af4169f75e65c..eda3cd0dee4913ceed2bf91a60363b39ca758ae8 100644
--- a/plugins/admin/aclrole/class_aclRole.inc
+++ b/plugins/admin/aclrole/class_aclRole.inc
@@ -24,7 +24,7 @@ class ACLsAttribute extends DialogOrderedArrayAttribute
   protected $order        = TRUE;
   protected $dialogClass  = 'ACLEditionDialog';
 
-  protected function getAttributeArrayValue($key, $value)
+  protected function getAttributeArrayValue ($key, $value)
   {
     /* Convert text value to displayable array value */
 
@@ -36,16 +36,16 @@ class ACLsAttribute extends DialogOrderedArrayAttribute
       }
     }
     $summary = sprintf(_('Contains settings for these objects: %s'), preg_replace('/, $/', '', $summary));
-    return array($summary);
+    return [$summary];
   }
 
-  function readValue($value)
+  function readValue ($value)
   {
     $acl = explode(':', $value, 2);
-    return array($acl[0], acl::extractACL($acl[1]));
+    return [$acl[0], acl::extractACL($acl[1])];
   }
 
-  function writeValue($key, $value)
+  function writeValue ($key, $value)
   {
     $acl = '';
     foreach ($value as $object => $contents) {
@@ -69,31 +69,31 @@ class ACLsAttribute extends DialogOrderedArrayAttribute
 
 class aclRole extends simplePlugin
 {
-  var $objectclasses  = array('top','gosaRole');
+  var $objectclasses  = ['top','gosaRole'];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Role'),
       'plDescription' => _('Access control roles'),
-      'plObjectType'  => array('aclRole' => array(
+      'plObjectType'  => ['aclRole' => [
         'aclCategory' => 'acl',
         'name'        => _('ACL role'),
         'filter'      => 'objectClass=gosaRole',
         'ou'          => get_ou('aclRoleRDN'),
         'icon'        => 'geticon.php?context=categories&icon=acl&size=16',
-      )),
+      ]],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'properties' => array(
+    return [
+      'properties' => [
         'name'  => _('Properties'),
-        'attrs' => array(
+        'attrs' => [
           new BaseSelectorAttribute(get_ou('aclRoleRDN')),
           new HostNameAttribute(
             _('Name'), _('A name for this role'),
@@ -103,19 +103,19 @@ class aclRole extends simplePlugin
             _('Description'), _('Short description of this role'),
             'description', FALSE
           ),
-        )
-      ),
-      'acls' => array(
+        ]
+      ],
+      'acls' => [
         'name'  => _('ACLs'),
-        'class' => array('fullwidth'),
-        'attrs' => array(
+        'class' => ['fullwidth'],
+        'attrs' => [
           new ACLsAttribute(
             '', _('ACLs which are part of this group'),
             'gosaAclTemplate', TRUE
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 }
 ?>
diff --git a/plugins/admin/aclrole/class_aclRoleManagement.inc b/plugins/admin/aclrole/class_aclRoleManagement.inc
index ca6ccda6b135fd3e24dc9a0d3a43d6173e14710b..e46f80a23cc2d2e338858c67641a109949214123 100644
--- a/plugins/admin/aclrole/class_aclRoleManagement.inc
+++ b/plugins/admin/aclrole/class_aclRoleManagement.inc
@@ -21,27 +21,27 @@
 class aclRoleManagement extends simpleManagement
 {
   // Tab definition
-  protected $objectTypes  = array('aclRole');
+  protected $objectTypes  = ['aclRole'];
 
   protected $departmentBrowser      = TRUE;
   protected $departmentRootVisible  = TRUE;
   protected $baseMode               = TRUE;
 
   /* Return plugin informations for acl handling  */
-  public static function plInfo()
+  public static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('ACL roles'),
       'plTitle'       => _('ACL roles management'),
       'plDescription' => _('Manage ACL roles'),
       'plIcon'        => 'geticon.php?context=categories&icon=acl&size=48',
       'plSection'     => 'accounts',
       'plPriority'    => 27,
-      'plCategory'    => array('acl'),
-      'plManages'     => array('aclRole'),
+      'plCategory'    => ['acl'],
+      'plManages'     => ['aclRole'],
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 }
 ?>
diff --git a/plugins/admin/departments/class_country.inc b/plugins/admin/departments/class_country.inc
index f9ed6aa3568ff782b9811b0ffe04bcaf60e7c938..e6e7a0c366b452ffdcfe47efb90f1fc4f9c06fc5 100644
--- a/plugins/admin/departments/class_country.inc
+++ b/plugins/admin/departments/class_country.inc
@@ -21,14 +21,14 @@
 class country extends department
 {
   static $namingAttr  = "c";
-  var $structuralOC   = array("country");
+  var $structuralOC   = ["country"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Country'),
       'plDescription' => _('Country'),
-      'plObjectType'  => array('country' => array(
+      'plObjectType'  => ['country' => [
         'aclCategory' => 'department',
         'name'        => _('Country'),
         'filter'      => '(&(objectClass=country)(objectClass=gosaDepartment))',
@@ -36,13 +36,13 @@ class country extends department
         'icon'        => 'geticon.php?context=types&icon=country&size=16',
         'tabClass'    => 'deptabs',
         'mainAttr'    => static::$namingAttr,
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
diff --git a/plugins/admin/departments/class_dcObject.inc b/plugins/admin/departments/class_dcObject.inc
index 63f5e0248e757a5527f34b4c0a3d6cbbffec388d..d60c252c5c79cd828deb16be1d857233fc251d07 100644
--- a/plugins/admin/departments/class_dcObject.inc
+++ b/plugins/admin/departments/class_dcObject.inc
@@ -21,15 +21,15 @@
 class dcObject extends department
 {
   static $namingAttr  = "dc";
-  var $objectclasses  = array("top", "dcObject", "gosaDepartment");
-  var $structuralOC   = array("locality");
+  var $objectclasses  = ["top", "dcObject", "gosaDepartment"];
+  var $structuralOC   = ["locality"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Domain Component'),
       'plDescription' => _('Domain Component'),
-      'plObjectType'  => array('dcObject' => array(
+      'plObjectType'  => ['dcObject' => [
         'aclCategory' => 'department',
         'name'        => _('Domain Component'),
         'filter'      => '(&(objectClass=dcObject)(objectClass=gosaDepartment))',
@@ -37,13 +37,13 @@ class dcObject extends department
         'icon'        => 'geticon.php?context=types&icon=dc&size=16',
         'tabClass'    => 'deptabs',
         'mainAttr'    => static::$namingAttr,
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
diff --git a/plugins/admin/departments/class_department.inc b/plugins/admin/departments/class_department.inc
index c907951a3d669628cccf5362d84c7e04897bc5b0..d587b77ab02830a720b17a700498f54f956b4c0a 100644
--- a/plugins/admin/departments/class_department.inc
+++ b/plugins/admin/departments/class_department.inc
@@ -24,44 +24,44 @@ class department extends simplePlugin
   static $namingAttr = 'ou';
 
   /* Do not append the structural object classes here, they are added dynamically in the constructor */
-  var $objectclasses  = array("top", "gosaDepartment");
-  var $structuralOC   = array("organizationalUnit");
+  var $objectclasses  = ["top", "gosaDepartment"];
+  var $structuralOC   = ["organizationalUnit"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Department'),
       'plDescription' => _('Departments'),
-      'plCategory'    => array('department' => array('objectClass' => 'gosaDepartment', 'description' => _('Departments'))),
+      'plCategory'    => ['department' => ['objectClass' => 'gosaDepartment', 'description' => _('Departments')]],
       'plObjectType'  =>
-        array(
-          'department' => array(
+        [
+          'department' => [
             'name'      => _('Department'),
             'filter'    => '(&(objectClass=organizationalUnit)(objectClass=gosaDepartment))',
             'ou'        => '',
             'icon'      => 'geticon.php?context=places&icon=folder&size=16',
             'tabClass'  => 'deptabs',
             'mainAttr'  => static::$namingAttr,
-          )
-        ),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+          ]
+        ],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
     return static::getDepartmentAttributesInfo(_('department'));
   }
-  static function getDepartmentAttributesInfo($name)
+  static function getDepartmentAttributesInfo ($name)
   {
-    $attributesInfo = array(
-      'properties' => array(
+    $attributesInfo = [
+      'properties' => [
         'name'  => _('Properties'),
-        'attrs' => array(
+        'attrs' => [
           new BaseSelectorAttribute(''),
           new StringAttribute(
             sprintf(_('Name of %s'), $name), sprintf(_('A name for this %s'), $name),
@@ -84,11 +84,11 @@ class department extends simplePlugin
             _('Manager'), sprintf(_('Manager of this %s'), $name),
             'manager', FALSE
           )
-        )
-      ),
-      'location' => array(
+        ]
+      ],
+      'location' => [
         'name'  => _('Location'),
-        'attrs' => array(
+        'attrs' => [
           new StringAttribute(
             _('State'), _('State'), 'st', FALSE
           ),
@@ -102,7 +102,7 @@ class department extends simplePlugin
             _('Address'), sprintf(_('A postal address for this %s'), $name),
             'postalAddress', FALSE
           ),
-          new PhoneNumberButtonAttribute (
+          new PhoneNumberButtonAttribute(
             _('Phone'), _('Telephone number'),
             'telephoneNumber', FALSE,
             '',
@@ -112,9 +112,9 @@ class department extends simplePlugin
             _('Fax'), _('Facsimile telephone number'),
             'facsimileTelephoneNumber', FALSE
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
     if (static::$namingAttr != 'ou') {
       $attributesInfo['properties']['attrs'][] = new HiddenAttribute('ou');
     }
@@ -130,7 +130,7 @@ class department extends simplePlugin
     if ($dn == "" || $dn == "new" || !$ldap->dn_exists($dn)) {
       $this->objectclasses = array_merge($this->structuralOC, $this->objectclasses);
     } else {
-      $ldap->cat($dn, array("structuralObjectClass"));
+      $ldap->cat($dn, ["structuralObjectClass"]);
       $attrs = $ldap->fetch();
       if (isset($attrs['structuralObjectClass']['count'])) {
         for ($i = 0; $i < $attrs['structuralObjectClass']['count']; $i++) {
@@ -146,7 +146,7 @@ class department extends simplePlugin
 
     parent::__construct($dn, $object, $parent, $mainTab);
 
-    $categoriesList = $config->get_cfg_value('DepartmentCategories', array());
+    $categoriesList = $config->get_cfg_value('DepartmentCategories', []);
 
     /* Insert current value to possibilities */
     if (isset($this->attributesAccess['businessCategory'])) {
@@ -161,7 +161,7 @@ class department extends simplePlugin
   }
 
   /* Check values */
-  function check()
+  function check ()
   {
     /* Call common method to give check the hook */
     $message = parent::check();
@@ -177,7 +177,7 @@ class department extends simplePlugin
     return $message;
   }
 
-  function get_allowed_bases()
+  function get_allowed_bases ()
   {
     /* Hide all departments, that are subtrees of this department */
     $bases = parent::get_allowed_bases();
@@ -191,7 +191,7 @@ class department extends simplePlugin
     return $bases;
   }
 
-  function prepare_save()
+  function prepare_save ()
   {
     if (static::$namingAttr != 'ou') {
       $this->attributesAccess['ou']->setValue($this->attributesAccess[static::$namingAttr]->getValue());
diff --git a/plugins/admin/departments/class_departmentManagement.inc b/plugins/admin/departments/class_departmentManagement.inc
index e5e349f0350b54357411ebb0044ecd4a79a20238..4334220c31b269bf5c4b4c59447be59f661fa3cf 100644
--- a/plugins/admin/departments/class_departmentManagement.inc
+++ b/plugins/admin/departments/class_departmentManagement.inc
@@ -27,22 +27,22 @@ class departmentManagement extends simpleManagement
   protected $baseMode               = TRUE;
 
   /* Return plugin information for acl handling */
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Departments'),
       'plTitle'       => _('Manage departments'),
       'plDescription' => _('Manage departments, countries, domain components, domains, localities and organization nodes,'),
       'plIcon'        => 'geticon.php?context=places&icon=folder&size=48',
-      'plSection'     => array('accounts' => array('name' => _('Users and groups'), 'priority' => 0)),
+      'plSection'     => ['accounts' => ['name' => _('Users and groups'), 'priority' => 0]],
       'plPriority'    => 0,
       'plManages'     => static::getDepartmentTypes(),
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 
-  function __construct()
+  function __construct ()
   {
     $this->objectTypes  = static::getDepartmentTypes();
     $this->listXMLPath  = get_template_path('dep-list.xml', TRUE, dirname(__FILE__));
@@ -52,7 +52,7 @@ class departmentManagement extends simpleManagement
   }
 
   // Overriden save handler - We've to take care about the department tagging here.
-  protected function saveChanges()
+  protected function saveChanges ()
   {
     $str = parent::saveChanges();
     if (!empty($str)) {
@@ -62,7 +62,7 @@ class departmentManagement extends simpleManagement
     $this->refreshDeps();
   }
 
-  function refreshDeps()
+  function refreshDeps ()
   {
     global $config, $ui;
     $config->get_departments();
@@ -73,22 +73,22 @@ class departmentManagement extends simpleManagement
   }
 
   // An action handler which enables to switch into deparmtment by clicking the names.
-  function openEntry($action, $entry)
+  function openEntry ($action, $entry)
   {
     $headpage = $this->getHeadpage();
     $headpage->setBase(array_pop($entry));
   }
 
   // Overridden remove request method - Avoid removal of the ldap base.
-  protected function removeEntryRequested($action, array $target, array $all)
+  protected function removeEntryRequested ($action, array $target, array $all)
   {
     global $config;
-    $target = array_remove_entries(array($config->current['BASE']), $target);
+    $target = array_remove_entries([$config->current['BASE']], $target);
     return parent::removeEntryRequested($action, $target, $all);
   }
 
   // A filter which allows to open a department by clicking on the departments name.
-  static function filterDepLabel($row, $dn, $params, $ou, $pid, $base)
+  static function filterDepLabel ($row, $dn, $params, $ou, $pid, $base)
   {
     $ou = $ou[0];
     if ($dn == $base) {
@@ -98,15 +98,15 @@ class departmentManagement extends simpleManagement
   }
 
   // Finally remove departments and update departmnet browsers
-  function removeEntryConfirmed($action, array $target, array $all)
+  function removeEntryConfirmed ($action, array $target, array $all)
   {
     parent::removeEntryConfirmed($action, $target, $all);
     $this->refreshDeps();
   }
 
-  static function getDepartmentTypes()
+  static function getDepartmentTypes ()
   {
-    return array('DEPARTMENT','COUNTRY','DCOBJECT','DOMAIN','LOCALITY','ORGANIZATION');
+    return ['DEPARTMENT','COUNTRY','DCOBJECT','DOMAIN','LOCALITY','ORGANIZATION'];
   }
 }
 ?>
diff --git a/plugins/admin/departments/class_domain.inc b/plugins/admin/departments/class_domain.inc
index 8cf7d844b56cdc747c1bbae2109eea1fd2987267..552bd2f3045734e71a73449cf8f4e948d13b72b7 100644
--- a/plugins/admin/departments/class_domain.inc
+++ b/plugins/admin/departments/class_domain.inc
@@ -21,15 +21,15 @@
 class domain extends department
 {
   static $namingAttr  = "dc";
-  var $objectclasses  = array("top", "domain", "gosaDepartment");
-  var $structuralOC   = array("domain");
+  var $objectclasses  = ["top", "domain", "gosaDepartment"];
+  var $structuralOC   = ["domain"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Domain'),
       'plDescription' => _('Domain'),
-      'plObjectType'  => array('domain' => array(
+      'plObjectType'  => ['domain' => [
         'aclCategory' => 'department',
         'name'        => _('Domain'),
         'filter'      => '(&(objectClass=domain)(objectClass=gosaDepartment))',
@@ -37,13 +37,13 @@ class domain extends department
         'icon'        => 'geticon.php?context=types&icon=domain&size=16',
         'tabClass'    => 'deptabs',
         'mainAttr'    => static::$namingAttr,
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
diff --git a/plugins/admin/departments/class_locality.inc b/plugins/admin/departments/class_locality.inc
index af8873e2757d815fb1b7be5333d340efac240dba..48ae1be7f462c502a80339395f63171ff2b58a89 100644
--- a/plugins/admin/departments/class_locality.inc
+++ b/plugins/admin/departments/class_locality.inc
@@ -21,15 +21,15 @@
 class locality extends department
 {
   static $namingAttr  = "l";
-  var $objectclasses  = array("top", "gosaDepartment");
-  var $structuralOC   = array("locality");
+  var $objectclasses  = ["top", "gosaDepartment"];
+  var $structuralOC   = ["locality"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Locality'),
       'plDescription' => _('Locality'),
-      'plObjectType'  => array('locality' => array(
+      'plObjectType'  => ['locality' => [
         'aclCategory' => 'department',
         'name'        => _('Locality'),
         'filter'      => '(&(!(objectClass=dcObject))(objectClass=locality)(objectClass=gosaDepartment))',
@@ -37,13 +37,13 @@ class locality extends department
         'icon'        => 'geticon.php?context=types&icon=locality&size=16',
         'tabClass'    => 'deptabs',
         'mainAttr'    => static::$namingAttr,
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
diff --git a/plugins/admin/departments/class_organization.inc b/plugins/admin/departments/class_organization.inc
index 93e82ff2986eb78f63a686deabbca83729eeb362..2558fb9d2e53c235c980ddbdedee238ee2a656de 100644
--- a/plugins/admin/departments/class_organization.inc
+++ b/plugins/admin/departments/class_organization.inc
@@ -21,15 +21,15 @@
 class organization extends department
 {
   static $namingAttr  = "o";
-  var $objectclasses  = array("top", "gosaDepartment");
-  var $structuralOC   = array("organization");
+  var $objectclasses  = ["top", "gosaDepartment"];
+  var $structuralOC   = ["organization"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Organization'),
       'plDescription' => _('Organization'),
-      'plObjectType'  => array('organization' => array(
+      'plObjectType'  => ['organization' => [
         'aclCategory' => 'department',
         'name'        => _('Organization'),
         'filter'      => '(&(objectClass=organization)(objectClass=gosaDepartment))',
@@ -37,13 +37,13 @@ class organization extends department
         'icon'        => 'geticon.php?context=types&icon=organization&size=16',
         'tabClass'    => 'deptabs',
         'mainAttr'    => static::$namingAttr,
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
diff --git a/plugins/admin/departments/tabs_department.inc b/plugins/admin/departments/tabs_department.inc
index 29f2ea3955872d166879452ac7a853565842bb87..a3ee8550b5f9a1e319e166f14dc9f7e3c9759167 100644
--- a/plugins/admin/departments/tabs_department.inc
+++ b/plugins/admin/departments/tabs_department.inc
@@ -20,7 +20,7 @@
 
 class deptabs extends simpleTabs
 {
-  function save()
+  function save ()
   {
     $errors = parent::save();
 
diff --git a/plugins/admin/groups/class_groupManagement.inc b/plugins/admin/groups/class_groupManagement.inc
index 75155b3c0ecd358a17e9d8d4400f57d902ba4b19..7e5fd118918c3c604c1342fb8aa2f9a37ffd9c50 100644
--- a/plugins/admin/groups/class_groupManagement.inc
+++ b/plugins/admin/groups/class_groupManagement.inc
@@ -21,7 +21,7 @@
 
 class groupManagement extends simpleManagement
 {
-  protected $objectTypes  = array('ogroup', 'role', 'group');
+  protected $objectTypes  = ['ogroup', 'role', 'group'];
 
   protected $autoFilter = FALSE;
 
@@ -29,22 +29,22 @@ class groupManagement extends simpleManagement
 
   protected $siActive = FALSE;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Groups and roles'),
       'plTitle'       => _('Manage groups and roles'),
       'plDescription' => _('Allows you to manage object groups, POSIX groups and roles'),
       'plIcon'        => 'geticon.php?context=types&icon=resource-group&size=48',
       'plSection'     => 'accounts',
-      'plManages'     => array('ogroup', 'group', 'role'),
+      'plManages'     => ['ogroup', 'group', 'role'],
       'plPriority'    => 20,
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 
-  function __construct()
+  function __construct ()
   {
     $this->filterXMLPath  = get_template_path('group-filter.xml', TRUE, dirname(__FILE__));
     $this->listXMLPath    = get_template_path('group-list.xml', TRUE, dirname(__FILE__));
@@ -89,24 +89,24 @@ class groupManagement extends simpleManagement
 
     // Register Daemon Events
     if ($this->siActive) {
-      $this->headpage->xmlData['actionmenu']['action'][4]['action'] = array();
-      $this->headpage->xmlData['actionmenu']['action'][5]['action'] = array();
+      $this->headpage->xmlData['actionmenu']['action'][4]['action'] = [];
+      $this->headpage->xmlData['actionmenu']['action'][5]['action'] = [];
       $events = argonautEventTypes::get_event_types();
       foreach ($events as $name => $data) {
         $this->registerAction('T_'.$name, 'handleEvent');
-        $this->headpage->xmlData['actionmenu']['action'][4]['action'][] = array(
+        $this->headpage->xmlData['actionmenu']['action'][4]['action'][] = [
         'name' => 'T_'.$name,
         'type' => 'entry',
         'image' => $data['img'],
         'label' => $data['name'],
-        );
+        ];
         $this->registerAction('S_'.$name, 'handleEvent');
-        $this->headpage->xmlData['actionmenu']['action'][5]['action'][] = array(
+        $this->headpage->xmlData['actionmenu']['action'][5]['action'][] = [
         'name' => 'S_'.$name,
         'type' => 'entry',
         'image' => $data['img'],
         'label' => $data['name'],
-        );
+        ];
       }
     } else {
       unset($this->headpage->xmlData['actionmenu']['action'][3]);
@@ -120,7 +120,7 @@ class groupManagement extends simpleManagement
   /*! \brief    Handle Argonaut events
    *            All schedules and triggered events are handled here.
    */
-  function handleEvent($action, array $target)
+  function handleEvent ($action, array $target)
   {
     global $config;
 
@@ -139,7 +139,7 @@ class groupManagement extends simpleManagement
     $event = preg_replace('/^[TS]_/', '', $action);
 
     // Now send FAI/Argonaut events here.
-    $mac = array();
+    $mac = [];
 
     // Collect target mac addresses
     $ldap = $config->get_ldap_link();
@@ -170,12 +170,12 @@ class groupManagement extends simpleManagement
     /* Skip installation or update trigerred events,
      *  if this entry is currently processing.
      */
-    if ($triggered && in_array($event, array('reinstall','update'))) {
+    if ($triggered && in_array($event, ['reinstall','update'])) {
       foreach ($mac as $key => $mac_address) {
         if ($o_queue->is_currently_installing($mac_address)) {
           msg_dialog::display(_('Action canceled'), sprintf(_('System %s is currently installing'), $dn), ERROR_DIALOG);
           unset($mac[$key]);
-          logging::log('security', 'systems/'.get_class($this), '', array(), 'Skip adding "argonautAction::'.$event.'" for mac "'.$mac_address.'", there is already a job in progress.');
+          logging::log('security', 'systems/'.get_class($this), '', [], 'Skip adding "argonautAction::'.$event.'" for mac "'.$mac_address.'", there is already a job in progress.');
         }
       }
     }
@@ -195,12 +195,12 @@ class groupManagement extends simpleManagement
           msg_dialog::display(_('Infrastructure service'), msgPool::siError($o_queue->get_error()), ERROR_DIALOG);
         } else {
           if (is_array($res) && count($res) > 1) {
-            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error (results were "%s")'), implode(', ', $res)), INFO_DIALOG);
+            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error(results were "%s")'), implode(', ', $res)), INFO_DIALOG);
           } else {
             if (is_array($res)) {
               $res = $res[0];
             }
-            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error (result was "%s")'), $res), INFO_DIALOG);
+            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error(result was "%s")'), $res), INFO_DIALOG);
           }
         }
         $this->closeDialogs();
@@ -211,7 +211,7 @@ class groupManagement extends simpleManagement
   /*! \brief  Save event dialogs.
    *          And append the new Argonaut event.
    */
-  function saveEventDialog()
+  function saveEventDialog ()
   {
     $this->dialogObject->save_object();
     $msgs = $this->dialogObject->check();
@@ -232,7 +232,7 @@ class groupManagement extends simpleManagement
   /*! \brief  Detects actions/events send by the ui
    *           and the corresponding targets.
    */
-  function detectPostActions()
+  function detectPostActions ()
   {
     $action = parent::detectPostActions();
     if (isset($_POST['save_event_dialog'])) {
@@ -243,10 +243,10 @@ class groupManagement extends simpleManagement
     return $action;
   }
 
-  static function filterProperties($row, $dn, $objectType, $attrs, $gosaGroupObjects = NULL)
+  static function filterProperties ($row, $dn, $objectType, $attrs, $gosaGroupObjects = NULL)
   {
     global $config;
-    static $grouptabs = array();
+    static $grouptabs = [];
 
     // Load information if needed
     $result = '&nbsp;';
@@ -286,7 +286,7 @@ class groupManagement extends simpleManagement
                        'alt="'.$infos['plTitle'].'" title="'.$infos['plTitle'].'" '.
                        'name="listing_edit_tab_'.$class.'_'.$row.'" style="padding:1px"/>';
           } else {
-            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", 'No icon for');
+            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", 'No icon for');
           }
         } else {
           $result .= '<img src="images/empty.png" alt=" " class="center optional '.$class.'" style="padding:1px"/>';
@@ -297,7 +297,7 @@ class groupManagement extends simpleManagement
     return $result;
   }
 
-  static function filterGroupObjects($row, $gosaGroupObjects)
+  static function filterGroupObjects ($row, $gosaGroupObjects)
   {
     $types  = preg_replace('/[^a-z]/i', '', $gosaGroupObjects[0]);
     $result = '';
@@ -315,45 +315,45 @@ class groupManagement extends simpleManagement
     return $result;
   }
 
-  function renderList()
+  function renderList ()
   {
     $smarty = get_smarty();
-    $filters = array(
-      array('id'  => 'USER',        'label'  => _('Show user groups')),
-      array('id'  => 'ROLE',        'label'  => _('Show organizational roles')),
-      array('id'  => 'APPLICATION', 'label'  => _('Show application groups')),
-      array('id'  => 'GROUP',       'label'  => _('Show groups of groups')),
-      array('id'  => 'UNKNOWN',     'label'  => _('Show unidentified groups')),
-    );
+    $filters = [
+      ['id'  => 'USER',        'label'  => _('Show user groups')],
+      ['id'  => 'ROLE',        'label'  => _('Show organizational roles')],
+      ['id'  => 'APPLICATION', 'label'  => _('Show application groups')],
+      ['id'  => 'GROUP',       'label'  => _('Show groups of groups')],
+      ['id'  => 'UNKNOWN',     'label'  => _('Show unidentified groups')],
+    ];
     if (class_available('posixGroup')) {
-      $filters[] = array('id'  => 'PRIMARY',  'label'  => _('Show primary groups'));
+      $filters[] = ['id'  => 'PRIMARY',  'label'  => _('Show primary groups')];
       if (class_available('mailAccount')) {
-        $filters[] = array('id'  => 'MAIL',  'label'  => _('Show mail groups'));
+        $filters[] = ['id'  => 'MAIL',  'label'  => _('Show mail groups')];
       }
       if (class_available('sambaAccount')) {
-        $filters[] = array('id'  => 'SAMBA', 'label'  => _('Show samba groups'));
+        $filters[] = ['id'  => 'SAMBA', 'label'  => _('Show samba groups')];
       }
     }
     if (class_available('simpleSecurityObject')) {
-      $filters[] = array('id'  => 'SIMPLESECURITYOBJECT',  'label'  => _('Show DSA entries'));
+      $filters[] = ['id'  => 'SIMPLESECURITYOBJECT',  'label'  => _('Show DSA entries')];
     }
     if (class_available('systemManagement')) {
       $filters = array_merge(
         $filters,
-        array(
-          array('id'  => 'SERVER',      'label'  => _('Show server groups')),
-          array('id'  => 'WORKSTATION', 'label'  => _('Show workstation groups')),
-          array('id'  => 'TERMINAL',    'label'  => _('Show terminal groups')),
-          array('id'  => 'PRINTER',     'label'  => _('Show printer groups')),
-          array('id'  => 'PHONE',       'label'  => _('Show phone groups')),
-        )
+        [
+          ['id'  => 'SERVER',      'label'  => _('Show server groups')],
+          ['id'  => 'WORKSTATION', 'label'  => _('Show workstation groups')],
+          ['id'  => 'TERMINAL',    'label'  => _('Show terminal groups')],
+          ['id'  => 'PRINTER',     'label'  => _('Show printer groups')],
+          ['id'  => 'PHONE',       'label'  => _('Show phone groups')],
+        ]
       );
     }
     if (!static::$skipTemplates) {
-      $filters[] = array(
+      $filters[] = [
         'id'    => 'FILTERTEMPLATE',
         'label' => sprintf(_('Show %s'), _('Template'))
-      );
+      ];
     }
     $smarty->assign('objectFilters', $filters);
     $this->headpage->update();
diff --git a/plugins/admin/groups/class_ogroup.inc b/plugins/admin/groups/class_ogroup.inc
index 20f6dd3200a78a2c59255e1a08b5b2079abe9636..439aaab2d72dc4541aadc8e9200afa78eff4b1c4 100644
--- a/plugins/admin/groups/class_ogroup.inc
+++ b/plugins/admin/groups/class_ogroup.inc
@@ -22,13 +22,13 @@
 class ObjectsAttribute extends GenericDialogAttribute
 {
   protected $dialogClass  = 'ObjectSelectDialog';
-  protected $types        = array();
+  protected $types        = [];
 
   function getFilterBlackList ()
   {
-    return array(
-      'dn' => array_merge($this->getValue(), $this->plugin->used_workstations, array($this->plugin->dn))
-    );
+    return [
+      'dn' => array_merge($this->getValue(), $this->plugin->used_workstations, [$this->plugin->dn])
+    ];
   }
 
   protected function fillDisplayValueFrom ($i, $attrs)
@@ -52,7 +52,7 @@ class ObjectsAttribute extends GenericDialogAttribute
             break;
           }
         } catch (NonExistingObjectTypeException $e) {
-          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $e->getMessage(), "Objecttype");
+          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $e->getMessage(), "Objecttype");
           unset(ogroup::$objectTypes[$code]);
         }
       }
@@ -72,7 +72,7 @@ class ObjectsAttribute extends GenericDialogAttribute
     }
   }
 
-  function renderOnlyFormInput()
+  function renderOnlyFormInput ()
   {
     if (($this->size < 15) && ($this->size < count($this->value))) {
       $this->size = min(15, count($this->value));
@@ -83,7 +83,7 @@ class ObjectsAttribute extends GenericDialogAttribute
                 ' >'."\n";
     foreach ($this->getDisplayValues() as $key => $value) {
       try {
-        $infos = array();
+        $infos = [];
         if ($this->types[$key] !== 'I') {
           $infos = objects::infos(ogroup::$objectTypes[$this->types[$key]]);
         }
@@ -103,9 +103,9 @@ class ObjectsAttribute extends GenericDialogAttribute
     return $display;
   }
 
-  function ldapAttributesToGet()
+  function ldapAttributesToGet ()
   {
-    return array(
+    return [
       'objectClass',
       'cn',
       'sn',
@@ -113,10 +113,10 @@ class ObjectsAttribute extends GenericDialogAttribute
       'uid',
       'givenName',
       'description',
-    );
+    ];
   }
 
-  function listObjectTypes()
+  function listObjectTypes ()
   {
     /* Refresh types and displays */
     $this->getDisplayValues();
@@ -126,10 +126,10 @@ class ObjectsAttribute extends GenericDialogAttribute
   function getTypedValues ()
   {
     $values = $this->getValue();
-    $ret    = array();
+    $ret    = [];
     foreach ($values as $i => $v) {
       if (!isset($ret[$this->types[$i]])) {
-        $ret[$this->types[$i]] = array();
+        $ret[$this->types[$i]] = [];
       }
       $ret[$this->types[$i]][] = $v;
     }
@@ -151,13 +151,13 @@ class ObjectSelectDialog extends GenericSelectDialog
 
 class ogroup extends simplePlugin
 {
-  var $objectclasses  = array('groupOfNames', 'gosaGroupOfNames');
+  var $objectclasses  = ['groupOfNames', 'gosaGroupOfNames'];
 
-  var $used_workstations = array();
+  var $used_workstations = [];
 
   protected $savedTypedMembers;
 
-  static $objectTypes = array(
+  static $objectTypes = [
     'U' => 'user',
     'G' => 'ogroup',
     'A' => 'application',
@@ -167,49 +167,49 @@ class ogroup extends simplePlugin
     'F' => 'phone',
     'P' => 'printer',
     'D' => 'simpleSecurityObject',
-  );
+  ];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Object group'),
       'plDescription' => _('Object group information'),
       'plSelfModify'  => FALSE,
       'plPriority'    => 1,
-      'plObjectType'  => array('ogroup' => array(
+      'plObjectType'  => ['ogroup' => [
         'name'        => _('Group'),
         'description' => _('Group'),
         'ou'          => get_ou('ogroupRDN'),
         'filter'      => 'objectClass=groupOfNames',
         'icon'        => 'geticon.php?context=types&icon=resource-group&size=16',
         'tabClass'    => 'ogrouptabs',
-      )),
-      'plForeignKeys'  => array(
-        'member' => array(
-          array('user',               'dn','member=%oldvalue%','*'),
-          array('ogroup',             'dn','member=%oldvalue%','*'),
-          array('application',        'dn','member=%oldvalue%','*'),
-          array('serverGeneric',      'dn','member=%oldvalue%','*'),
-          array('workstationGeneric', 'dn','member=%oldvalue%','*'),
-          array('terminalGeneric',    'dn','member=%oldvalue%','*'),
-          array('phoneGeneric',       'dn','member=%oldvalue%','*'),
-          array('printGeneric',       'dn','member=%oldvalue%','*'),
-        ),
-        'owner' => array(
-          array('user','dn','owner=%oldvalue%','*')
-        )
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'member' => [
+          ['user',               'dn','member=%oldvalue%','*'],
+          ['ogroup',             'dn','member=%oldvalue%','*'],
+          ['application',        'dn','member=%oldvalue%','*'],
+          ['serverGeneric',      'dn','member=%oldvalue%','*'],
+          ['workstationGeneric', 'dn','member=%oldvalue%','*'],
+          ['terminalGeneric',    'dn','member=%oldvalue%','*'],
+          ['phoneGeneric',       'dn','member=%oldvalue%','*'],
+          ['printGeneric',       'dn','member=%oldvalue%','*'],
+        ],
+        'owner' => [
+          ['user','dn','owner=%oldvalue%','*']
+        ]
+      ],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('Properties'),
-        'attrs' => array(
+        'attrs' => [
           new BaseSelectorAttribute(get_ou('ogroupRDN')),
           new StringAttribute(
             _('Name'), _('Name of this group'),
@@ -225,36 +225,36 @@ class ogroup extends simplePlugin
             _('Owner'), _('Owner'),
             'owner', FALSE
           ),
-        )
-      ),
-      'members' => array(
+        ]
+      ],
+      'members' => [
         'name'  => _('Member objects'),
-        'attrs' => array(
+        'attrs' => [
           new ObjectsAttribute(
             '', _('Objects member of this group'),
             'member', TRUE,
-            array(), 'dn'
+            [], 'dn'
           )
-        )
-      ),
-      'system_trust' => array(
+        ]
+      ],
+      'system_trust' => [
         'name'  => _('System trust'),
         'icon'  => 'geticon.php?context=status&icon=locked&size=16',
-        'attrs' => array(
+        'attrs' => [
           new SelectAttribute(
             _('Trust mode'), _('Type of authorization for those hosts'),
             'trustMode', FALSE,
-            array('', 'fullaccess', 'byhost'),
+            ['', 'fullaccess', 'byhost'],
             '',
-            array(_('disabled'), _('full access'), _('allow access to these hosts'))
+            [_('disabled'), _('full access'), _('allow access to these hosts')]
           ),
           new SystemsAttribute(
             '', _('Only allow this group to connect to this list of hosts'),
             'host', FALSE
           )
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -263,12 +263,12 @@ class ogroup extends simplePlugin
 
     $this->attributesAccess['trustMode']->setInLdap(FALSE);
     $this->attributesAccess['trustMode']->setManagedAttributes(
-      array(
-        'multiplevalues' => array('notbyhost' => array('','fullaccess')),
-        'erase' => array(
-          'notbyhost' => array('host')
-        )
-      )
+      [
+        'multiplevalues' => ['notbyhost' => ['','fullaccess']],
+        'erase' => [
+          'notbyhost' => ['host']
+        ]
+      ]
     );
     if ((count($this->host) == 1) && ($this->host[0] == '*')) {
       $this->trustMode = 'fullaccess';
@@ -279,14 +279,14 @@ class ogroup extends simplePlugin
     /* Detect all workstations, which are already assigned to an object group
         - Those objects will be hidden in the add object dialog.
         - Check() will complain if such a system is assigned to this object group.*/
-    $this->used_workstations = array();
+    $this->used_workstations = [];
     try {
-      $ws_dns = array_keys(objects::ls(array('workstation','terminal')));
-      $res = objects::ls('ogroup', array('member' => '*'), NULL, '(&(member=*)(|(gosaGroupObjects=[W])(gosaGroupObjects=[T])))');
+      $ws_dns = array_keys(objects::ls(['workstation','terminal']));
+      $res = objects::ls('ogroup', ['member' => '*'], NULL, '(&(member=*)(|(gosaGroupObjects=[W])(gosaGroupObjects=[T])))');
     } catch (NonExistingObjectTypeException $e) {
       /* If workstation/terminal objectType is not existing, systems plugin is missing so there are no systems */
-      $ws_dns = array();
-      $res    = array();
+      $ws_dns = [];
+      $res    = [];
     }
     foreach ($res as $odn => $og) {
       if ($odn == $this->dn) {
@@ -306,21 +306,21 @@ class ogroup extends simplePlugin
     return '(objectClass=groupOfNames)';
   }
 
-  function is_this_account($attrs)
+  function is_this_account ($attrs)
   {
-    $this->objectclasses  = array('groupOfNames');
+    $this->objectclasses  = ['groupOfNames'];
     $found = parent::is_this_account($attrs);
-    $this->objectclasses  = array('groupOfNames', 'gosaGroupOfNames');
+    $this->objectclasses  = ['groupOfNames', 'gosaGroupOfNames'];
     return $found;
   }
 
-  function prepare_save()
+  function prepare_save ()
   {
     $this->reload();
     $errors = parent::prepare_save();
 
     if ($this->trustMode == 'fullaccess') {
-      $this->attrs['host'] = array('*');
+      $this->attrs['host'] = ['*'];
     }
 
     /* Trust accounts */
@@ -333,12 +333,12 @@ class ogroup extends simplePlugin
     return $errors;
   }
 
-  function reload()
+  function reload ()
   {
     $this->gosaGroupObjects = $this->attributesAccess['member']->listObjectTypes();
   }
 
-  function check()
+  function check ()
   {
     $message = parent::check();
     $this->reload();
@@ -349,15 +349,15 @@ class ogroup extends simplePlugin
     return $message;
   }
 
-  function ldap_save()
+  function ldap_save ()
   {
     global $ui;
 
-    $errors = array();
+    $errors = [];
 
     if (isset($this->attrs['member'])) {
-      $userMembers  = array();
-      $savedMembers = array();
+      $userMembers  = [];
+      $savedMembers = [];
       $members      = $this->attributesAccess['member']->getTypedValues();
       if (isset($members['U'])) {
         $userMembers = $members['U'];
@@ -386,7 +386,7 @@ class ogroup extends simplePlugin
     return parent::ldap_save();
   }
 
-  function getGroupObjectTypes()
+  function getGroupObjectTypes ()
   {
     $this->reload();
     return $this->gosaGroupObjects;
diff --git a/plugins/admin/groups/class_roleGeneric.inc b/plugins/admin/groups/class_roleGeneric.inc
index c1e2771515bd89e228e5a38a33dcf13a07ceadea..20292d67ea1c1e25927d2ddceeae3f2371472f97 100644
--- a/plugins/admin/groups/class_roleGeneric.inc
+++ b/plugins/admin/groups/class_roleGeneric.inc
@@ -22,54 +22,54 @@ class RoleMembersAttribute extends UsersAttribute
 {
   protected $whitelistDns = NULL;
 
-  function getFilterWhiteList()
+  function getFilterWhiteList ()
   {
     global $config;
     if ($config->get_cfg_value('RestrictRoleMembers') == 'TRUE') {
       if ($this->whitelistDns === NULL) {
         /* Computes a list of members of all groups within our branch */
-        $groups = objects::ls('ogroup', array('member' => '*'), $this->plugin->base);
+        $groups = objects::ls('ogroup', ['member' => '*'], $this->plugin->base);
         if (empty($groups)) {
-          $this->whitelistDns = array();
+          $this->whitelistDns = [];
         } else {
           $this->whitelistDns = call_user_func_array('array_merge_recursive', $groups)['member'];
         }
       }
-      return array(
-        'branches'  => array($this->plugin->base),
+      return [
+        'branches'  => [$this->plugin->base],
         'dn'        => $this->whitelistDns,
-      );
+      ];
     } else {
-      return array();
+      return [];
     }
   }
 }
 
 class roleGeneric extends simplePlugin
 {
-  var $objectclasses = array('organizationalRole');
+  var $objectclasses = ['organizationalRole'];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Role'),
       'plDescription' => _('Role information'),
-      'plObjectType'  => array('role' =>
-        array(
+      'plObjectType'  => ['role' =>
+        [
           'name'        => _('Role'),
           'description' => _('Organizational role'),
           'ou'          => get_ou('roleRDN'),
           'filter'      => '(&(objectClass=organizationalRole)(!(objectClass=simpleSecurityObject)))',
           'icon'        => 'geticon.php?context=types&icon=role&size=16',
           'mainAttr'    => 'cn',
-        )
-      ),
-      'plForeignKeys'  => array(
-        'roleOccupant' => array('user','dn','roleOccupant=%oldvalue%','*')
-      ),
+        ]
+      ],
+      'plForeignKeys'  => [
+        'roleOccupant' => ['user','dn','roleOccupant=%oldvalue%','*']
+      ],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
    /*!
@@ -77,47 +77,47 @@ class roleGeneric extends simplePlugin
    */
   static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'  => _('Information'),
-        'attrs' => array(
-          new BaseSelectorAttribute (get_ou('roleRDN')),
+        'attrs' => [
+          new BaseSelectorAttribute(get_ou('roleRDN')),
           new StringAttribute(
             _('Name'), _('Name of this group'),
             'cn', TRUE,
             '', '', (strict_uid_mode() ? '/^[a-z0-9_-]+$/i' : '/^[a-z0-9_.-]+$/i')
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Description'), _('Description of the role'),
             'description'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Phone number'), _('Phone number'),
             'telephoneNumber'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Fax number'), _('Fax number'),
             'facsimileTelephoneNumber'
           )
-        )
-      ),
-      'members' => array(
+        ]
+      ],
+      'members' => [
         'name'  => _('Role members'),
-        'attrs' => array(
-          new RoleMembersAttribute (
+        'attrs' => [
+          new RoleMembersAttribute(
             '', _('Add users for the role'),
             'roleOccupant', FALSE
           )
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
-  function ldap_save()
+  function ldap_save ()
   {
     global $ui;
 
-    $errors = array();
+    $errors = [];
 
     if (isset($this->attrs['roleOccupant'])) {
       $savedOccupants     = $this->attributesAccess['roleOccupant']->getInitialValue();
diff --git a/plugins/admin/groups/tabs_ogroups.inc b/plugins/admin/groups/tabs_ogroups.inc
index 5c26b43892e2e9c231d384fe81190e4d6fd1d7f7..662e60055e983996e4bd5cb58ceadc69e6102f5d 100644
--- a/plugins/admin/groups/tabs_ogroups.inc
+++ b/plugins/admin/groups/tabs_ogroups.inc
@@ -21,16 +21,16 @@
 class ogrouptabs extends simpleTabs_noSpecial
 {
   protected $groupObjects = NULL;
-  protected $removed_tabs = array();
+  protected $removed_tabs = [];
 
-  function __construct($type, $dn, $copied_object = NULL)
+  function __construct ($type, $dn, $copied_object = NULL)
   {
     parent::__construct($type, $dn, $copied_object);
 
     $this->loadtabs($this->getBaseObject()->gosaGroupObjects);
   }
 
-  function loadtabs($gosaGroupObjects)
+  function loadtabs ($gosaGroupObjects)
   {
     global $config;
     if ($this->groupObjects == $gosaGroupObjects) {
@@ -39,21 +39,21 @@ class ogrouptabs extends simpleTabs_noSpecial
     $this->groupObjects = $gosaGroupObjects;
     $objects = preg_replace('/[\[\]]/', '', $gosaGroupObjects);
 
-    $tabs = array();
+    $tabs = [];
     if (strlen($objects)) {
       if (isset($config->data['TABS']['OGROUP-DYNAMICTABS'])) {
         $dtabs  = $config->data['TABS']['OGROUP-DYNAMICTABS'];
       } else {
-        $dtabs  = array();
+        $dtabs  = [];
       }
       $tabs   = FALSE;
       for ($i = 0; $i < strlen($objects); $i++) {
-        if (in_array($objects[$i], array('I','G'))) {
+        if (in_array($objects[$i], ['I','G'])) {
           /* Ignore unknown objects and groups */
           continue;
         }
         $otype = ogroup::$objectTypes[$objects[$i]];
-        $otabs = array();
+        $otabs = [];
         if (isset($config->data['TABS'][strtoupper($otype).'TABS'])) {
           $otabs = array_uintersect(
             $dtabs,
@@ -108,7 +108,7 @@ class ogrouptabs extends simpleTabs_noSpecial
 
   function addTab ($class)
   {
-    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, 'Adding tab ');
+    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, 'Adding tab ');
     $plInfos = pluglist::pluginInfos($class);
     $this->by_name[$class]  = $plInfos['plShortName'];
     $this->plNotify[$class] = FALSE;
@@ -129,7 +129,7 @@ class ogrouptabs extends simpleTabs_noSpecial
     unset($this->plNotify["$class"]);
   }
 
-  function gen_tabs($disabled = FALSE)
+  function gen_tabs ($disabled = FALSE)
   {
     $this->loadtabs($this->getBaseObject()->getGroupObjectTypes());
     return parent::gen_tabs($disabled);
@@ -138,7 +138,7 @@ class ogrouptabs extends simpleTabs_noSpecial
   /*!
    * \brief Sets the active tabs from this instance to an other one. Used by templates
    */
-  function setActiveTabs(&$tabObject)
+  function setActiveTabs (&$tabObject)
   {
     $tabObject->loadtabs($this->groupObjects);
     foreach ($this->by_object as $class => $plugin) {
@@ -148,12 +148,12 @@ class ogrouptabs extends simpleTabs_noSpecial
     }
   }
 
-  function check($ignore_account = FALSE)
+  function check ($ignore_account = FALSE)
   {
     return parent::check(FALSE);
   }
 
-  function save()
+  function save ()
   {
     $errors = parent::save();
 
@@ -161,7 +161,7 @@ class ogrouptabs extends simpleTabs_noSpecial
       if (isset($this->by_object[$key])) {
         continue;
       }
-      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Removing');
+      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Removing');
 
       $obj->dn = $this->dn;
       $tabErrors = $obj->remove(FALSE);
@@ -174,7 +174,7 @@ class ogrouptabs extends simpleTabs_noSpecial
     return $errors;
   }
 
-  function save_object($save_current = FALSE)
+  function save_object ($save_current = FALSE)
   {
     parent::save_object($save_current);
 
diff --git a/plugins/admin/users/class_userManagement.inc b/plugins/admin/users/class_userManagement.inc
index 3424dc78733813352995d9f6e6e7ff12fa28ec74..0c5956a5d2d00d1f3f9b8a87e703e839852eafa4 100644
--- a/plugins/admin/users/class_userManagement.inc
+++ b/plugins/admin/users/class_userManagement.inc
@@ -22,7 +22,7 @@
 
 class userManagement extends simpleManagement
 {
-  protected $objectTypes  = array('user');
+  protected $objectTypes  = ['user'];
 
   protected $departmentBrowser      = TRUE;
   protected $departmentRootVisible  = FALSE;
@@ -36,22 +36,22 @@ class userManagement extends simpleManagement
 
   public static $skipTemplates = FALSE;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Users'),
       'plTitle'       => _('Manage users'),
       'plDescription' => _('Manage user accounts and their properties'),
       'plIcon'        => 'geticon.php?context=types&icon=user&size=48',
       'plSection'     => 'accounts',
-      'plManages'     => array('user'),
+      'plManages'     => ['user'],
       'plPriority'    => 10,
 
-      'plProvidedAcls' => array()
-    );
+      'plProvidedAcls' => []
+    ];
   }
 
-  function __construct()
+  function __construct ()
   {
     $this->filterXMLPath  = get_template_path('user-filter.xml',  TRUE, dirname(__FILE__));
     $this->listXMLPath    = get_template_path('user-list.xml',    TRUE, dirname(__FILE__));
@@ -80,7 +80,7 @@ class userManagement extends simpleManagement
   {
     parent::configureFilter();
 
-    $classes = array();
+    $classes = [];
     if (class_available('posixAccount')) {
       $classes[] = 'posixAccount';
     } else {
@@ -103,10 +103,10 @@ class userManagement extends simpleManagement
       $this->filter->elements['SAMBA']['set']   = '';
     }
     if (empty($classes)) {
-      $this->filter->elements['FUNCTIONAL']['set']  = '(objectClass=*)';
+      $this->filter->elements['FUNCTIONAL']['set']  = ' (objectClass=*)';
     } else {
       /* The FUNCTIONAL filter must not use inexisting classes */
-      $this->filter->elements['FUNCTIONAL']['set']  = '(!(|(objectClass='.implode(')(objectClass=', $classes).')))';
+      $this->filter->elements['FUNCTIONAL']['set']  = ' (! (| (objectClass='.implode(') (objectClass=', $classes).')))';
     }
   }
 
@@ -121,7 +121,7 @@ class userManagement extends simpleManagement
 
   /* !\brief  Lock/unlock multiple users.
    */
-  function lockUsers($action, array $target, array $all)
+  function lockUsers ($action, array $target, array $all)
   {
     if (!count($target)) {
       return;
@@ -136,12 +136,12 @@ class userManagement extends simpleManagement
 
   /* !\brief  Locks/unlocks the given user(s).
    */
-  function lockEntry($action, $entry, $all, $type = 'toggle')
+  function lockEntry ($action, $entry, $all, $type = 'toggle')
   {
     global $config, $ui;
     // Filter out entries we are not allowed to modify
-    $disallowed = array();
-    $allowed    = array();
+    $disallowed = [];
+    $allowed    = [];
     foreach ($entry as $dn) {
       if (!preg_match('/w/', $ui->get_permissions($dn, 'user/user', 'userLock'))) {
         $disallowed[] = $dn;
@@ -156,7 +156,7 @@ class userManagement extends simpleManagement
     // Try to lock/unlock the rest of the entries.
     $ldap = $config->get_ldap_link();
     foreach ($allowed as $dn) {
-      $ldap->cat($dn, array('userPassword'));
+      $ldap->cat($dn, ['userPassword']);
       if ($ldap->count() == 1) {
 
         // We can't lock empty passwords.
@@ -207,7 +207,7 @@ class userManagement extends simpleManagement
     }
   }
 
-  static function filterLockImage($userPassword)
+  static function filterLockImage ($userPassword)
   {
     $image = 'images/empty.png';
     if (isset($userPassword[0]) && preg_match('/^\{[^\}]/', $userPassword[0])) {
@@ -220,7 +220,7 @@ class userManagement extends simpleManagement
     return $image;
   }
 
-  static function filterLockLabel($userPassword)
+  static function filterLockLabel ($userPassword)
   {
     $label = '';
     if (isset($userPassword[0]) && preg_match('/^\{[^\}]/', $userPassword[0])) {
@@ -233,10 +233,10 @@ class userManagement extends simpleManagement
     return $label;
   }
 
-  static function filterProperties($row, $dn, $attrs)
+  static function filterProperties ($row, $dn, $attrs)
   {
     global $config;
-    static $usertabs = array();
+    static $usertabs = [];
     if (empty($usertabs)) {
       foreach ($config->data['TABS']['USERTABS'] as $plug) {
         if ($plug['CLASS'] == 'user') {
@@ -255,7 +255,7 @@ class userManagement extends simpleManagement
                        'alt="'._('User account').'" title="'._('User account information').'" '.
                        'name="listing_edit_tab_user_'.$row.'"/>';
     if (!empty($attrs)) {
-      if (in_array_ics ('fdTemplate', $attrs['objectClass'])) {
+      if (in_array_ics('fdTemplate', $attrs['objectClass'])) {
         $attrs = templateHandling::fieldsFromLDAP($attrs);
       }
       foreach ($usertabs as $class => $usertab) {
@@ -266,7 +266,7 @@ class userManagement extends simpleManagement
                        'alt="'.$infos['plShortName'].'" title="'.$infos['plShortName'].'" '.
                        'name="listing_edit_tab_'.$class.'_'.$row.'"/>';
           } else {
-            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", "No icon for");
+            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", "No icon for");
           }
         } else {
           $result .= '<img src="images/empty.png" alt="" class="center optional '.$class.'"/>';
diff --git a/plugins/config/class_configInLdap.inc b/plugins/config/class_configInLdap.inc
index 5f19db7c00aafffa73fdb1d0f14ffebbdc1b7ef3..a3485ec979a03dde3978cb4f27fdc1022dee1ed2 100644
--- a/plugins/config/class_configInLdap.inc
+++ b/plugins/config/class_configInLdap.inc
@@ -25,7 +25,7 @@ class DebugLevelAttribute extends SetAttribute
   {
     if (isset($attrs[$this->getLdapName()])) {
       $value = $attrs[$this->getLdapName()][0];
-      $this->value = array();
+      $this->value = [];
       foreach ($this->attribute->getChoices() as $choice) {
         if ($value & $choice) {
           $this->value[] = $choice;
@@ -36,7 +36,7 @@ class DebugLevelAttribute extends SetAttribute
     }
   }
 
-  function computeLdapValue()
+  function computeLdapValue ()
   {
     $value = 0;
     foreach ($this->value as $v) {
@@ -48,368 +48,368 @@ class DebugLevelAttribute extends SetAttribute
 
 class configInLdap extends simplePlugin
 {
-  var $objectclasses  = array("fusionDirectoryConf");
+  var $objectclasses  = ["fusionDirectoryConf"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'     => _('Configuration'),
       'plTitle'         => _('FusionDirectory configuration'),
       'plDescription'   => _('Configuration screen of FusionDirectory'),
       'plIcon'          => 'geticon.php?context=categories&icon=settings&size=48',
-      'plObjectType'    => array(
-        'configuration' => array(
+      'plObjectType'    => [
+        'configuration' => [
           'name'      => _('FusionDirectory configuration'),
           'filter'    => 'objectClass=fusionDirectoryConf',
           'tabClass'  => 'tabs_configInLdap',
           'icon'      => 'geticon.php?context=categories&icon=settings&size=16',
           'mainAttr'  => FALSE,
           'ou'        => preg_replace('/^[^,]+,/', '', CONFIGRDN)
-        )
-      ),
-      'plSection'       => array('conf' => array('name' => _('Configuration'), 'priority' => 20)),
-      'plManages'       => array('configuration'),
+        ]
+      ],
+      'plSection'       => ['conf' => ['name' => _('Configuration'), 'priority' => 20]],
+      'plManages'       => ['configuration'],
       'plPriority'      => 0,
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
     global $config;
-    $plugins = array();
-    if (session::global_is_set('plist')) {
-      $plugins = array_keys(session::global_get('plist')->info);
+    $plugins = [];
+    if (session::is_set('plist')) {
+      $plugins = array_keys(session::get('plist')->info);
     }
     sort($plugins);
-    return array(
-      'look_n_feel' => array(
+    return [
+      'look_n_feel' => [
         'name'  => _('Look and feel'),
-        'attrs' => array(
-          new SelectAttribute (
+        'attrs' => [
+          new SelectAttribute(
             _('Language'), _('Language of the application. If \'automatic\' or not available, the one asked by the browser will be used. This setting can be overriden per user.'),
             'fdLanguage', FALSE,
-            array('')
+            ['']
           ),
-          new SelectAttribute (
+          new SelectAttribute(
             _('Theme'), _('Theme to be used'),
             'fdTheme', TRUE,
             static::get_themes(),
             'breezy'
           ),
-          new SelectAttribute (
+          new SelectAttribute(
             _('Timezone'), _('Timezone to be used'),
             'fdTimezone', TRUE,
-            array('America/New_York')
+            ['America/New_York']
           ),
-          new HiddenAttribute ('fusionConfigMd5'),
-        )
-      ),
-      'core_settings' => array(
+          new HiddenAttribute('fusionConfigMd5'),
+        ]
+      ],
+      'core_settings' => [
         'name'  => _('Core settings'),
-        'attrs' => array(
-          new IntAttribute (
+        'attrs' => [
+          new IntAttribute(
             _('LDAP size limit'), _('Defines the number of entries to get from LDAP by default.'),
             'fdLdapSizeLimit', FALSE,
             0 /*min*/, FALSE /*no max*/, 200
           ),
-          new SelectAttribute (
+          new SelectAttribute(
             _('Edit locking'),
             _('Check if a entry currently being edited has been modified outside of FusionDirectory in the meantime.'),
             'fdModificationDetectionAttribute', FALSE,
-            array('', 'entryCSN', 'contextCSN'), 'entryCSN'
+            ['', 'entryCSN', 'contextCSN'], 'entryCSN'
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Enable logging'),
             _('Event logging on FusionDirectory side.'),
             'fdLogging', FALSE,
             TRUE
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Schema validation'),
             _('Enables schema checking during login.'),
             'fdSchemaCheck', FALSE,
             TRUE
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Enable snapshots'), _('This enables you to save certain states of entries and restore them later on.'),
             'fdEnableSnapshots', FALSE,
             TRUE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Snapshot base'), _('The base where snapshots should be stored inside of the LDAP.'),
             'fdSnapshotBase', FALSE,
             'ou=snapshots,'.$config->current['BASE']
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Wildcard foreign keys'), _('Enables wildcard searches like member=* when moving a whole departement. This will open all existing groups and roles to make sure foreign keys are respected. Slow on big trees.'),
             'fdWildcardForeignKeys', FALSE,
             TRUE
           ),
-        )
-      ),
-      'password' => array(
+        ]
+      ],
+      'password' => [
         'name'  => _('Password settings'),
-        'attrs' => array(
-          new SelectAttribute (
+        'attrs' => [
+          new SelectAttribute(
             _('Password default hash'), _('Default hash to be used'),
             'fdPasswordDefaultHash', TRUE,
-            array('ssha')
+            ['ssha']
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Force default hash'), _('Force the use of the default password hash'),
             'fdForcePasswordDefaultHash'
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Password minimum length'), _('Minimum length of user passwords'),
             'fdPasswordMinLength', FALSE,
             0 /*min*/, FALSE /*no max*/
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Password minimum differs'), _('Minimum number of different characters from last password'),
             'fdPasswordMinDiffer', FALSE,
             0 /*min*/, FALSE /*no max*/
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Use account expiration'),
             _('Enables shadow attribute tests during the login to FusionDirectory and forces password renewal or account locking'),
             'fdHandleExpiredAccounts'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('SASL Realm'), _('SASL Realm'),
             'fdSaslRealm'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('SASL Exop'), _('Attribute to be stored in the userPassword attribute'),
             'fdSaslExop'
           ),
-        )
-      ),
-      'login' => array(
+        ]
+      ],
+      'login' => [
         'name'  => _('Login and session'),
-        'attrs' => array(
-          new SelectAttribute (
+        'attrs' => [
+          new SelectAttribute(
             _('Login attribute'),
             _('Which LDAP attribute should be used as the login name during login.'),
             'fdLoginAttribute', TRUE,
-            array('uid', 'mail', 'uid,mail'), 'uid',
-            array('uid', 'mail', 'both')
+            ['uid', 'mail', 'uid,mail'], 'uid',
+            ['uid', 'mail', 'both']
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Enforce encrypted connections'),
             _('Enables PHP security checks to force encrypted access (https) to the web interface.'),
             'fdForceSSL'
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Warn if session is not encrypted'),
             _('will display a warning to the user when http is used instead of https.'),
             'fdWarnSSL', FALSE,
             TRUE
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Session lifetime'), _('Defines when a session will expire in seconds (0 to disable).'),
             'fdSessionLifeTime', TRUE,
             0 /*min*/, FALSE /*no max*/, 1800
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('HTTP Basic authentication'), _('Use HTTP Basic authentication protocol instead of the login form.'),
             'fdHttpAuthActivated', FALSE,
             FALSE
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('HTTP Header authentication'), _('Use HTTP Header authentication instead of the login form.'),
             'fdHttpHeaderAuthActivated', FALSE,
             FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Header name'), _('Name of the header containing user identifier.'),
             'fdHttpHeaderAuthHeaderName', FALSE,
             'AUTH_USER'
           ),
-        )
-      ),
-      'ssl' => array(
+        ]
+      ],
+      'ssl' => [
         'name'  => _('SSL'),
-        'attrs' => array(
-          new TrimmedStringAttribute (
+        'attrs' => [
+          new TrimmedStringAttribute(
             _('Key path'), _('Path to FusionDirectory private key. Unused for now.'),
             'fdSslKeyPath', FALSE,
             '/etc/ssl/private/fd.key'
           ),
-          new TrimmedStringAttribute (
+          new TrimmedStringAttribute(
             _('Certificate path'), _('Path to FusionDirectory certificate. Unused for now.'),
             'fdSslCertPath', FALSE,
             '/etc/ssl/certs/fd.cert'
           ),
-          new TrimmedStringAttribute (
+          new TrimmedStringAttribute(
             _('CA certificate path'), _('Path to the CA certificate. Used for validating Argonaut Server host.'),
             'fdSslCaCertPath', FALSE,
             '/etc/ssl/certs/ca.cert'
           ),
-        )
-      ),
-      'cas' => array(
+        ]
+      ],
+      'cas' => [
         'name'  => _('CAS'),
-        'attrs' => array(
-          new BooleanAttribute (
+        'attrs' => [
+          new BooleanAttribute(
             _('Enable CAS'), _('CAS login will be used instead of LDAP bind'),
             'fdCasActivated', FALSE,
             FALSE
           ),
-          new TrimmedStringAttribute (
+          new TrimmedStringAttribute(
             _('CA certificate path'), _('Path to the CA certificate of the CAS server'),
             'fdCasServerCaCertPath', FALSE,
             '/etc/ssl/certs/ca.cert'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Host'), _('Host of the CAS server'),
             'fdCasHost', FALSE,
             'localhost'
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Port'), _('Port the CAS server is listening on'),
             'fdCasPort', FALSE,
             0 /*min*/, FALSE /*no max*/, 443
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('CAS context'), _('CAS context to be used'),
             'fdCasContext', FALSE,
             '/cas'
           ),
-        )
-      ),
-      'people_and_group' => array(
+        ]
+      ],
+      'people_and_group' => [
         'name'  => _('People and group storage'),
-        'class' => array('critical'),
-        'attrs' => array(
-          new SelectAttribute (
+        'class' => ['critical'],
+        'attrs' => [
+          new SelectAttribute(
             _('People DN attribute'), _('Attribute to use at the beginning of users dn'),
             'fdAccountPrimaryAttribute', TRUE,
-            array('uid', 'cn')
+            ['uid', 'cn']
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('CN pattern'), _('The pattern to use to build the common name field'),
             'fdCnPattern', TRUE,
             '%givenName% %sn%'
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Strict naming policy'),
             _('Enables strict checking of user and group names'),
             'fdStrictNamingRules', FALSE,
             TRUE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Users RDN'), _('The branch where users are stored.'),
             'fdUserRDN', TRUE,
             'ou=people'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('ACL role RDN'), _('The branch where ACL roles are stored.'),
             'fdAclRoleRDN', TRUE,
             'ou=aclroles'
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Restrict role members'), _('When enabled only users from the same branch or members of groups from the same branch can be added to a role.'),
             'fdRestrictRoleMembers'
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Separate address fields'), _('Expose street, postOfficeBox and postalCode fields instead of postalAddress.'),
             'fdSplitPostalAddress'
           ),
-          new PostalAddressAttribute (
+          new PostalAddressAttribute(
             _('Postal address pattern'), _('When using separate address fields, you can use a pattern to fill postalAddress field.'),
             'fdPostalAddressPattern'
           ),
-        )
-      ),
-      'debug' => array(
+        ]
+      ],
+      'debug' => [
         'name'  => _('Debugging'),
-        'attrs' => array(
-          new BooleanAttribute (
+        'attrs' => [
+          new BooleanAttribute(
             _('Display errors'),
             _('Shows PHP errors in the upper part of the screen. This should be disabled in productive deployments, because there might be some passwords in it.'),
             'fdDisplayErrors'
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Maximum LDAP query time'), _('Stop LDAP actions if there is no answer within the specified number of seconds.'),
             'fdLdapMaxQueryTime', FALSE,
             0 /*min*/, FALSE /*no max*/
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Log LDAP statistics'),
             _('Track LDAP timing statistics to the syslog. This may help to find indexing problems or bad search filters.'),
             'fdLdapStats'
           ),
-          new DebugLevelAttribute (
-            new SelectAttribute (
+          new DebugLevelAttribute(
+            new SelectAttribute(
               _('Debug level'),
               _('Display certain information on each page load.'),
               'fdDebugLevel', FALSE,
-              array(DEBUG_TRACE,  DEBUG_LDAP, DEBUG_DB,   DEBUG_SHELL,  DEBUG_POST,
-                    DEBUG_SESSION,  DEBUG_ACL,  DEBUG_SI, DEBUG_MAIL),
+              [DEBUG_TRACE,  DEBUG_LDAP, DEBUG_DB,   DEBUG_SHELL,  DEBUG_POST,
+                    DEBUG_SESSION,  DEBUG_ACL,  DEBUG_SI, DEBUG_MAIL],
                     DEBUG_TRACE,
-              array('Trace',      'LDAP',     'Database', 'Shell',      'POST',
-                    'SESSION',      'ACL',      'SI',     'Mail')
+              ['Trace',      'LDAP',     'Database', 'Shell',      'POST',
+                    'SESSION',      'ACL',      'SI',     'Mail']
             )
           ),
-        )
-      ),
-      'miscellaneous' => array(
+        ]
+      ],
+      'miscellaneous' => [
         'name'  => _('Miscellaneous'),
-        'attrs' => array(
-          new BooleanAttribute (
+        'attrs' => [
+          new BooleanAttribute(
             _('Display summary in listings'),
             _('Determines whether a status bar will be shown on the bottom of lists, displaying a short summary of type and number of elements in the list.'),
             'fdListSummary', FALSE,
             TRUE
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Show ACL tab on all objects'),
             _('For very specific ACL rights setting where you might need to give right on a single object.'),
             'fdAclTabOnObjects'
           ),
           new SetAttribute(
-            new StringAttribute (
+            new StringAttribute(
               _('Available department categories'), _('Available categories in the departments dropdown'),
               'fdDepartmentCategories', FALSE
             ),
-            array()
+            []
           ),
           new OrderedArrayAttribute(
             new PipeSeparatedCompositeAttribute(
               _('Use this to hide some menu entry to specific groups of users'),
               'fdPluginsMenuBlacklist',
-              array(
+              [
                 new SelectAttribute(
                   '', _('Group or role'),
                   'blacklistGroup', TRUE,
-                  array()
+                  []
                 ),
                 new SelectAttribute(
                   '', _('Plugin to blacklist'),
                   'blacklistPlugin', TRUE,
-                  array()
+                  []
                 ),
-              ),
+              ],
               '',
               _('Plugin menu blacklist')
             ),
             // no order
             FALSE,
-            array()
+            []
           )
-        )
-      ),
-      'hooks' => array(
+        ]
+      ],
+      'hooks' => [
         'name'  => _('Hooks'),
-        'class' => array('fullwidth'),
-        'attrs' => array(
-          new OrderedArrayAttribute (
-            new CompositeAttribute (
+        'class' => ['fullwidth'],
+        'attrs' => [
+          new OrderedArrayAttribute(
+            new CompositeAttribute(
               _('Hooks that are called when specific actions happens'),
               'fdTabHook',
-              array(
+              [
                 new SelectAttribute(
                   _('Tab'), _('The tab that this hook concerns'),
                   'hookTab', TRUE,
@@ -418,32 +418,32 @@ class configInLdap extends simplePlugin
                 new SelectAttribute(
                   _('Mode'), _('When to call this command'),
                   'hookMode', TRUE,
-                  array('postcreate', 'postremove', 'postmodify',
+                  ['postcreate', 'postremove', 'postmodify',
                         'precreate', 'preremove', 'premodify', 'check',
-                        'prelock', 'postlock', 'preunlock', 'postunlock')
+                        'prelock', 'postlock', 'preunlock', 'postunlock']
                 ),
                 new TextAreaAttribute(
                   _('Command'), _('The command that will be called'),
                   'hookCmd', TRUE
                 )
-              ),
+              ],
               '/^([^\\|]+)\\|([^\\|]+)\\|(.*)$/',
               '%s|%s|%s',
               '', // acl
               _('Hooks')
             ),
             FALSE, // non-ordered
-            array(),
+            [],
             TRUE // edition
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Display hook output'),
             _('When enabled successful hook execution output is displayed to the user using a dialog.'),
             'fdDisplayHookOutput'
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE, $attributesInfo = NULL)
@@ -453,7 +453,7 @@ class configInLdap extends simplePlugin
     /* Languages */
     $languages = Language::getList(TRUE);
     asort($languages);
-    $languages = array_merge(array("" => _("Automatic")), $languages);
+    $languages = array_merge(["" => _("Automatic")], $languages);
     $attributesInfo['look_n_feel']['attrs'][0]->setChoices(array_keys($languages), array_values($languages));
     /* Timezones */
     $attributesInfo['look_n_feel']['attrs'][2]->setChoices(timezone::_get_tz_zones());
@@ -485,12 +485,12 @@ class configInLdap extends simplePlugin
       array_keys($groupsAndRoles),
       array_values($groupsAndRoles)
     );
-    $menuPlugins = array();
-    $plist = session::global_get('plist');
+    $menuPlugins = [];
+    $plist = session::get('plist');
     foreach ($config->data['SECTIONS'] as $section => $section_infos) {
       foreach ($config->data['MENU'][$section] as $info) {
         if (isset($info['CLASS'])) {
-          list ($plHeadline, , , ) = $plist->get_infos($info['CLASS']);
+          list($plHeadline, , , ) = $plist->get_infos($info['CLASS']);
           $menuPlugins[$info['CLASS']] = $plHeadline;
         }
       }
@@ -511,73 +511,73 @@ class configInLdap extends simplePlugin
     $this->fusionConfigMd5 = md5_file(CACHE_DIR."/".CLASS_CACHE);
 
     $this->attributesAccess['fdHttpAuthActivated']->setManagedAttributes(
-      array(
-        'erase' => array (
-          TRUE => array (
+      [
+        'erase' => [
+          TRUE => [
             'fdCasActivated',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
     $this->attributesAccess['fdEnableSnapshots']->setManagedAttributes(
-      array(
-        'disable' => array (
-          FALSE => array (
+      [
+        'disable' => [
+          FALSE => [
             'fdSnapshotBase',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
 
     $this->attributesAccess['fdTabHook']->setLinearRendering(FALSE);
 
     $this->attributesAccess['fdForceSSL']->setManagedAttributes(
-      array(
-        'disable' => array (
-          TRUE => array (
+      [
+        'disable' => [
+          TRUE => [
             'fdWarnSSL',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
     $this->attributesAccess['fdCasActivated']->setManagedAttributes(
-      array(
-        'disable' => array (
-          FALSE => array (
+      [
+        'disable' => [
+          FALSE => [
             'fdCasServerCaCertPath',
             'fdCasHost',
             'fdCasPort',
             'fdCasContext',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
     $this->attributesAccess['fdHttpHeaderAuthActivated']->setManagedAttributes(
-      array(
-        'disable' => array (
-          FALSE => array (
+      [
+        'disable' => [
+          FALSE => [
             'fdHttpHeaderAuthHeaderName',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
     $this->attributesAccess['fdSplitPostalAddress']->setManagedAttributes(
-      array(
-        'disable' => array (
-          FALSE => array (
+      [
+        'disable' => [
+          FALSE => [
             'fdPostalAddressPattern',
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
   }
 
-  function compute_dn()
+  function compute_dn ()
   {
     return $this->dn;
   }
 
-  function check()
+  function check ()
   {
     $messages = parent::check();
     if (($this->fdPasswordDefaultHash == 'sasl') && ($this->fdSaslRealm == '') && ($this->fdSaslExop == '')) {
@@ -586,10 +586,10 @@ class configInLdap extends simplePlugin
     return $messages;
   }
 
-  static function get_themes()
+  static function get_themes ()
   {
     $themesdir  = '../ihtml/themes/';
-    $themes     = array_keys(session::global_get(IconTheme::$session_var));
+    $themes     = array_keys(session::get(IconTheme::$session_var));
     if ($dir = opendir("$themesdir")) {
       while (($file = readdir($dir)) !== FALSE) {
         if (is_dir("$themesdir/$file") && !preg_match("/^\./", $file)) {
diff --git a/plugins/config/class_dashBoardConfig.inc b/plugins/config/class_dashBoardConfig.inc
index 38b094ad8a700b60aaa780d59341c85a0bef0582..f2a7d96dfd21033b499f506deff4ab4e6d128556 100644
--- a/plugins/config/class_dashBoardConfig.inc
+++ b/plugins/config/class_dashBoardConfig.inc
@@ -20,52 +20,52 @@
 
 class dashboardConfig extends simplePlugin
 {
-  var $objectclasses  = array('fdDashboardPluginConf');
+  var $objectclasses  = ['fdDashboardPluginConf'];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'     => _('Dashboard configuration'),
       'plDescription'   => _('FusionDirectory dashboard plugin configuration'),
       'plSelfModify'    => FALSE,
-      'plCategory'      => array('configuration'),
-      'plObjectType'    => array('smallConfig'),
+      'plCategory'      => ['configuration'],
+      'plObjectType'    => ['smallConfig'],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'systems' => array(
+    return [
+      'systems' => [
         'name'  => _('Dashboard name schema'),
-        'attrs' => array(
-          new IntAttribute (
+        'attrs' => [
+          new IntAttribute(
             _('Number of digits'), _('Number of digits to use after prefix'),
             'fdDashboardNumberOfDigit', FALSE,
             1, 20, 3
           ),
-          new SetAttribute (
-            new StringAttribute (
+          new SetAttribute(
+            new StringAttribute(
               _('Prefixes'), _('Prefixes to be used for computer ids'),
               'fdDashboardPrefix', TRUE
             ),
-            array("PC")
+            ["PC"]
           )
-        )
-      ),
-      'users' => array(
+        ]
+      ],
+      'users' => [
         'name'  => _('Dashboard expired users'),
-        'attrs' => array(
-          new IntAttribute (
+        'attrs' => [
+          new IntAttribute(
             _('Number of days'), _('Number of days before expiration needed for an account to show in the dashboard next expired accounts list'),
             'fdDashboardExpiredAccountsDays', FALSE,
             1, FALSE, 15
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 }
 ?>
diff --git a/plugins/config/class_mainPluginsConfig.inc b/plugins/config/class_mainPluginsConfig.inc
index a00e598f02320c7d81ac53a7a4e46eab109fdbb6..e1c1c274963458635bbd538e3f4f60537fa11d48 100644
--- a/plugins/config/class_mainPluginsConfig.inc
+++ b/plugins/config/class_mainPluginsConfig.inc
@@ -20,45 +20,45 @@
 
 class mainPluginsConfig extends simplePlugin
 {
-  var $objectclasses  = array("fusionDirectoryPluginsConf");
+  var $objectclasses  = ["fusionDirectoryPluginsConf"];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       "plShortName"     => _("Plugins configuration"),
       "plDescription"   => _("FusionDirectory plugins configuration"),
       "plSelfModify"    => FALSE,
-      "plCategory"      => array("configuration"),
-      "plObjectType"    => array("smallConfig"),
+      "plCategory"      => ["configuration"],
+      "plObjectType"    => ["smallConfig"],
 
       "plProvidedAcls"  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'ogroups' => array(
+    return [
+      'ogroups' => [
         'name'  => _('Object groups'),
-        'attrs' => array(
-          new StringAttribute (
+        'attrs' => [
+          new StringAttribute(
             _('Groups RDN'), _('Branch in which object groups will be stored'),
             'fdOGroupRDN', TRUE,
             'ou=groups'
           ),
-        )
-      ),
-      'sasl' => array(
+        ]
+      ],
+      'sasl' => [
         'name'  => _('SASL'),
-        'attrs' => array(
-          new BooleanAttribute (
+        'attrs' => [
+          new BooleanAttribute(
             _('Force to ask for password'), _('Useful if you add a hook using password value when SASL user passwords are edited'),
             'fdForceSaslPasswordAsk', TRUE,
             FALSE
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 }
 ?>
diff --git a/plugins/config/class_pluginsConfigInLdap.inc b/plugins/config/class_pluginsConfigInLdap.inc
index 676fa318db3676756b138dbc2df149b44d201cce..daea9f31334b63dd811c201cd97c04ec48d9b626 100644
--- a/plugins/config/class_pluginsConfigInLdap.inc
+++ b/plugins/config/class_pluginsConfigInLdap.inc
@@ -22,16 +22,16 @@ class pluginsConfigInLdap extends multiPlugin
 {
   var $tabClass = 'SMALLCONFIGTABS';
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('Plugins'),
       'plDescription' => _('Configuration for plugins'),
       'plPriority'    => 20,
-      'plObjectType'  => array('configuration'),
+      'plObjectType'  => ['configuration'],
       'plSubTabs'     => 'SMALLCONFIGTABS',
 
-      'plProvidedAcls'  => array()
-    );
+      'plProvidedAcls'  => []
+    ];
   }
 }
diff --git a/plugins/config/class_recoveryConfig.inc b/plugins/config/class_recoveryConfig.inc
index ff252c0de6760fd665b498f05d873c4b4a405933..27ef1ed18e0d1167e14f748ac00780777a312fd0 100644
--- a/plugins/config/class_recoveryConfig.inc
+++ b/plugins/config/class_recoveryConfig.inc
@@ -20,106 +20,106 @@
 
 class recoveryConfig extends simplePlugin
 {
-  var $objectclasses  = array('fdPasswordRecoveryConf');
+  var $objectclasses  = ['fdPasswordRecoveryConf'];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'     => _('Password recovery'),
       'plDescription'   => _('Settings for the password recovery feature'),
-      'plObjectType'    => array('configuration'),
+      'plObjectType'    => ['configuration'],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array (
-      'settings' => array (
+    return  [
+      'settings' => [
         'name'      => _('Password recovery settings'),
-        'class'     => array ('alone'),
+        'class'     => ['alone'],
         'template'  => get_template_path('simpleplugin_section_alone.tpl'),
-        'attrs'     => array (
-          new BooleanAttribute (
+        'attrs'     => [
+          new BooleanAttribute(
             _('Activate password recovery'),
             _('Whether to activate or not password recovery feature'),
             'fdPasswordRecoveryActivated',
             FALSE
           ),
-          new MailAttribute (
+          new MailAttribute(
             _('Sender email address'),
             _('Email address from which mails will be sent'),
             'fdPasswordRecoveryEmail',
             TRUE,
             'to.be@chang.ed'
           ),
-          new IntAttribute (
+          new IntAttribute(
             _('Link validity (minutes)'),
             _('Number of minutes before a recovery link expires'),
             'fdPasswordRecoveryValidity',
             TRUE,
             0, FALSE, 10
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Salt for tokens'),
             _('Just a security measure, you can put anything in there, even random characters'),
             'fdPasswordRecoverySalt',
             TRUE,
             "SomethingSecretAndVeryLong"
           ),
-          new BooleanAttribute (
+          new BooleanAttribute(
             _('Allow the use of alternate addresses'),
             _('Users will also be able to enter one of theirs alternate addresses to recover their password'),
             'fdPasswordRecoveryUseAlternate',
             FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Login attribute'), _('Usually uid, but you can use something else for instance in case of SSO'),
             'fdPasswordRecoveryLoginAttribute', TRUE,
             'uid'
           ),
-        )
-      ),
-      'first_email' => array (
+        ]
+      ],
+      'first_email' => [
         'name' => _('First email'),
-        'attrs' => array (
-          new StringAttribute (
+        'attrs' => [
+          new StringAttribute(
             _('Subject'),
             _('Subject of the first email'),
             'fdPasswordRecoveryMailSubject',
             TRUE,
             _("[FusionDirectory] Password recovery link")
           ),
-          new TextAreaAttribute (
+          new TextAreaAttribute(
             _('Body (first %s is login, second is link)'),
             _('Body of the first email, sent when the user ask for a new password. Use %s for the login and the recovery link.'),
             'fdPasswordRecoveryMailBody',
             TRUE,
             _("Hello,\n\nHere is your information: \n - Login : %s\n - Link : %s\n\nThis link is only valid for 10 minutes.")
           )
-        )
-      ),
-      'second_email' => array (
+        ]
+      ],
+      'second_email' => [
         'name' => _('Second email'),
-        'attrs' => array (
-          new StringAttribute (
+        'attrs' => [
+          new StringAttribute(
             _('Subject'),
             _('Subject of the second email'),
             'fdPasswordRecoveryMail2Subject',
             TRUE,
             _("[FusionDirectory] Password recovery successful")
           ),
-          new TextAreaAttribute (
+          new TextAreaAttribute(
             _('Body (%s is login)'),
             _('Body of the second email, sent to confirm the password has been changed. Use %s for the user login.'),
             'fdPasswordRecoveryMail2Body',
             TRUE,
            _("Hello,\n\nYour password has been changed.\nYour login is still %s.")
           )
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -128,7 +128,7 @@ class recoveryConfig extends simplePlugin
     // Check if token branch is here
     $ldap = $config->get_ldap_link();
     $tokenBranch = get_ou('recoveryTokenRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
-    $ldap->cat($tokenBranch, array('dn'));
+    $ldap->cat($tokenBranch, ['dn']);
     if (!$ldap->count()) {
       $ldap->cd($config->current['BASE']);
       $ldap->create_missing_trees($tokenBranch);
@@ -145,15 +145,15 @@ class recoveryConfig extends simplePlugin
     parent::__construct($dn, $object, $parent, $mainTab);
 
     $this->attributesAccess['fdPasswordRecoveryActivated']->setManagedAttributes(
-      array(
-        'disable' => array(
-          FALSE => array(
+      [
+        'disable' => [
+          FALSE => [
             'fdPasswordRecoveryEmail','fdPasswordRecoveryValidity','fdPasswordRecoverySalt',
             'fdPasswordRecoveryMailSubject','fdPasswordRecoveryMailBody',
             'fdPasswordRecoveryMail2Subject','fdPasswordRecoveryMail2Body'
-          )
-        )
-      )
+          ]
+        ]
+      ]
     );
   }
 }
diff --git a/plugins/config/tabs_configInLdap.inc b/plugins/config/tabs_configInLdap.inc
index 6c2f009633bfba6a1727369257e12f62e31a0269..0df3024dc8f2eacd739dbf01b09d7cfce16372a8 100644
--- a/plugins/config/tabs_configInLdap.inc
+++ b/plugins/config/tabs_configInLdap.inc
@@ -28,7 +28,7 @@ class tabs_configInLdap extends simpleTabs
     /* check_and_reload */
     $config->check_and_reload(TRUE);
     /* reload plist as well as some plInfo might use $config or get_ou */
-    session::global_un_set('plist');
+    session::un_set('plist');
     load_plist();
     session::un_set('passwordMethod::get_available_methods');
 
diff --git a/plugins/generic/references/class_reference.inc b/plugins/generic/references/class_reference.inc
index c67a5a8f22f5057ffef0fabee793b74f40f91a1e..b398f82cf2788a7eeafd6785794ad131055ebac8 100644
--- a/plugins/generic/references/class_reference.inc
+++ b/plugins/generic/references/class_reference.inc
@@ -20,35 +20,35 @@
 
 class reference extends simplePlugin
 {
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('References'),
       'plDescription' => _('References'),
-      'plCategory'    => array('acl'),
-      'plObjectType'  => array(
-        'special' => array(
+      'plCategory'    => ['acl'],
+      'plObjectType'  => [
+        'special' => [
           'name' => 'special'
-        )
-      ),
+        ]
+      ],
       'plPriority'    => 10,
 
-      'plProvidedAcls'  => array()
-    );
+      'plProvidedAcls'  => []
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'main' => array(
+    return [
+      'main' => [
         'name'      => _('References'),
-        'class'     => array('fullwidth'),
-        'attrs'     => array(
+        'class'     => ['fullwidth'],
+        'attrs'     => [
           new FakeAttribute('refs')
-        ),
+        ],
         'template'  => get_template_path('contents.tpl', TRUE, dirname(__FILE__))
-      ),
-    );
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -58,7 +58,7 @@ class reference extends simplePlugin
     $this->refs = NULL;
   }
 
-  function execute()
+  function execute ()
   {
     if ($this->refs === NULL) {
       $this->fillRefs();
@@ -68,7 +68,7 @@ class reference extends simplePlugin
     return parent::execute();
   }
 
-  function fillRefs()
+  function fillRefs ()
   {
     if (!isset($this->parent)) {
       $this->refs = NULL;
@@ -77,18 +77,18 @@ class reference extends simplePlugin
     $this->refs = $this->browseForeignKeys('references');
   }
 
-  function check()
+  function check ()
   {
   }
 
-  function save()
+  function save ()
   {
-    return array();
+    return [];
   }
 
-  function remove($fulldelete = FALSE)
+  function remove ($fulldelete = FALSE)
   {
-    return array();
+    return [];
   }
 }
 
diff --git a/plugins/personal/generic/class_user.inc b/plugins/personal/generic/class_user.inc
index 7ce7c6681b1105be1eaeb1326667e6f8219bd5dc..c35aafa2a20144cfc19477fe85c314a330ebf77c 100644
--- a/plugins/personal/generic/class_user.inc
+++ b/plugins/personal/generic/class_user.inc
@@ -29,8 +29,8 @@ class UserPasswordAttribute extends CompositeAttribute
     $temp = passwordMethod::get_available_methods();
 
     /* Create password methods array */
-    $pwd_methods = array();
-    $this->needPassword = array();
+    $pwd_methods = [];
+    $this->needPassword = [];
     foreach ($temp['name'] as $id => $name) {
       $this->needPassword[$name] = $temp[$id]['object']->need_password();
       $pwd_methods[$name] = $name;
@@ -39,9 +39,9 @@ class UserPasswordAttribute extends CompositeAttribute
       }
     }
 
-    parent::__construct (
+    parent::__construct(
       $description, $ldapName,
-      array(
+      [
         new SelectAttribute(
           _('Password method'), _('Password hash method to use'),
           $ldapName.'_pwstorage', TRUE,
@@ -62,13 +62,13 @@ class UserPasswordAttribute extends CompositeAttribute
           $ldapName.'_locked', FALSE,
           FALSE
         )
-      ),
+      ],
       '', '', $acl, $label
     );
     $this->attributes[0]->setSubmitForm(TRUE);
   }
 
-  public function setParent(&$plugin)
+  public function setParent (&$plugin)
   {
     global $config;
     parent::setParent($plugin);
@@ -84,7 +84,7 @@ class UserPasswordAttribute extends CompositeAttribute
   }
 
   /* We need to handle method select disabling manually */
-  function renderAttribute(&$attributes, $readOnly)
+  function renderAttribute (&$attributes, $readOnly)
   {
     global $config;
     if ($this->visible) {
@@ -143,7 +143,7 @@ class UserPasswordAttribute extends CompositeAttribute
     $this->checkIfMethodNeedsPassword();
   }
 
-  function checkIfMethodNeedsPassword()
+  function checkIfMethodNeedsPassword ()
   {
     $method = $this->attributes[0]->getValue();
     if ($method != $this->previousMethod) {
@@ -160,7 +160,7 @@ class UserPasswordAttribute extends CompositeAttribute
     $this->previousMethod = $method;
   }
 
-  function readValues($value)
+  function readValues ($value)
   {
     global $config;
     $pw_storage = $config->get_cfg_value('passwordDefaultHash', 'ssha');
@@ -169,7 +169,7 @@ class UserPasswordAttribute extends CompositeAttribute
     if ($this->plugin->is_template) {
       list($value, $password) = explode('|', $value, 2);
     }
-    if (preg_match ('/^{[^}]+}/', $value)) {
+    if (preg_match('/^{[^}]+}/', $value)) {
       $tmp = passwordMethod::get_method($value);
       if (is_object($tmp)) {
         $pw_storage = $tmp->get_hash();
@@ -183,10 +183,10 @@ class UserPasswordAttribute extends CompositeAttribute
         $pw_storage = 'clear';
       }
     }
-    return array($pw_storage, $password, $password, $value, $locked);
+    return [$pw_storage, $password, $password, $value, $locked];
   }
 
-  function writeValues($values)
+  function writeValues ($values)
   {
     if ($this->needPassword[$values[0]] && ($values[1] == '')) {
       if ($this->plugin->is_template) {
@@ -209,7 +209,7 @@ class UserPasswordAttribute extends CompositeAttribute
     }
   }
 
-  function check()
+  function check ()
   {
     $method = $this->attributes[0]->getValue();
     if (!$this->needPassword[$method]) {
@@ -225,17 +225,17 @@ class UserPasswordAttribute extends CompositeAttribute
     }
   }
 
-  function getMethod()
+  function getMethod ()
   {
     return $this->attributes[0]->getValue();
   }
 
-  function getClear()
+  function getClear ()
   {
     return $this->attributes[1]->getValue();
   }
 
-  function isLocked()
+  function isLocked ()
   {
     return $this->attributes[4]->getValue();
   }
@@ -246,8 +246,8 @@ class PostalAddressAttribute extends TextAreaAttribute
   function inputValue ($ldapValue)
   {
     return str_replace(
-      array('$',  '\24','\5C'),
-      array("\n", '$',  '\\'),
+      ['$',  '\24','\5C'],
+      ["\n", '$',  '\\'],
       $ldapValue
     );
   }
@@ -255,11 +255,11 @@ class PostalAddressAttribute extends TextAreaAttribute
   function computeLdapValue ()
   {
     return str_replace(
-      array("\r\n", "\n", "\r"),
+      ["\r\n", "\n", "\r"],
       '$',
       str_replace(
-        array('\\', '$'),
-        array('\5C','\24'),
+        ['\\', '$'],
+        ['\5C','\24'],
         $this->getValue()
       )
     );
@@ -268,19 +268,19 @@ class PostalAddressAttribute extends TextAreaAttribute
 
 class user extends simplePlugin
 {
-  var $objectclasses  = array('inetOrgPerson','organizationalPerson','person');
+  var $objectclasses  = ['inetOrgPerson','organizationalPerson','person'];
 
   private $was_locked;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'   => _('User'),
       'plDescription' => _('User account information'),
       'plIcon'        => 'geticon.php?context=applications&icon=user-info&size=48',
       'plSmallIcon'   => 'geticon.php?context=applications&icon=user-info&size=16',
       'plSelfModify'  => TRUE,
-      'plObjectType'  => array('user' => array(
+      'plObjectType'  => ['user' => [
         'name'        => _('User'),
         'description' => _('User account'),
         'filter'      => '(objectClass=inetOrgPerson)',
@@ -288,16 +288,16 @@ class user extends simplePlugin
         'nameAttr'    => 'cn',
         'icon'        => 'geticon.php?context=types&icon=user&size=16',
         'ou'          => get_ou('userRDN'),
-      )),
-      'plForeignKeys'  => array(
-        'manager' => array('user','dn','manager=%oldvalue%','*')
-      ),
+      ]],
+      'plForeignKeys'  => [
+        'manager' => ['user','dn','manager=%oldvalue%','*']
+      ],
 
       'plProvidedAcls' => array_merge(
         parent::generatePlProvidedAcls(static::getAttributesInfo()),
-        array('userLock' => _('User lock status'))
+        ['userLock' => _('User lock status')]
       )
-    );
+    ];
   }
 
   // The main function : information about attributes
@@ -306,90 +306,90 @@ class user extends simplePlugin
     global $config;
     $languages = Language::getList(TRUE);
     asort($languages);
-    $languages = array_merge(array('' => ''), $languages);
-    $attributesInfo = array(
-      'perso' => array(
+    $languages = array_merge(['' => ''], $languages);
+    $attributesInfo = [
+      'perso' => [
         'name'  => _('Personal information'),
         'icon'  => 'geticon.php?context=types&icon=user&size=16',
-        'attrs' => array(
+        'attrs' => [
           new HiddenAttribute('cn'),
-          new StringAttribute (
+          new StringAttribute(
             _('Last name'), _('Last name of this user'),
             'sn', TRUE,
             '', '', '/[^,+"?()=<>;\\\\]/'
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('First name'), _('First name of this user'),
             'givenName', TRUE,
             '', '', '/[^,+"?()=<>;\\\\]/'
           ),
-          new TextAreaAttribute (
+          new TextAreaAttribute(
             _('Description'), _('Short description of the user'),
             'description', FALSE
           ),
-          new ImageAttribute (
+          new ImageAttribute(
             _('Picture'), _('The avatar for this user'),
             'jpegPhoto', FALSE,
             150, 200, 'jpeg'
           ),
-        )
-      ),
-      'contact' => array(
+        ]
+      ],
+      'contact' => [
         'name'  => _('Organizational contact information'),
         'icon'  => 'geticon.php?context=types&icon=contact&size=16',
-        'attrs' => array(
-          new StringAttribute (
+        'attrs' => [
+          new StringAttribute(
             _('Location'), _('Location'),
             'l', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('State'), _('State'),
             'st', FALSE
           ),
-          new PostalAddressAttribute (
+          new PostalAddressAttribute(
             _('Address'), _('Business postal address'),
             'postalAddress', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Room No.'), _('Room number'),
             'roomNumber', FALSE
           ),
-          new PhoneNumberButtonAttribute (
+          new PhoneNumberButtonAttribute(
             _('Phone'), _('Business phone number'),
             'telephoneNumber', FALSE,
             '',
             'phone'
           ),
-          new PhoneNumberButtonAttribute (
+          new PhoneNumberButtonAttribute(
             _('Mobile'), _('Business mobile number'),
             'mobile', FALSE,
             '',
             'mobile'
           ),
-          new PhoneNumberAttribute (
+          new PhoneNumberAttribute(
             _('Pager'), _('Business pager number'),
             'pager', FALSE
           ),
-          new PhoneNumberAttribute (
+          new PhoneNumberAttribute(
             _('Fax'), _('Business fax number'),
             'facsimileTelephoneNumber', FALSE
           ),
-          new URLAttribute (
+          new URLAttribute(
             _('Homepage'), _('Personal homepage'),
             'labeledURI', FALSE
           ),
-        )
-      ),
-      'account' => array(
+        ]
+      ],
+      'account' => [
         'name'  => _('Account information'),
         'icon'  => 'geticon.php?context=applications&icon=ldap&size=16',
-        'attrs' => array(
-          new BaseSelectorAttribute (get_ou("userRDN")),
-          new UidAttribute (
+        'attrs' => [
+          new BaseSelectorAttribute(get_ou("userRDN")),
+          new UidAttribute(
             _('Login'), _('Login of this user'),
             'uid', TRUE
           ),
-          new SelectAttribute (
+          new SelectAttribute(
             _('Preferred language'), _('Preferred language'),
             'preferredLanguage', FALSE,
             array_keys($languages), '', array_values($languages)
@@ -398,53 +398,53 @@ class user extends simplePlugin
             _('Password'), _('Password of the user'),
             'userPassword', FALSE
           ),
-        )
-      ),
-      'homecontact' => array(
+        ]
+      ],
+      'homecontact' => [
         'name'  => _('Personal contact information'),
         'icon'  => 'geticon.php?context=types&icon=contact&size=16',
-        'attrs' => array(
-          new StringAttribute (
+        'attrs' => [
+          new StringAttribute(
             _('Display name'), _('Name this user should appear as. Used by Exchange.'),
             'displayName', FALSE
           ),
-          new PostalAddressAttribute (
+          new PostalAddressAttribute(
             _('Home address'), _('Home postal address'),
             'homePostalAddress', FALSE
           ),
-          new PhoneNumberAttribute (
+          new PhoneNumberAttribute(
             _('Private phone'), _('Home phone number'),
             'homePhone', FALSE
           ),
-        )
-      ),
-      'organization' => array(
+        ]
+      ],
+      'organization' => [
         'name'  => _('Organizational information'),
         'icon'  => 'geticon.php?context=places&icon=folder&size=16',
-        'attrs' => array(
-          new SetAttribute (
-            new StringAttribute (
+        'attrs' => [
+          new SetAttribute(
+            new StringAttribute(
               _('Title'), _('Title of a person in their organizational context. Each title is one value of this multi-valued attribute'),
               'title', FALSE
             )
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Organization'), _('Organization'),
             'o', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Unit'), _('Organizational unit this user belongs to'),
             'ou', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Department No.'), _('Department number'),
             'departmentNumber', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Employee No.'), _('Employee number'),
             'employeeNumber', FALSE
           ),
-          new StringAttribute (
+          new StringAttribute(
             _('Employee type'), _('Employee type'),
             'employeeType', FALSE
           ),
@@ -452,26 +452,26 @@ class user extends simplePlugin
             _('Manager'), _('Manager'),
             'manager', FALSE
           ),
-        )
-      ),
-    );
+        ]
+      ],
+    ];
     if ($config->get_cfg_value('SplitPostalAddress') == 'TRUE') {
       $attributesInfo['contact']['attrs'][2]->setVisible(FALSE);
-      array_splice($attributesInfo['contact']['attrs'], 3, 0, array(
-        new StringAttribute (
+      array_splice($attributesInfo['contact']['attrs'], 3, 0, [
+        new StringAttribute(
           _('Street'), _('Street part of the address'),
           'street', FALSE
         ),
-        new StringAttribute (
+        new StringAttribute(
           _('Post office box'), _('Post office box'),
           'postOfficeBox', FALSE
         ),
-        new IntAttribute (
+        new IntAttribute(
           _('Postal code'), _('Postal code'),
           'postalCode', FALSE,
           0, FALSE
         ),
-      ));
+      ]);
     }
     return $attributesInfo;
   }
@@ -485,19 +485,19 @@ class user extends simplePlugin
     $this->attributesAccess['uid']->setDisabled($this->initially_was_account && !$this->is_template);
 
     $filename = './plugins/users/images/default.jpg';
-    $fd       = fopen ($filename, 'rb');
-    $this->attributesAccess['jpegPhoto']->setPlaceholder(fread ($fd, filesize($filename)));
+    $fd       = fopen($filename, 'rb');
+    $this->attributesAccess['jpegPhoto']->setPlaceholder(fread($fd, filesize($filename)));
 
     $this->was_locked = $this->attributesAccess['userPassword']->isLocked();
   }
 
-  function is_this_account($attrs)
+  function is_this_account ($attrs)
   {
     /* Only inetOrgPerson is needed, it has the two others as SUP classes */
     return (isset($attrs['objectClass']) && in_array_ics('inetOrgPerson', $attrs['objectClass']));
   }
 
-  function resetCopyInfos()
+  function resetCopyInfos ()
   {
     parent::resetCopyInfos();
     $this->attributesAccess['uid']->setDisabled($this->initially_was_account && !$this->is_template);
@@ -513,7 +513,7 @@ class user extends simplePlugin
   private function applyPattern ($pattern)
   {
     $fields   = templateHandling::listFields($pattern);
-    $attrs    = array();
+    $attrs    = [];
     foreach ($fields as $field) {
       if (in_array($field, $this->attributes)) {
         $attrs[$field] = $this->$field;
@@ -534,7 +534,7 @@ class user extends simplePlugin
     return templateHandling::parseString($pattern, $attrs);
   }
 
-  function compute_dn()
+  function compute_dn ()
   {
     global $config;
     if ($this->is_template) {
@@ -548,14 +548,14 @@ class user extends simplePlugin
     return $this->create_unique_dn($attribute, get_ou('userRDN').$this->base);
   }
 
-  function execute()
+  function execute ()
   {
     $smarty = get_smarty();
     $smarty->append('css_files', 'plugins/users/style/user_tab.css');
     return parent::execute();
   }
 
-  protected function shouldSave()
+  protected function shouldSave ()
   {
     if ($this->attributesAccess['userPassword']->getClear() != '') {
       /* There may be hooks using this even if LDAP object is not modified */
@@ -577,7 +577,7 @@ class user extends simplePlugin
     return parent::prepare_save();
   }
 
-  function ldap_save()
+  function ldap_save ()
   {
     $errors = parent::ldap_save();
 
@@ -594,7 +594,7 @@ class user extends simplePlugin
     return $errors;
   }
 
-  function post_save()
+  function post_save ()
   {
     global $ui;
 
@@ -608,7 +608,7 @@ class user extends simplePlugin
     return parent::post_save();
   }
 
-  function adapt_from_template($attrs, $skip = array())
+  function adapt_from_template ($attrs, $skip = [])
   {
     if ($this->uid != '') {
       $skip[] = 'uid';
@@ -616,23 +616,23 @@ class user extends simplePlugin
     parent::adapt_from_template($attrs, $skip);
     if (isset($this->attrs['userPassword']) && !in_array('userPassword', $skip)) {
       list($hash,$password) = explode('|', $this->attrs['userPassword'][0], 2);
-      if (preg_match ('/^{[^}]+}/', $hash)) {
+      if (preg_match('/^{[^}]+}/', $hash)) {
         $tmp = passwordMethod::get_method($hash);
         if (is_object($tmp)) {
           $hash = $tmp->generate_hash($password);
         }
       }
-      $this->userPassword = array(
+      $this->userPassword = [
         '',
         $password,
         $password,
         $hash,
         $this->attributesAccess['userPassword']->isLocked()
-      );
+      ];
     }
   }
 
-  function callHook($cmd, array $addAttrs = array(), &$returnOutput = array(), &$returnCode = NULL)
+  function callHook ($cmd, array $addAttrs = [], &$returnOutput = [], &$returnCode = NULL)
   {
     $addAttrs['passwordMethod'] = $this->attributesAccess['userPassword']->getMethod();
     $addAttrs['userLocked']     = $this->attributesAccess['userPassword']->isLocked();
@@ -656,7 +656,7 @@ class user extends simplePlugin
     $length       = $config->get_cfg_value('passwordMinLength', 0);
 
     $ldap = $config->get_ldap_link();
-    $ldap->cat($user, array('pwdPolicySubentry', 'pwdHistory', 'pwdChangedTime', 'userPassword'));
+    $ldap->cat($user, ['pwdPolicySubentry', 'pwdHistory', 'pwdChangedTime', 'userPassword']);
     $attrs = $ldap->fetch();
     $ppolicydn = '';
     if (isset($attrs['pwdPolicySubentry'][0])) {
@@ -668,7 +668,7 @@ class user extends simplePlugin
       }
     }
     if (!empty($ppolicydn)) {
-      $ldap->cat($ppolicydn, array('pwdAllowUserChange', 'pwdMinLength', 'pwdMinAge', 'pwdSafeModify'));
+      $ldap->cat($ppolicydn, ['pwdAllowUserChange', 'pwdMinLength', 'pwdMinAge', 'pwdSafeModify']);
       $policy = $ldap->fetch();
       if (!$policy) {
         return sprintf(_('Ppolicy "%s" could not be found in the LDAP!'), $ppolicydn);
diff --git a/plugins/personal/roles/class_userRoles.inc b/plugins/personal/roles/class_userRoles.inc
index 95be4ba933063e18c98faf218c05598e5c5632cd..db3078c9ab8cb7b4cf9462c84cf50ccfa75faef6 100644
--- a/plugins/personal/roles/class_userRoles.inc
+++ b/plugins/personal/roles/class_userRoles.inc
@@ -20,54 +20,54 @@
 
 class userRoles extends simplePlugin
 {
-  var $objectclasses = array();
+  var $objectclasses = [];
 
-  protected $savedGroupsMembership  = array();
-  protected $savedRolesMembership   = array();
-  protected $templateGroups         = array();
-  protected $templateRoles          = array();
+  protected $savedGroupsMembership  = [];
+  protected $savedRolesMembership   = [];
+  protected $templateGroups         = [];
+  protected $templateRoles          = [];
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array(
+    return [
       'plShortName'     => _('Groups and roles'),
       'plDescription'   => _('Edit user\'s groups and roles'),
       'plIcon'          => 'geticon.php?context=types&icon=role&size=48',
       'plSmallIcon'     => 'geticon.php?context=types&icon=role&size=16',
       'plSelfModify'    => FALSE,
-      'plObjectType'    => array('user'),
+      'plObjectType'    => ['user'],
       'plPriority'      => 5,
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    );
+    ];
   }
 
   static function getAttributesInfo ()
   {
-    return array(
-      'groups' => array(
+    return [
+      'groups' => [
         'name'  => _('Groups membership'),
-        'attrs' => array(
+        'attrs' => [
           new SetAttribute(
             new SelectAttribute(
               '', _('Groups membership'),
               'groupsMembership', FALSE
             )
           )
-        )
-      ),
-      'roles' => array(
+        ]
+      ],
+      'roles' => [
         'name'  => _('Roles membership'),
-        'attrs' => array(
+        'attrs' => [
           new SetAttribute(
             new SelectAttribute(
               '', _('Roles membership'),
               'rolesMembership', FALSE
             )
           )
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
@@ -76,8 +76,8 @@ class userRoles extends simplePlugin
     $this->ignore_account = FALSE;
 
     /* Groups handling */
-    $groups      = array();
-    $groupsattrs = objects::ls('ogroup', array('cn' => 1,  'description' => 1), NULL, '', TRUE);
+    $groups      = [];
+    $groupsattrs = objects::ls('ogroup', ['cn' => 1,  'description' => 1], NULL, '', TRUE);
     foreach ($groupsattrs as $dn => $groupattr) {
       $groupDisplay = $groupattr['cn'];
       if (isset($groupattr['description'])) {
@@ -94,7 +94,7 @@ class userRoles extends simplePlugin
         unset($this->attrs['userGroups']['count']);
         $myGroups = array_combine($this->attrs['userGroups'], $this->attrs['userGroups']);
       } else {
-        $myGroups = array();
+        $myGroups = [];
       }
     } else {
       if (($this->dn != '') && ($this->dn != 'new')) {
@@ -103,7 +103,7 @@ class userRoles extends simplePlugin
           '(member='.$this->dn.')'
         );
       } else {
-        $myGroups = array();
+        $myGroups = [];
       }
       $this->savedGroupsMembership = array_keys($myGroups);
     }
@@ -113,8 +113,8 @@ class userRoles extends simplePlugin
     $this->attributesAccess['groupsMembership']->setValue(array_keys($myGroups));
 
     /* Roles handling */
-    $roles        = array();
-    $rolesattrs  = objects::ls('role', array('cn' => 1,  'description' => 1), NULL, '', TRUE);
+    $roles        = [];
+    $rolesattrs  = objects::ls('role', ['cn' => 1,  'description' => 1], NULL, '', TRUE);
     foreach ($rolesattrs as $dn => $roleattr) {
       $roleDisplay = $roleattr['cn'];
       if (isset($roleattr['description'])) {
@@ -131,7 +131,7 @@ class userRoles extends simplePlugin
         unset($this->attrs['userRoles']['count']);
         $myRoles = array_combine($this->attrs['userRoles'], $this->attrs['userRoles']);
       } else {
-        $myRoles = array();
+        $myRoles = [];
       }
     } else {
       if (($this->dn != '') && ($this->dn != 'new')) {
@@ -140,7 +140,7 @@ class userRoles extends simplePlugin
           '(roleOccupant='.$this->dn.')'
         );
       } else {
-        $myRoles = array();
+        $myRoles = [];
       }
       $this->savedRolesMembership = array_keys($myRoles);
     }
@@ -153,7 +153,7 @@ class userRoles extends simplePlugin
     $this->initially_was_account = $this->is_account;
   }
 
-  function is_this_account($attrs)
+  function is_this_account ($attrs)
   {
     if (!isset($attrs['dn'])) {
       if (isset($attrs['userGroups'])) { /* Template groups field */
@@ -167,7 +167,7 @@ class userRoles extends simplePlugin
     return FALSE;
   }
 
-  protected function ldap_remove()
+  protected function ldap_remove ()
   {
     if ($this->is_template) {
       return parent::ldap_remove();
@@ -191,16 +191,16 @@ class userRoles extends simplePlugin
         }
       }
     }
-    return array();
+    return [];
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
     $this->is_account = ((count($this->rolesMembership) > 0) || (count($this->groupsMembership) > 0));
   }
 
-  protected function shouldSave()
+  protected function shouldSave ()
   {
     if (parent::shouldSave()) {
       return TRUE;
@@ -214,7 +214,7 @@ class userRoles extends simplePlugin
     return FALSE;
   }
 
-  function prepare_save()
+  function prepare_save ()
   {
     $errors = parent::prepare_save();
     if ($this->is_template) {
@@ -224,16 +224,16 @@ class userRoles extends simplePlugin
     return $errors;
   }
 
-  function prepare_remove()
+  function prepare_remove ()
   {
     parent::prepare_remove();
     if ($this->is_template) {
-      $this->attrs['userGroups']  = array();
-      $this->attrs['userRoles']   = array();
+      $this->attrs['userGroups']  = [];
+      $this->attrs['userRoles']   = [];
     }
   }
 
-  function ldap_save()
+  function ldap_save ()
   {
     $errors = parent::ldap_save();
 
@@ -243,12 +243,12 @@ class userRoles extends simplePlugin
 
     if (!$this->is_template) {
       /* We need to give an array which looks like an ldap fetch and match user filter */
-      $fake_attrs = array(
-        'objectClass' => array('inetOrgPerson','organizationalPerson','person'),
-        'cn'          => array($this->dn),
-        'uid'         => array($this->dn),
+      $fake_attrs = [
+        'objectClass' => ['inetOrgPerson','organizationalPerson','person'],
+        'cn'          => [$this->dn],
+        'uid'         => [$this->dn],
         'dn'          => $this->dn
-      );
+      ];
 
       /* Take care about groupsMembership values: add to groups */
       $groupsMembership = $this->attributesAccess['groupsMembership']->getValue();
@@ -344,7 +344,7 @@ class userRoles extends simplePlugin
     return $errors;
   }
 
-  function adapt_from_template($attrs, $skip = array())
+  function adapt_from_template ($attrs, $skip = [])
   {
     parent::adapt_from_template($attrs, $skip);
 
@@ -358,7 +358,7 @@ class userRoles extends simplePlugin
       $this->attributesAccess['groupsMembership']->setValue(array_keys($myGroups));
       $this->templateGroups = array_keys($myGroups);
     } else {
-      $this->templateGroups = array();
+      $this->templateGroups = [];
     }
 
     $this->savedRolesMembership = $this->rolesMembership;
@@ -371,7 +371,7 @@ class userRoles extends simplePlugin
       $this->attributesAccess['rolesMembership']->setValue(array_keys($myRoles));
       $this->templateRoles = array_keys($myRoles);
     } else {
-      $this->templateRoles = array();
+      $this->templateRoles = [];
     }
 
     $this->is_account = ((count($this->rolesMembership) > 0) || (count($this->groupsMembership) > 0));
diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index fa5ce22466bf027cedd7456e5e2c38d8419e66a9..a1b88112724b4074f3beab1440f4b3ab25633a34 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -23,7 +23,7 @@ require_once("class_setupStep.inc");
 
 class fake_userinfo extends userinfo
 {
-  function __construct()
+  function __construct ()
   {
     $this->cn   = 'fake_cn';
     $this->dn   = 'fake_dn';
@@ -50,12 +50,12 @@ class setup
   var $i_previous       = 0;
 
   var $i_config         = 4;
-  var $o_steps          = array();
-  var $captured_values  = array();
+  var $o_steps          = [];
+  var $captured_values  = [];
 
-  function __construct()
+  function __construct ()
   {
-    $this->o_steps = array(
+    $this->o_steps = [
       new setupStepWelcome($this),
       new setupStepLanguage($this),
       new setupStepChecks($this),
@@ -63,7 +63,7 @@ class setup
       new setupStepConfig_before_init($this),
       new setupStepMigrate($this),
       new setupStepFinish($this),
-    );
+    ];
 
     $this->i_steps = count($this->o_steps);
 
@@ -75,7 +75,7 @@ class setup
     }
   }
 
-  function execute()
+  function execute ()
   {
     /* Display phpinfo() dialog when $_GET['info'] is set,
      *  but only do this, if user is allowed to use the setup.
@@ -96,7 +96,7 @@ class setup
 
 
   /* Save posted attributes  */
-  function save_object()
+  function save_object ()
   {
     /* Call save_object for current setup step */
     $this->o_steps[$this->i_current]->save_object();
@@ -167,7 +167,7 @@ class setup
   }
 
 
-  function disable_steps_from($start)
+  function disable_steps_from ($start)
   {
     for ($i = $start; $i < $this->i_steps; $i++) {
       $this->o_steps[$i]->set_enabled(FALSE);
@@ -177,7 +177,7 @@ class setup
 
 
   /* Create navigation menu */
-  function get_navigation_html()
+  function get_navigation_html ()
   {
     $str = '<ul class="menu"><li><a>FusionDirectory Setup</a><ul>';
     foreach ($this->o_steps as $key => $step) {
@@ -219,7 +219,7 @@ class setup
   }
 
 
-  function get_bottom_html()
+  function get_bottom_html ()
   {
     /* Skip adding forward/backward button,
      *  if the currently opened step is a sub dialog
@@ -241,20 +241,20 @@ class setup
   }
 
   /* Create header entry */
-  function get_header_text()
+  function get_header_text ()
   {
     return $this->o_steps[$this->i_current]->get_title();
   }
 
   /* Create header entry */
-  function get_header_image()
+  function get_header_image ()
   {
     return $this->o_steps[$this->i_current]->header_image;
   }
 
 
   /* Check if the given step id is valid and selectable */
-  function selectable_step($id)
+  function selectable_step ($id)
   {
     if (isset($this->o_steps[$id]) && $this->o_steps[$id]->is_enabled()) {
       return TRUE;
@@ -262,7 +262,7 @@ class setup
     return FALSE;
   }
 
-  function step_name_to_id($name)
+  function step_name_to_id ($name)
   {
     foreach ($this->o_steps as $id => $class) {
       if (get_class($class) == $name) {
@@ -273,7 +273,7 @@ class setup
   }
 
   /* Called when LDAP is configured */
-  function read_ldap_config()
+  function read_ldap_config ()
   {
     global $config;
     /* Get attributes from current ldap step */
@@ -293,7 +293,7 @@ class setup
     $xml = $smarty->fetch(CONFIG_TEMPLATE_DIR.CONFIG_FILE);
     $config->parse_data($xml);
     $config->set_current($config->data['MAIN']['DEFAULT']);
-    session::global_un_set('plist');
+    session::un_set('plist');
     load_plist();
     $this->reBuildConfigStep();
   }
@@ -311,4 +311,3 @@ class setup
     }
   }
 }
-?>
diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc
index bab60d15a90f902e3ae6feb2683b68394332287a..1d9017b9546d4260dc64dd2f4704ad3060775726 100644
--- a/setup/class_setupStep.inc
+++ b/setup/class_setupStep.inc
@@ -31,71 +31,71 @@ class setupStep extends simplePlugin
 
   var $header_image = '';
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array();
+    return [];
   }
 
-  function __construct($parent)
+  function __construct ($parent)
   {
     parent::__construct(NULL, NULL, $parent);
     $this->update_strings();
   }
 
-  function update_strings()
+  function update_strings ()
   {
     die('abstract method');
   }
 
-  function get_short_name()
+  function get_short_name ()
   {
     return $this->s_short_name;
   }
 
-  function get_title()
+  function get_title ()
   {
     return $this->s_title;
   }
 
-  function get_description()
+  function get_description ()
   {
     return $this->s_description;
   }
 
-  function is_active()
+  function is_active ()
   {
     return $this->is_active;
   }
 
-  function is_enabled()
+  function is_enabled ()
   {
     return $this->is_enabled;
   }
 
-  function is_completed()
+  function is_completed ()
   {
     return $this->is_completed;
   }
 
-  function set_active($value = TRUE)
+  function set_active ($value = TRUE)
   {
     $this->is_active = ($value == TRUE);
   }
 
-  function set_enabled($value = TRUE)
+  function set_enabled ($value = TRUE)
   {
     $this->is_enabled = ($value == TRUE);
   }
 
-  function set_completed($value = TRUE)
+  function set_completed ($value = TRUE)
   {
     $this->is_completed = ($value == TRUE);
   }
 
   /* Return attributes handled by this setup step */
-  function get_attributes()
+  public function get_attributes ()
   {
-    $tmp = array();
+    $tmp = [];
     foreach (array_keys($this->attributesAccess) as $attr) {
       $tmp[$attr] = $this->$attr;
     }
@@ -103,7 +103,7 @@ class setupStep extends simplePlugin
   }
 
   /* bypass LDAP loading */
-  protected function loadAttributes()
+  protected function loadAttributes ()
   {
     foreach ($this->attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
diff --git a/setup/class_setupStepChecks.inc b/setup/class_setupStepChecks.inc
index 66dbe033b93b201c15c648bfbdbb1c0cb29b0d07..f901d9e3231d46bcda4c7a12696dc83b4c7d5ecb 100644
--- a/setup/class_setupStepChecks.inc
+++ b/setup/class_setupStepChecks.inc
@@ -23,27 +23,27 @@ class setupStepChecks extends setupStep
 {
   var $header_image = 'geticon.php?context=categories&icon=checks&size=48';
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'modules' => array(
+    return [
+      'modules' => [
         'name'      => _('PHP module and extension checks'),
         'template'  => get_template_path("setup_checks.tpl", TRUE, dirname(__FILE__)),
-        'attrs'     => array(
+        'attrs'     => [
           new FakeAttribute('basic_checks')
-        )
-      ),
-      'setup' => array(
-        'name'      => _('PHP setup configuration (<a href="?info" target="_blank">show information</a>)'),
+        ]
+      ],
+      'setup' => [
+        'name'      => _('PHP setup configuration'),
         'template'  => get_template_path("setup_checks.tpl", TRUE, dirname(__FILE__)),
-        'attrs'     => array(
+        'attrs'     => [
           new FakeAttribute('config_checks')
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('Installation check');
     $this->s_title        = _('Installation check');
@@ -51,17 +51,17 @@ class setupStepChecks extends setupStep
   }
 
   /* Execute and display template */
-  function execute()
+  function execute ()
   {
     $this->run_checks();
     return parent::execute();
   }
 
   /* Execute all checks */
-  function run_checks()
+  function run_checks ()
   {
-    $basic_checks   = array();
-    $config_checks  = array();
+    $basic_checks   = [];
+    $config_checks  = [];
 
     /* PHP version check */
     $N = _('Checking PHP version');
@@ -69,7 +69,7 @@ class setupStepChecks extends setupStep
     $S = _('Please upgrade to a supported version.');
     $R = version_compare(phpversion(), PHP_MIN_VERSION, '>=');
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     /* Check for LDAP extension */
     $N = msgPool::checkingFor("LDAP");
@@ -77,7 +77,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("LDAP");
     $R = is_callable("ldap_bind");
     $M = TRUE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check for gettext support */
     $N = msgPool::checkingFor("gettext");
@@ -85,7 +85,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("gettext");
     $R = is_callable("bindtextdomain");
     $M = TRUE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check for curl support */
     $N = msgPool::checkingFor('curl');
@@ -93,7 +93,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule('curl');
     $R = is_callable('curl_init');
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     /* Pseudo-random check */
     $N = _('Checking cryptographically secure pseudo-random integers');
@@ -101,7 +101,7 @@ class setupStepChecks extends setupStep
     $S = _('Please upgrade to PHP7 or activate openssl module.');
     $R = (is_callable('random_int') || is_callable('openssl_random_pseudo_bytes'));
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     /* Check for json support */
     $N = msgPool::checkingFor('json');
@@ -109,7 +109,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule('json');
     $R = is_callable('json_encode');
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     /* Check for filter support */
     $N = msgPool::checkingFor('filter');
@@ -117,7 +117,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule('filter');
     $R = is_callable('filter_var');
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     /* Check for iconv */
     $N = msgPool::checkingFor("iconv");
@@ -125,7 +125,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("iconv");
     $R = is_callable("iconv");
     $M = TRUE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check for installed mhash module */
     $N = msgPool::checkingFor("hash method");
@@ -133,7 +133,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("mhash/sha1");
     $R = is_callable('mhash') || is_callable('sha1');
     $M = FALSE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check if imap module is available */
     $N = msgPool::checkingFor("IMAP");
@@ -141,7 +141,7 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("IMAP");
     $R = is_callable("imap_open");
     $M = TRUE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check if mbstring module is available */
     $N = msgPool::checkingFor(_("mbstring"));
@@ -149,32 +149,24 @@ class setupStepChecks extends setupStep
     $S = msgPool::installPhpModule("mbstring");
     $R = is_callable("mb_strlen");
     $M = TRUE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     $N = msgPool::checkingFor(_('imagick'));
     $D = _('FusionDirectory requires this extension to handle images.');
     $S = msgPool::installPhpModule('imagick');
     $R = class_exists('Imagick', FALSE);
     $M = TRUE;
-    $basic_checks[] = array('NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M );
+    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
     $N = msgPool::checkingFor(_("compression module"));
     $D = _("FusionDirectory requires this extension to handle snapshots.");
     $S = msgPool::installPhpModule("compile with --with-zlib");
     $R = is_callable("gzcompress");
     $M = FALSE;
-    $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* PHP Configuration checks */
 
-    /* Register_globals off */
-    $N = "register_globals = <b>off</b>";
-    $D = _("register_globals is a PHP mechanism to register all global variables to be accessible from scripts without changing the scope. This may be a security risk.");
-    $S = _("Search for 'register_globals' in your php.ini and switch it to 'Off'.");
-    $R = ini_get("register_globals") == 0;
-    $M = FALSE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
-
     /* session lifetime set to >=86400 seconds ? */
     $N = "session.gc_maxlifetime &gt;= <b>86400</b>";
     $D = _("PHP uses this value for the garbage collector to delete old sessions.")." ".
@@ -182,7 +174,7 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or higher.");
     $R = ini_get("session.gc_maxlifetime") >= 86400;
     $M = FALSE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Session auto start must be turned off */
     $session_auto_start = ini_get('session.auto_start');
@@ -191,7 +183,7 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'session.auto_start' in your php.ini and set it to 'Off'.");
     $R = !$session_auto_start;
     $M = TRUE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check if memory limit is set to 128 or > */
     $N = "memory_limit &gt;= <b>128</b>";
@@ -199,7 +191,7 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'memory_limit' in your php.ini and set it to '128M' or higher.");
     $R = ini_get('memory_limit') >= 128;
     $M = TRUE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Implicit Flush disabled can increase performance */
     $N = "implicit_flush = <b>"._("Off")."</b>";
@@ -207,7 +199,7 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'implicit_flush' in your php.ini and set it to 'Off'.");
     $R = !ini_get('implicit_flush');
     $M = FALSE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Check if execution time is set to 30 */
     $N = "max_execution_time &gt;= <b>30</b>";
@@ -215,7 +207,7 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'max_execution_time' in your php.ini and set it to '30' or higher.");
     $R = ini_get("max_execution_time") >= 30;
     $M = TRUE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     /* Expose php should be set to off */
     $N = "expose_php = <b>"._("Off")."</b>";
@@ -223,27 +215,19 @@ class setupStepChecks extends setupStep
     $S = _("Search for 'expose_php' in your php.ini and set if to 'Off'.");
     $R = !ini_get("expose_php");
     $M = FALSE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
-
-    /* Emulating old stuff? */
-    $N = "zend.ze1_compatibility_mode = <b>"._("Off")."</b>";
-    $D = _("Increase your server performance by setting magic_quotes_gpc to 'off'.");
-    $S = _("Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'.");
-    $R = !ini_get('zend.ze1_compatibility_mode');
-    $M = FALSE;
-    $config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+    $config_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
     $this->basic_checks   = $basic_checks;
     $this->config_checks  = $config_checks;
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
      /* If everything is fine, set this step to completed
      *  and allow switching to next setup step */
     $failed = FALSE;
-    foreach (array('basic_checks','config_checks') as $type) {
+    foreach (['basic_checks','config_checks'] as $type) {
       foreach ($this->$type as $obj) {
         if ($obj['MUST'] && !$obj['RESULT']) {
           $failed = TRUE;
diff --git a/setup/class_setupStepConfig.inc b/setup/class_setupStepConfig.inc
index d5b4dda35b5fdde071ce90516835474c3ab69548..d83c73764e8898d9cbeb45fc5bbf9364941c9fee 100644
--- a/setup/class_setupStepConfig.inc
+++ b/setup/class_setupStepConfig.inc
@@ -21,7 +21,7 @@
 
 class setupStepConfig_before_init extends setupStep
 {
-  function update_strings()
+  function update_strings ()
   {
     global $config;
     if (!isset($config->current['BASE'])) {
@@ -42,57 +42,57 @@ class setupStepConfig extends configInLdap
   var $is_completed = FALSE;
   var $header_image;
 
-  static function plInfo()
+  static function plInfo ()
   {
-    return array();
+    return [];
   }
 
-  function __construct($parent, $cv)
+  function __construct ($parent, $cv)
   {
     global $config;
     parent::__construct(CONFIGRDN.$config->current['BASE'], NULL, $parent, TRUE);
 
-    $this->attributesInfo['miscellaneous']['class'] = array('invisible');
-    $this->attributesInfo['debug']['class'] = array('invisible');
+    $this->attributesInfo['miscellaneous']['class'] = ['invisible'];
+    $this->attributesInfo['debug']['class'] = ['invisible'];
 
     $this->fdLanguage     = $cv['lang_selected'];
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $infos = parent::plInfo();
     $this->header_image = $infos['plIcon'];
   }
 
-  function get_short_name()
+  function get_short_name ()
   {
     $infos = parent::plInfo();
     return $infos['plTitle'];
   }
 
-  function get_title()
+  function get_title ()
   {
     $infos = parent::plInfo();
     return $infos['plDescription'];
   }
 
-  function get_description()
+  function get_description ()
   {
     $infos = parent::plInfo();
     return $infos['plDescription'];
   }
 
   /* Return attributes handled by this setup step */
-  function get_attributes()
+  function get_attributes ()
   {
-    $tmp = array();
+    $tmp = [];
     foreach (array_keys($this->attributesAccess) as $attr) {
       $tmp[$attr] = $this->$attr;
     }
     return $tmp;
   }
 
-  function save_object()
+  function save_object ()
   {
     global $config;
     parent::save_object();
@@ -119,65 +119,65 @@ class setupStepConfig extends configInLdap
       }
       /* Reload config from LDAP */
       $config->set_current($config->current['NAME']);
-      session::global_un_set('plist');
+      session::un_set('plist');
       load_plist();
       $this->is_completed = TRUE;
       $this->parent->reBuildConfigStep(TRUE);
     }
   }
 
-  function is_active()
+  function is_active ()
   {
     return $this->is_active;
   }
 
-  function is_enabled()
+  function is_enabled ()
   {
     return $this->is_enabled;
   }
 
-  function is_completed()
+  function is_completed ()
   {
     return $this->is_completed;
   }
 
-  function set_active($value = TRUE)
+  function set_active ($value = TRUE)
   {
     $this->is_active = ($value == TRUE);
   }
 
-  function set_enabled($value = TRUE)
+  function set_enabled ($value = TRUE)
   {
     $this->is_enabled = ($value == TRUE);
   }
 
-  function set_completed($value = TRUE)
+  function set_completed ($value = TRUE)
   {
     $this->is_completed = ($value == TRUE);
   }
 
   /* bypass acl system as there is no user login */
-  function acl_is_writeable($attribute, $skip_write = FALSE)
+  function acl_is_writeable ($attribute, $skip_write = FALSE)
   {
     return TRUE;
   }
-  function acl_is_readable($attribute)
+  function acl_is_readable ($attribute)
   {
     return TRUE;
   }
-  function acl_is_createable($base = "")
+  function acl_is_createable ($base = "")
   {
     return TRUE;
   }
-  function acl_is_removeable($base = "")
+  function acl_is_removeable ($base = "")
   {
     return TRUE;
   }
-  function acl_is_moveable($base = "")
+  function acl_is_moveable ($base = "")
   {
     return TRUE;
   }
-  function aclGetPermissions($attribute = '0', $base = NULL, $skipWrite = FALSE)
+  function aclGetPermissions ($attribute = '0', $base = NULL, $skipWrite = FALSE)
   {
     return 'cmdrw';
   }
diff --git a/setup/class_setupStepFinish.inc b/setup/class_setupStepFinish.inc
index 0e2fe373b7833c215b31f6b0cd63d21ff64bc0dc..ab93fab189da6d6163ff4f45ff2068343d239af0 100644
--- a/setup/class_setupStepFinish.inc
+++ b/setup/class_setupStepFinish.inc
@@ -23,26 +23,26 @@ class setupStepFinish extends setupStep
 {
   var $header_image = 'geticon.php?context=devices&icon=server&size=48';
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'welcome' => array(
+    return [
+      'welcome' => [
         'name'      => _('Welcome'),
         'template'  => get_template_path("setup_finish.tpl", TRUE, dirname(__FILE__)),
-        'attrs'     => array(
-        )
-      )
-    );
+        'attrs'     => [
+        ]
+      ]
+    ];
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('Finish');
     $this->s_title        = _('Finish - write the configuration file');
     $this->s_description  = _('Write configuration file');
   }
 
-  function get_conf_data()
+  function get_conf_data ()
   {
     $smarty           = get_smarty();
     $cv               = $this->parent->captured_values;
@@ -52,7 +52,7 @@ class setupStepFinish extends setupStep
     return $smarty->fetch(CONFIG_TEMPLATE_DIR.CONFIG_FILE);
   }
 
-  function insertConfigDefaults()
+  function insertConfigDefaults ()
   {
     /* Insert default config values, even for installed plugin */
     global $config, $ui, $plist, $BASE_DIR;
@@ -79,7 +79,7 @@ class setupStepFinish extends setupStep
     $config->checkLdapConfig(TRUE);
   }
 
-  function execute()
+  function execute ()
   {
     /* Check if there is currently an active fusiondirectory.conf */
     $exists   = file_exists(CONFIG_DIR."/".CONFIG_FILE);
@@ -98,7 +98,7 @@ class setupStepFinish extends setupStep
     return parent::execute();
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
     $exists = file_exists(CONFIG_DIR.'/'.CONFIG_FILE);
@@ -121,7 +121,7 @@ class setupStepFinish extends setupStep
   }
 
   /* check if given file is world readable */
-  function is_world_readable($file)
+  function is_world_readable ($file)
   {
     clearstatcache();
     $p = fileperms($file);
diff --git a/setup/class_setupStepLanguage.inc b/setup/class_setupStepLanguage.inc
index 767f1193008d289c4109f0fee8e8666103698388..de0fc609332ec22138e3bb7845044ca7f22dc89b 100644
--- a/setup/class_setupStepLanguage.inc
+++ b/setup/class_setupStepLanguage.inc
@@ -23,13 +23,13 @@ class setupStepLanguage extends setupStep
 {
   var $header_image = 'geticon.php?context=applications&icon=config-language&size=48';
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'lang' => array(
+    return [
+      'lang' => [
         'name'      => _('Preferred language'),
-        'class'     => array('fullwidth', 'setup-language'),
-        'attrs'     => array(
+        'class'     => ['fullwidth', 'setup-language'],
+        'attrs'     => [
           new DisplayAttribute(
             '', '',
             'msg', FALSE
@@ -42,19 +42,19 @@ class setupStepLanguage extends setupStep
             'lang', FALSE,
             'en_EN'
           )
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
-  function __construct($parent)
+  function __construct ($parent)
   {
     parent::__construct($parent);
     $this->lang = Language::detect();
     $this->attributesAccess['lang_selected']->setSize(20);
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('Language setup');
     $this->s_title        = _('Language setup');
@@ -62,16 +62,16 @@ class setupStepLanguage extends setupStep
     $this->msg            = _('At this point, you can select the site wide default language. Choosing "automatic" will use the language requested by the browser. This setting can be overriden per user.');
   }
 
-  function execute()
+  function execute ()
   {
     $languages = Language::getList(TRUE);
     asort($languages);
-    $languages = array_merge(array("" => _("Automatic")), $languages);
+    $languages = array_merge(["" => _("Automatic")], $languages);
     $this->attributesAccess['lang_selected']->setChoices(array_keys($languages), array_values($languages));
     return parent::execute();
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
     $this->is_completed   = TRUE;
diff --git a/setup/class_setupStepLdap.inc b/setup/class_setupStepLdap.inc
index 80a05c685a6c409c9cb7966d1300d21a2a85a4ee..f931da121f53c1e2764a320e90a5bb04fbe8085f 100644
--- a/setup/class_setupStepLdap.inc
+++ b/setup/class_setupStepLdap.inc
@@ -26,12 +26,15 @@ class setupStepLdap extends setupStep
   var $connect_id = FALSE;
   var $bind_id    = FALSE;
 
-  static function getAttributesInfo()
+  private $lastBase       = '';
+  private $lastConnection = '';
+
+  static function getAttributesInfo ()
   {
-    return array(
-      'connection' => array(
+    return [
+      'connection' => [
         'name'      => _('LDAP connection'),
-        'attrs'     => array(
+        'attrs'     => [
           new StringAttribute(
             _('Location name'), _('Name of this connexion to show in the LDAP server list'),
             'location', TRUE,
@@ -50,15 +53,15 @@ class setupStepLdap extends setupStep
             _('Base'), _('The LDAP directory base'),
             'base', TRUE
           )
-        )
-      ),
-      'auth' => array(
+        ]
+      ],
+      'auth' => [
         'name'      => _('Authentication'),
-        'attrs'     => array(
+        'attrs'     => [
           new CompositeAttribute(
             _('DN of the admin account to use for binding to the LDAP. Base is automatically appended.'),
             'admin',
-            array(
+            [
               new StringAttribute(
                 '', '',
                 'admin_given', TRUE,
@@ -67,7 +70,7 @@ class setupStepLdap extends setupStep
               new DisplayAttribute(
                 '', '', 'base_append'
               )
-            ),
+            ],
             '^(.+)(.*)$',
             '%s%s',
             '',
@@ -77,21 +80,21 @@ class setupStepLdap extends setupStep
             _('Admin password'), _('Password for the admin account to use for binding to the LDAP'),
             'password', TRUE
           ),
-        )
-      ),
-      'status' => array(
+        ]
+      ],
+      'status' => [
         'name'      => _('Status'),
-        'attrs'     => array(
+        'attrs'     => [
           new DisplayAttribute(
             _('Current status'), _('Result of last attempt at checking LDAP binding and basic schemas'),
             'status', FALSE
           ),
-        )
-      )
-    );
+        ]
+      ]
+    ];
   }
 
-  function __construct($parent)
+  function __construct ($parent)
   {
     parent::__construct($parent);
     $this->update_strings();
@@ -102,14 +105,14 @@ class setupStepLdap extends setupStep
     $this->status = $this->get_connection_status();
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('LDAP setup');
     $this->s_title        = _('LDAP connection setup');
     $this->s_description  = _('This dialog performs the basic configuration of the LDAP connectivity for FusionDirectory.');
   }
 
-  function update_base_choices()
+  function update_base_choices ()
   {
     $attr = @LDAP::get_naming_contexts($this->connection);
     unset($attr['count']);
@@ -128,17 +131,18 @@ class setupStepLdap extends setupStep
         'base', TRUE
       );
     }
+    $this->lastConnection = $this->connection;
+    $this->lastBase       = $this->base;
   }
 
-  function save_object()
+  function save_object ()
   {
-    $base       = $this->base;
-    $connection = $this->connection;
     parent::save_object();
-    $this->connection = preg_replace("/\/$/", "", $this->connection);
-    if (($this->base != $base) || ($this->connection != $connection)) {
+    $this->connection = preg_replace('/\/$/', '', $this->connection);
+    if (($this->base != $this->lastBase) || ($this->connection != $this->lastConnection)) {
       $this->parent->disable_steps_from(($this->parent->step_name_to_id(get_class($this))) + 1);
-      if ($this->connection != $connection) {
+      $this->lastBase       = $this->base;
+      if ($this->connection != $this->lastConnection) {
         $this->update_base_choices();
       }
     }
@@ -154,7 +158,7 @@ class setupStepLdap extends setupStep
     }
   }
 
-  function get_connection_status()
+  function get_connection_status ()
   {
     $this->connect_id = FALSE;
     $this->bind_id    = FALSE;
@@ -195,7 +199,7 @@ class setupStepLdap extends setupStep
     }
   }
 
-  function check()
+  function check ()
   {
     $error = parent::check();
     if (!empty($error)) {
@@ -203,7 +207,7 @@ class setupStepLdap extends setupStep
       return $error;
     } elseif ($this->is_completed) {
       $checked  = check_schema($this->parent->captured_values);
-      $error    = array();
+      $error    = [];
       foreach ($checked as $check) {
         if (!$check['STATUS']) {
           if ($check['IS_MUST_HAVE']) {
diff --git a/setup/class_setupStepMigrate.inc b/setup/class_setupStepMigrate.inc
index 0ee9614cc86dd5b786c98323310a643e9b9725f9..f99ada78cb66c863fde29bd25b55f17e8fccb6d2 100644
--- a/setup/class_setupStepMigrate.inc
+++ b/setup/class_setupStepMigrate.inc
@@ -48,13 +48,13 @@ class CheckFailedException extends FusionDirectoryException
 {
   private $error;
 
-  public function __construct($msg, $error)
+  public function __construct ($msg, $error)
   {
     parent::__construct($msg);
     $this->error = $error;
   }
 
-  public function getError()
+  public function getError ()
   {
     return $this->error;
   }
@@ -69,7 +69,7 @@ class StepMigrateDialog extends GenericDialog
   private $tplfile;
   private $check;
 
-  public function __construct(&$check, $tpl, $infos)
+  public function __construct (&$check, $tpl, $infos)
   {
     $this->attribute  = NULL;
     $this->dialog     = NULL;
@@ -78,7 +78,7 @@ class StepMigrateDialog extends GenericDialog
     $this->check      = $check;
   }
 
-  public function dialog_execute()
+  public function dialog_execute ()
   {
     if (
       isset($_POST['dialog_showchanges']) ||
@@ -104,6 +104,11 @@ class StepMigrateDialog extends GenericDialog
   {
     return FALSE;
   }
+
+  public function getInfos ()
+  {
+    return $this->infos;
+  }
 }
 
 class StepMigrateCheck
@@ -116,7 +121,7 @@ class StepMigrateCheck
   public $fnc;
   private $step;
 
-  public function __construct($step, $name, $title)
+  public function __construct ($step, $name, $title)
   {
     $this->name   = $name;
     $this->title  = $title;
@@ -124,7 +129,7 @@ class StepMigrateCheck
     $this->step   = $step;
   }
 
-  public function run($fnc = NULL)
+  public function run ($fnc = NULL)
   {
     if ($fnc === NULL) {
       $fnc          = $this->fnc;
@@ -140,7 +145,7 @@ class StepMigrateCheck
     }
   }
 
-  public function save_object()
+  public function save_object ()
   {
     if (isset($_POST[$this->name.'_create'])) {
       $fnc = $this->fnc.'_create';
@@ -159,7 +164,7 @@ class StepMigrateCheck
     return '<input type="submit" name="'.$this->name.'_'.$id.'" value="'.$value.'"/>';
   }
 
-  public function migrate_confirm()
+  public function migrate_confirm ()
   {
     $fnc = $this->fnc.'_migrate'.'_confirm';
     $res = $this->step->$fnc($this);
@@ -169,7 +174,7 @@ class StepMigrateCheck
     return $res;
   }
 
-  public function dialog_refresh()
+  public function dialog_refresh ()
   {
     $fnc = $this->fnc.'_migrate'.'_refresh';
     return $this->step->$fnc($this);
@@ -181,80 +186,80 @@ class setupStepMigrate extends setupStep
   var $header_image   = "geticon.php?context=applications&icon=utilities-system-monitor&size=48";
 
   /* Root object classes */
-  var $rootOC_details = array();
+  var $rootOC_details = [];
 
   /* Entries needing migration */
-  var $orgUnits_toMigrate       = array();
-  var $accounts_toMigrate       = array();
-  var $outsideUsers_toMigrate   = array();
-  var $outsideGroups_toMigrate  = array();
+  var $orgUnits_toMigrate       = [];
+  var $accounts_toMigrate       = [];
+  var $outsideUsers_toMigrate   = [];
+  var $outsideGroups_toMigrate  = [];
 
   /* check for multiple use of same uidNumber */
-  var $check_uidNumbers = array();
+  var $check_uidNumbers = [];
 
   /* check for multiple use of same gidNumber */
-  var $check_gidNumbers = array();
+  var $check_gidNumbers = [];
 
   /* Defaults ACL roles */
   var $defaultRoles;
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'checks' => array(
-        'class'     => array('fullwidth'),
+    return [
+      'checks' => [
+        'class'     => ['fullwidth'],
         'name'      => _('PHP module and extension checks'),
         'template'  => get_template_path("setup_migrate.tpl", TRUE, dirname(__FILE__)),
-        'attrs'     => array(
+        'attrs'     => [
           new FakeAttribute('checks')
-        )
-      ),
-    );
+        ]
+      ],
+    ];
   }
 
-  function __construct($parent)
+  function __construct ($parent)
   {
     parent::__construct($parent);
     $this->fill_defaultRoles();
   }
 
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('LDAP inspection');
     $this->s_title        = _('LDAP inspection');
     $this->s_description  = _('Analyze your current LDAP for FusionDirectory compatibility');
   }
 
-  function fill_defaultRoles()
+  function fill_defaultRoles ()
   {
-    $this->defaultRoles = array(
-      array(
+    $this->defaultRoles = [
+      [
         'cn'              => 'manager',
         'description'     => _('Give all rights on users in the given branch'),
-        'objectclass'     => array('top', 'gosaRole'),
+        'objectclass'     => ['top', 'gosaRole'],
         'gosaAclTemplate' => '0:user/user;cmdrw,user/posixAccount;cmdrw'
-      ),
-      array(
+      ],
+      [
         'cn'              => 'editowninfos',
         'description'     => _('Allow users to edit their own information (main tab and posix use only on base)'),
-        'objectclass'     => array('top', 'gosaRole'),
+        'objectclass'     => ['top', 'gosaRole'],
         'gosaAclTemplate' => '0:user/user;srw,user/posixAccount;srw'
-      ),
-      array(
+      ],
+      [
         'cn'              => 'editownpwd',
         'description'     => _('Allow users to edit their own password (use only on base)'),
-        'objectclass'     => array('top', 'gosaRole'),
+        'objectclass'     => ['top', 'gosaRole'],
         'gosaAclTemplate' => '0:user/user;s#userPassword;rw'
-      ),
-    );
+      ],
+    ];
   }
 
-  function initialize_checks()
+  function initialize_checks ()
   {
     global $config;
     $config->get_departments();
 
-    $checks = array(
+    $checks = [
       'baseOC'        => new StepMigrateCheck($this, 'baseOC',        _('Inspecting object classes in root object')),
       'permissions'   => new StepMigrateCheck($this, 'permissions',   _('Checking permission for LDAP database')),
       'accounts'      => new StepMigrateCheck($this, 'accounts',      _('Checking for invisible users')),
@@ -265,13 +270,13 @@ class setupStepMigrate extends setupStep
       'orgUnits'      => new StepMigrateCheck($this, 'orgUnits',      _('Checking for invisible departments')),
       'uidNumber'     => new StepMigrateCheck($this, 'uidNumber',     _('Checking for duplicated UID numbers')),
       'gidNumber'     => new StepMigrateCheck($this, 'gidNumber',     _('Checking for duplicated GID numbers')),
-    );
+    ];
 
     $this->checks = $checks;
   }
 
   /* Return ldif information for a given attribute array */
-  function array_to_ldif($attrs)
+  function array_to_ldif ($attrs)
   {
     $ret = '';
     unset($attrs['count']);
@@ -292,7 +297,7 @@ class setupStepMigrate extends setupStep
     return preg_replace("/\n$/", '', $ret);
   }
 
-  function execute()
+  function execute ()
   {
     if (empty($this->checks) || isset($_POST['reload'])) {
       $this->initialize_checks();
@@ -303,7 +308,7 @@ class setupStepMigrate extends setupStep
     return parent::execute();
   }
 
-  function save_object()
+  function save_object ()
   {
     $this->is_completed = TRUE;
     parent::save_object();
@@ -316,7 +321,7 @@ class setupStepMigrate extends setupStep
    * If the parameter just_check is TRUE, then just check for the OCs.
    * If the Parameter is FALSE, try to add the required object classes.
    */
-  function check_baseOC(&$checkobj)
+  function check_baseOC (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -335,8 +340,8 @@ class setupStepMigrate extends setupStep
 
     /* Root object doesn't exists */
     if (!in_array("gosaDepartment", $attrs['objectClass'])) {
-      $this->rootOC_details = array();
-      $mods = array();
+      $this->rootOC_details = [];
+      $mods = [];
 
       /* Get list of possible container objects, to be able to detect naming
        *  attributes and missing attribute types.
@@ -402,7 +407,7 @@ class setupStepMigrate extends setupStep
         $mods['ou'] = $val;
       }
 
-      /*Append description, it is required by gosaDepartment too */
+      /* Append description, it is required by gosaDepartment too */
       if (!isset($attrs['description'])) {
         $val = "GOsa";
         if (isset($attrs[$dep_infos['mainAttr']][0])) {
@@ -415,7 +420,7 @@ class setupStepMigrate extends setupStep
       $this->rootOC_details['target'] = $str;
       $this->rootOC_details['mods']   = $mods;
 
-      /*  Add button that allows to open the migration details */
+      /* Add button that allows to open the migration details */
       throw new CheckFailedException(
         _('Failed'),
         '&nbsp;'.$checkobj->submit()
@@ -428,6 +433,8 @@ class setupStepMigrate extends setupStep
 
   function check_baseOC_migrate (&$checkobj)
   {
+    /* Refresh $this->rootOC_details */
+    $checkobj->run();
     $this->openDialog(new StepMigrateDialog($checkobj, 'setup_migrate_baseOC.tpl', $this->rootOC_details));
   }
 
@@ -465,7 +472,7 @@ class setupStepMigrate extends setupStep
    * Create and remove a dummy object,
    *  to ensure that we have the necessary permissions
    */
-  function check_permissions(&$checkobj)
+  function check_permissions (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -473,7 +480,7 @@ class setupStepMigrate extends setupStep
     /* Create dummy entry */
     $name       = 'GOsa_setup_text_entry_'.session_id().random_int(0, 999999);
     $dn         = 'ou='.$name.','.$config->current['BASE'];
-    $testEntry  = array();
+    $testEntry  = [];
 
     $testEntry['objectClass'][] = 'top';
     $testEntry['objectClass'][] = 'organizationalUnit';
@@ -491,11 +498,11 @@ class setupStepMigrate extends setupStep
     }
 
     /* Try to create dummy object */
-    $ldap->cd ($dn);
+    $ldap->cd($dn);
     $res = $ldap->add($testEntry);
     $ldap->cat($dn);
     if (!$ldap->count()) {
-      logging::log('view', 'setup/'.get_class($this), $dn, array(), $ldap->get_error());
+      logging::log('view', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your LDAP database.'), $config->current['ADMINDN'])
@@ -506,7 +513,7 @@ class setupStepMigrate extends setupStep
     $res = $ldap->rmDir($dn);
     $ldap->cat($dn);
     if ($ldap->count()) {
-      logging::log('view', 'setup/'.get_class($this), $dn, array(), $ldap->get_error());
+      logging::log('view', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your ldap database.'), $config->current['ADMINDN'])
@@ -520,7 +527,7 @@ class setupStepMigrate extends setupStep
   /* Check if there are users which will
    *  be invisible for FusionDirectory
    */
-  function check_accounts(&$checkobj)
+  function check_accounts (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -529,7 +536,7 @@ class setupStepMigrate extends setupStep
      *  the 'html checked' status for the checkboxes again
      */
     $old    = $this->accounts_toMigrate;
-    $this->accounts_toMigrate = array();
+    $this->accounts_toMigrate = [];
 
     /* Get all invisible users */
     $ldap->cd($config->current['BASE']);
@@ -543,7 +550,7 @@ class setupStepMigrate extends setupStep
         '(!(objectClass=inetOrgPerson))'.
         '(uid=*)'.
       ')',
-      array('sn','givenName','cn','uid')
+      ['sn','givenName','cn','uid']
     );
 
     while ($attrs = $ldap->fetch()) {
@@ -583,10 +590,10 @@ class setupStepMigrate extends setupStep
   {
     $this->check_multipleGeneric_migrate(
       $checkobj,
-      array(
+      [
         'title'   => _('User migration'),
         'outside' => FALSE,
-      )
+      ]
     );
   }
 
@@ -594,19 +601,19 @@ class setupStepMigrate extends setupStep
   {
     return $this->check_multipleGeneric_migrate_refresh(
       $checkobj,
-      array(
+      [
         'title'   => _('User migration'),
         'outside' => FALSE,
-      )
+      ]
     );
   }
 
-  function check_accounts_migrate_confirm(&$checkobj, $only_ldif = FALSE)
+  function check_accounts_migrate_confirm (&$checkobj, $only_ldif = FALSE)
   {
     return $this->check_multipleGeneric_migrate_confirm(
       $checkobj,
-      array('inetOrgPerson','organizationalPerson','person'),
-      array(),
+      ['inetOrgPerson','organizationalPerson','person'],
+      [],
       $only_ldif
     );
   }
@@ -642,7 +649,7 @@ class setupStepMigrate extends setupStep
     return $infos;
   }
 
-  function check_multipleGeneric_migrate_confirm(&$checkobj, $oc, $mandatory, $only_ldif)
+  function check_multipleGeneric_migrate_confirm (&$checkobj, $oc, $mandatory, $only_ldif)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -653,11 +660,11 @@ class setupStepMigrate extends setupStep
       $entry['checked'] = isset($_POST['migrate_'.$key]);
       if ($entry['checked']) {
         /* Get old objectClasses */
-        $ldap->cat($entry['dn'], array_merge(array('objectClass'), array_keys($mandatory)));
+        $ldap->cat($entry['dn'], array_merge(['objectClass'], array_keys($mandatory)));
         $attrs = $ldap->fetch();
 
         /* Create new objectClass array */
-        $new_attrs  = array();
+        $new_attrs  = [];
         $new_attrs['objectClass'] = $oc;
         for ($i = 0; $i < $attrs['objectClass']['count']; $i++) {
           if (!in_array_ics($attrs['objectClass'][$i], $new_attrs['objectClass'])) {
@@ -699,7 +706,7 @@ class setupStepMigrate extends setupStep
   }
 
   /* Check Acls if there is at least one object with acls defined */
-  function check_adminAccount(&$checkobj)
+  function check_adminAccount (&$checkobj)
   {
     global $config;
 
@@ -719,8 +726,8 @@ class setupStepMigrate extends setupStep
       $attrs = $ldap->fetch();
 
       /* Collect a list of available FusionDirectory users and groups */
-      $users = array();
-      $ldap->search('(objectClass=inetOrgPerson)', array('uid','dn'));
+      $users = [];
+      $ldap->search('(objectClass=inetOrgPerson)', ['uid','dn']);
       while ($user_attrs = $ldap->fetch()) {
         if (isset($user_attrs['uid'][0])) {
           $users[$user_attrs['dn']]       = $user_attrs['uid'][0];
@@ -729,13 +736,13 @@ class setupStepMigrate extends setupStep
           $users[$user_attrs['dn']] = $user_attrs['dn'];
         }
       }
-      $groups = array();
-      $ldap->search('(objectClass=posixGroup)', array('cn','dn'));
+      $groups = [];
+      $ldap->search('(objectClass=posixGroup)', ['cn','dn']);
       while ($group_attrs = $ldap->fetch()) {
         $groups[$group_attrs['dn']] = $group_attrs['cn'][0];
       }
-      $roles = array();
-      $ldap->search('(objectClass=organizationalRole)', array('cn','dn'));
+      $roles = [];
+      $ldap->search('(objectClass=organizationalRole)', ['cn','dn']);
       while ($role_attrs = $ldap->fetch()) {
         $roles[$role_attrs['dn']] = $role_attrs['cn'][0];
       }
@@ -754,7 +761,7 @@ class setupStepMigrate extends setupStep
 
           if ($tmp[1] == 'subtree') {
             /* Check if acl owner is a valid FusionDirectory user account */
-            $ldap->cat(base64_decode($tmp[2]), array('gosaAclTemplate'), '(gosaAclTemplate=*:all;cmdrw)');
+            $ldap->cat(base64_decode($tmp[2]), ['gosaAclTemplate'], '(gosaAclTemplate=*:all;cmdrw)');
             if ($ldap->count()) {
               $members = explode(',', $tmp[3]);
               foreach ($members as $member) {
@@ -829,26 +836,26 @@ class setupStepMigrate extends setupStep
     return '';
   }
 
-  function check_adminAccount_create(&$checkobj)
+  function check_adminAccount_create (&$checkobj)
   {
-    $infos = array(
+    $infos = [
       'uid'       => 'fd-admin',
       'password'  => '',
       'password2' => '',
-    );
+    ];
     $this->openDialog(new StepMigrateDialog($checkobj, 'setup_migrate_adminAccount.tpl', $infos));
   }
 
-  function check_adminAccount_migrate_confirm(&$checkobj)
+  function check_adminAccount_migrate_confirm (&$checkobj)
   {
     global $config;
-    session::global_set('CurrentMainBase', $config->current['BASE']);
+    session::set('CurrentMainBase', $config->current['BASE']);
 
     /* Creating role */
     $ldap = $config->get_ldap_link();
 
     $ldap->cd($config->current['BASE']);
-    $ldap->search('(&(objectClass=gosaRole)(gosaAclTemplate=*:all;cmdrw))', array('dn'));
+    $ldap->search('(&(objectClass=gosaRole)(gosaAclTemplate=*:all;cmdrw))', ['dn']);
     if ($attrs = $ldap->fetch()) {
       $roledn = $attrs['dn'];
     } else {
@@ -857,7 +864,7 @@ class setupStepMigrate extends setupStep
 
       $baseObject->cn               = 'admin';
       $baseObject->description      = _('Gives all rights on all objects');
-      $baseObject->gosaAclTemplate  = array(array('all' => array('0' => 'cmdrw')));
+      $baseObject->gosaAclTemplate  = [['all' => ['0' => 'cmdrw']]];
 
       $tabObject->save();
       $roledn = $tabObject->dn;
@@ -884,11 +891,11 @@ class setupStepMigrate extends setupStep
     $assignments = $baseObject->gosaAclEntry;
     array_unshift(
       $assignments,
-      array(
+      [
         'scope'   => 'subtree',
         'role'    => $roledn,
-        'members' => array($admindn),
-      )
+        'members' => [$admindn],
+      ]
     );
     $baseObject->gosaAclEntry = $assignments;
     $tabObject->save();
@@ -896,17 +903,17 @@ class setupStepMigrate extends setupStep
     return TRUE;
   }
 
-  function check_adminAccount_migrate_refresh(&$checkobj)
+  function check_adminAccount_migrate_refresh (&$checkobj)
   {
-    return array(
+    return [
       'uid'       => $_POST['uid'],
       'password'  => $_POST['userPassword_password'],
       'password2' => $_POST['userPassword_password2'],
-    );
+    ];
   }
 
   /* Check if default roles and groupes have been inserted */
-  function check_defaultACLs(&$checkobj)
+  function check_defaultACLs (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -923,7 +930,7 @@ class setupStepMigrate extends setupStep
     $existings = 0;
     foreach ($this->defaultRoles as $role) {
       $dn = 'cn='.$role['cn'].','.get_ou('aclRoleRDN').$config->current['BASE'];
-      $ldap->cat($dn, array('dn'));
+      $ldap->cat($dn, ['dn']);
       if ($ldap->count() > 0) {
         $existings++;
       }
@@ -946,7 +953,7 @@ class setupStepMigrate extends setupStep
     }
   }
 
-  function check_defaultACLs_migrate(&$checkobj)
+  function check_defaultACLs_migrate (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -978,7 +985,7 @@ class setupStepMigrate extends setupStep
   }
 
   /* Search for users outside the people ou */
-  function check_outsideUsers(&$checkobj)
+  function check_outsideUsers (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -988,7 +995,7 @@ class setupStepMigrate extends setupStep
     /***********
      * Search for all users
      ***********/
-    $res = $ldap->search('(&(objectClass=inetOrgPerson)(!(uid=*$)))', array('dn'));
+    $res = $ldap->search('(&(objectClass=inetOrgPerson)(!(uid=*$)))', ['dn']);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -999,7 +1006,7 @@ class setupStepMigrate extends setupStep
     /***********
      * Check if returned users are within a valid department. (peopleou,gosaDepartment,base)
      ***********/
-    $this->outsideUsers_toMigrate = array();
+    $this->outsideUsers_toMigrate = [];
     $people_ou = trim(get_ou('userRDN'));
 
     while ($attrs = $ldap->fetch()) {
@@ -1027,35 +1034,35 @@ class setupStepMigrate extends setupStep
     }
   }
 
-  function check_outsideUsers_migrate(&$checkobj)
+  function check_outsideUsers_migrate (&$checkobj)
   {
     global $config;
     $this->check_multipleGeneric_migrate(
       $checkobj,
-      array(
+      [
         'title'       => _('Move users into configured user tree'),
         'outside'     => TRUE,
         'ous'         => $config->departments,
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
-      )
+      ]
     );
   }
 
-  function check_outsideUsers_migrate_refresh(&$checkobj)
+  function check_outsideUsers_migrate_refresh (&$checkobj)
   {
     global $config;
     return $this->check_multipleGeneric_migrate_refresh(
       $checkobj,
-      array(
+      [
         'title'       => _('Move users into configured user tree'),
         'outside'     => TRUE,
         'ous'         => $config->departments,
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
-      )
+      ]
     );
   }
 
-  function check_outsideUsers_migrate_confirm(&$checkobj, $only_ldif = FALSE, $ou = 'userRDN')
+  function check_outsideUsers_migrate_confirm (&$checkobj, $only_ldif = FALSE, $ou = 'userRDN')
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -1080,7 +1087,7 @@ class setupStepMigrate extends setupStep
           $entry['ldif'] = _('Entry will be moved from').":<br/>\t".($ldap->fix($dn)).'<br/>'._('to').":<br/>\t".($ldap->fix($d_dn));
 
           /* Check if there are references to this object */
-          $ldap->search('(&(member='.ldap_escape_f($dn).')(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))', array('dn'));
+          $ldap->search('(&(member='.ldap_escape_f($dn).')(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))', ['dn']);
           $refs = '';
           while ($attrs = $ldap->fetch()) {
             $ref_dn = $attrs['dn'];
@@ -1100,7 +1107,7 @@ class setupStepMigrate extends setupStep
   }
 
   /* Search for groups outside the group ou */
-  function check_outsideGroups(&$checkobj)
+  function check_outsideGroups (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -1111,7 +1118,7 @@ class setupStepMigrate extends setupStep
     /***********
      * Get all groups
      ***********/
-    $res = $ldap->search('(objectClass=posixGroup)', array('dn'));
+    $res = $ldap->search('(objectClass=posixGroup)', ['dn']);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -1119,7 +1126,7 @@ class setupStepMigrate extends setupStep
       );
     }
 
-    $this->outsideGroups_toMigrate = array();
+    $this->outsideGroups_toMigrate = [];
     while ($attrs = $ldap->fetch()) {
       $group_db_base = preg_replace('/^[^,]+,'.preg_quote($group_ou, '/').'/i', '', $attrs['dn']);
 
@@ -1146,55 +1153,55 @@ class setupStepMigrate extends setupStep
     }
   }
 
-  function check_outsideGroups_migrate(&$checkobj)
+  function check_outsideGroups_migrate (&$checkobj)
   {
     global $config;
     $this->check_multipleGeneric_migrate(
       $checkobj,
-      array(
+      [
         'title'       => _('Move groups into configured groups tree'),
         'outside'     => TRUE,
         'ous'         => $config->departments,
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
-      )
+      ]
     );
   }
 
-  function check_outsideGroups_migrate_refresh(&$checkobj)
+  function check_outsideGroups_migrate_refresh (&$checkobj)
   {
     global $config;
     return $this->check_multipleGeneric_migrate_refresh(
       $checkobj,
-      array(
+      [
         'title'       => _('Move groups into configured groups tree'),
         'outside'     => TRUE,
         'ous'         => $config->departments,
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
-      )
+      ]
     );
   }
 
-  function check_outsideGroups_migrate_confirm(&$checkobj, $only_ldif = FALSE)
+  function check_outsideGroups_migrate_confirm (&$checkobj, $only_ldif = FALSE)
   {
     return $this->check_outsideUsers_migrate_confirm($checkobj, $only_ldif, 'groupRDN');
   }
 
   /* Check if there are invisible organizational Units */
-  function check_orgUnits(&$checkobj)
+  function check_orgUnits (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
 
     $old                      = $this->orgUnits_toMigrate;
-    $this->orgUnits_toMigrate = array();
+    $this->orgUnits_toMigrate = [];
 
     /* Skip FusionDirectory internal departments */
-    $skip_dns = array(
+    $skip_dns = [
       '/ou=fusiondirectory,'.preg_quote($config->current['BASE']).'$/',
       '/dc=addressbook,/',
       '/ou=systems,'.preg_quote($config->current['BASE']).'$/',
       '/ou=snapshots,/'
-    );
+    ];
     foreach (objects::types() as $type) {
       $infos = objects::infos($type);
       if (isset($infos['ou']) && ($infos['ou'] != '')) {
@@ -1204,7 +1211,7 @@ class setupStepMigrate extends setupStep
 
     /* Get all invisible departments */
     $ldap->cd($config->current['BASE']);
-    $res = $ldap->search('(&(objectClass=organizationalUnit)(!(objectClass=gosaDepartment)))', array('ou','description','dn'));
+    $res = $ldap->search('(&(objectClass=organizationalUnit)(!(objectClass=gosaDepartment)))', ['ou','description','dn']);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -1255,46 +1262,46 @@ class setupStepMigrate extends setupStep
     }
   }
 
-  function check_orgUnits_migrate(&$checkobj)
+  function check_orgUnits_migrate (&$checkobj)
   {
     $this->check_multipleGeneric_migrate(
       $checkobj,
-      array(
+      [
         'title'   => _('Department migration'),
         'outside' => FALSE,
-      )
+      ]
     );
   }
 
-  function check_orgUnits_migrate_refresh(&$checkobj)
+  function check_orgUnits_migrate_refresh (&$checkobj)
   {
     return $this->check_multipleGeneric_migrate_refresh(
       $checkobj,
-      array(
+      [
         'title'   => _('Department migration'),
         'outside' => FALSE,
-      )
+      ]
     );
   }
 
-  function check_orgUnits_migrate_confirm(&$checkobj, $only_ldif)
+  function check_orgUnits_migrate_confirm (&$checkobj, $only_ldif)
   {
     return $this->check_multipleGeneric_migrate_confirm(
       $checkobj,
-      array('gosaDepartment'),
-      array('description' => 'FusionDirectory department'),
+      ['gosaDepartment'],
+      ['description' => 'FusionDirectory department'],
       $only_ldif
     );
   }
 
   /* Check if there are uidNumbers which are used more than once */
-  function check_uidNumber(&$checkobj)
+  function check_uidNumber (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
 
     $ldap->cd($config->current['BASE']);
-    $res = $ldap->search("(&(objectClass=posixAccount)(uidNumber=*))", array("dn","uidNumber"));
+    $res = $ldap->search("(&(objectClass=posixAccount)(uidNumber=*))", ["dn","uidNumber"]);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -1302,8 +1309,8 @@ class setupStepMigrate extends setupStep
       );
     }
 
-    $this->check_uidNumbers = array();
-    $tmp = array();
+    $this->check_uidNumbers = [];
+    $tmp = [];
     while ($attrs = $ldap->fetch()) {
       $tmp[$attrs['uidNumber'][0]][] = $attrs;
     }
@@ -1332,13 +1339,13 @@ class setupStepMigrate extends setupStep
   }
 
   /* Check if there are duplicated gidNumbers present in ldap */
-  function check_gidNumber(&$checkobj)
+  function check_gidNumber (&$checkobj)
   {
     global $config;
     $ldap = $config->get_ldap_link();
 
     $ldap->cd($config->current['BASE']);
-    $res = $ldap->search("(&(objectClass=posixGroup)(gidNumber=*))", array("dn","gidNumber"));
+    $res = $ldap->search("(&(objectClass=posixGroup)(gidNumber=*))", ["dn","gidNumber"]);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -1346,8 +1353,8 @@ class setupStepMigrate extends setupStep
       );
     }
 
-    $this->check_gidNumbers = array();
-    $tmp = array();
+    $this->check_gidNumbers = [];
+    $tmp = [];
     while ($attrs = $ldap->fetch()) {
       $tmp[$attrs['gidNumber'][0]][] = $attrs;
     }
diff --git a/setup/class_setupStepWelcome.inc b/setup/class_setupStepWelcome.inc
index d8f87295b2fae19d5ae9fec06351e820c17a47ef..d73e23a4652382a428a50dc348e6ff1e91bcaed3 100644
--- a/setup/class_setupStepWelcome.inc
+++ b/setup/class_setupStepWelcome.inc
@@ -23,19 +23,19 @@ class setupStepWelcome extends setupStep
 {
   var $header_image = 'geticon.php?context=applications&icon=config-welcome&size=48';
 
-  static function getAttributesInfo()
+  static function getAttributesInfo ()
   {
-    return array(
-      'welcome' => array(
+    return [
+      'welcome' => [
         'name'      => _('Welcome'),
         'template'  => get_template_path("setup_welcome.tpl", TRUE, dirname(__FILE__)),
-        'attrs'     => array(
-        )
-      )
-    );
+        'attrs'     => [
+        ]
+      ]
+    ];
   }
 
-  function __construct($parent)
+  function __construct ($parent)
   {
     parent::__construct($parent);
 
@@ -45,14 +45,14 @@ class setupStepWelcome extends setupStep
   }
 
   /* We need to init them with a method to be able to use _() */
-  function update_strings()
+  function update_strings ()
   {
     $this->s_short_name   = _('Welcome');
     $this->s_title        = _('Welcome to FusionDirectory setup wizard');
     $this->s_description  = _('The welcome message');
   }
 
-  function execute()
+  function execute ()
   {
     $smarty = get_smarty();
     $smarty->assign('auth_id', session_id());
@@ -61,7 +61,7 @@ class setupStepWelcome extends setupStep
     return parent::execute();
   }
 
-  function save_object()
+  function save_object ()
   {
     parent::save_object();
     $id = "";
diff --git a/setup/setup_checks.tpl b/setup/setup_checks.tpl
index 80776db1c243919eb69e191e9c62e2353ef1bdf7..d9d208fbc0298b296194aeaa48119b6de83ed678 100644
--- a/setup/setup_checks.tpl
+++ b/setup/setup_checks.tpl
@@ -1,6 +1,8 @@
 <div id="{$sectionId}" class="plugin-section">
   <span class="legend">
     {$section}
+    -
+    <a href="?info" target="_blank">{t}show information{/t}</a>
   </span>
   <div>
     {foreach from=$attributes item=infos}