ldapsaisie (4.2.0-1) stable; urgency=medium

  * PHP 8.2 support
  * LSconfig: add escape_key, explode_keys and implode_keys helper methods
  * Improve LSldapObject::getDisplayValue() method to match with getValue() method's parameters
  * Fix LSattribute::getDisplayValue() when called on updated attribute
  * LSattr_ldap::date: replace unique format parameter by a list
  * Fix some french translated messages
  * Auth:
    * LSauth: add filter_function parameter
    * LSauthMethod::CAS: fix support of phpCAS >= 1.6.0 and patched Debian Buster 1.3.6-1+deb10u1 version
  * Addons
    * accesslog:
      * Improve displaying changes attributes values
      * Fix infinity loop problem handling entry renaming event with the same DN
    * ftp: Remove PEAR Net_FTP dependency
    * posix: Add deleteHomeDirectoryByFTP function
    * supann: Add supannCMSIdEtiquette attribute support
  * doc: switch format to Markdown & Mkdocs

 -- LdapSaisie project <support+ldapsaisie@easter-eggs.com>  Thu, 26 Oct 2023 11:55:52 +0200

ldapsaisie (4.1.0-1) unstable; urgency=medium

  * PHP8 compatibility
  * Import/export:
    * Allow translation of labels
    * Add before/after import triggers feature
    * Allow to generate attribute value using a custom callable
    * Add update_only mode
    * Trace errors and messages during import to map them with objects and hooks.
    * Improve handling time & memory limits and allow before_import hook to set them
    * import: Check generated field value and stop import in case of error
    * import: Fix displaying attribute errors two times
  * Translation:
    * Fix handling backslash in export POT file
    * Improve internal message extrators from PHP files
    * CLI commands messages translation
    * generate_lang_file: add possibility to translate message in a text editor
    * generate_lang_file: ignore LSformat string with simple string substitution
    * Make location paths in ldapsaisie.pot file relative
    * generate_ldapsaisie_pot: Add -I/--internal paramater to use internal message extractor for PHP files instead of xgettext
    * Templating tr function: provided message could now be formated as LSformat string using extra provided parameters
  * Search:
    * handle translation of LSformat, alternativeLSformats and formaterLSformat
    * Fix/improve handling data keep in session
    * globalSearch: defaulty display extraDisplayedColumns
  * LSsession:
    * fix saving context info method to keep existing other info
    * canExecuteCustomAction(): fix handling self LSprofile
    * loadLSprofiles(): reset current LSprofiles on each call
    * LSprofiles by LSobject: add possibility to compute basedn using LSformat on authenticated user
  * LSldap:
    * add formatDate() method
    * add possibility to configure hooks
    * getAttr(): be sure to return on array when $multiple is true
    * add LDAP password policy support
    * update(): fix object creation with required userPassword attribute
    * translate code comments
    * fix updating internal attributes
  * LSform:
    * fix handling default values of dataEntryForm
    * dataEntryForm: Add forceGeneration parameter
    * LSformElements
      * inarray: add reverse parameter
      * jsonCompositeAttribute:
        * fix checking non-multiple components value
        * fix handling empty value & $onlyIfPresent parameter
      * pre: Fix long lines diplay
      * select_list/select_box: display values respecting possible values order and force sub-options at the end when sorting
  * Themes:
    * light-blue.css: Fix LSobject-list links color on line hover
    * Fix default ASC & DESC images color to fit with clear themes
  * Addons:
    * Some news addons: accesslog, impersonate, orgchart, ppolicy, showSupportInfo
    * Code cleaning
    * Mail:
       * fix catch all message suffix in HTML mode
       * make optional parameter of sendMail() defaulty null
       * add MAIL_CATCH_ALL parameter
    * SUPANN:
      * Rename some functions:
        * supannCheckEduPersonPrimaryAffiliation => validate_eduPersonPrimaryAffiliation
        * supannCheckEduPersonAffiliation => validate_eduPersonAffiliation
      * Add some new functions:
        * generate_supannRessourceEtat
        * generate_supannEntiteAffectationPrincipale & validate_supannEntiteAffectationPrincipale
      * Add UAI code of ENSAD
      * LSformElements:
        * supannCompositeAttribute: fix checking components value
        * supannEtuInscription: fix cursusann component regex
  * LSexample:
    * Make restore_lsexample compatible with OpenLDAP 2.5 (and Debian Bookworm)
    * LSexample: restore compatibility with Debian stretch
    * Remove showObjectAccessLogs custom action on LSpeople
    * Defaulty enable LSpeople API access
  * Other changes:
    * LSerror::getErrors(): add $reset parameter
    * LSselect: fix ajax input
    * AJAX routes: ensure to enable AJAX mode even if an error occured handling request
    * LSldapObject::validateAttrsData(): fix handling attribute generation of empty required attributes even if their new value have been provided
    * Add argon2 passwords support
    * LSdefault / copyable helper: add copyable-no-btn helper class and fix translating messages
    * Add some helper functions: generate_uuid(), getRdn() and parentDn()
    * Code cleaning and quality improvement using PHPstan and pre-commit & CI to maintain it
    * Fix typos

 -- Benjamin Renard <brenard@easter-eggs.com>  Sat, 22 Jul 2023 13:38:40 +0200

ldapsaisie (4.0.0-1) unstable; urgency=medium

  * Add API feature
  * Add full import / export objets feature (see LSio & LSioFormat)
  * Global improvements on SUPANN support:
    * nomenclatures:
      * Update/clean nomenclatures
      * Normalize affiliations & civilites nomenclatures
      * rework on nomenclatures loading
    * Add support for new attributes :
      * supannMailPrive
      * supannAdressePostalePrivee
      * supannTelephonePrive
      * supannOIDCGenre
      * supannCodePopulation
      * supannEmpProfil
      * supannExtProfil
      * supannEtuDiplome
      * supannEtuElementPedagogique
      * supannEtuEtape
      * supannEtuRegimeInscription
      * supannEtuSecteurDisciplinaire
      * supannEtuTypeDiplome
      * supannRessourceEtat
      * supannRessourceEtatDate
    * add new components of supannEtuInscription attribute (SUPANN 2021)
    * add generate_supann_codeEtablissement_uai_nomenclature CLI command
    * add eduPersonUniqueId()
    * supannParseCompositeValue(): check global value integrity
    * Improve SUPANN attributes CSS
  * Add dynamic groups support (with cache members attributes)
  * Ensure attributes values are always an array in LSattribute & LSattr_ldap
  * Remove historic read right on all attributes of the hard-coded "admin" LSprofile
  * LSsession:
    * improve loadLSaddons() method
    * fix errors in changeAuthUser() and add logging messages
    * Fix/improve LSsession_13 errors (unconfigured/unknown custom action function)
    * checkAccess(): fix checking read right
    * Fix relationCanAccess() method and add debuging infos
    * displayAjaxReturn(): Adjust HTTP returned code on unsuccessfull request
    * getLSuserObject(): improve errors logging
    * setApiMode now trigger LSsession :: setAjaxDisplay()
  * LSldap: fix search & getNumberResult methods to use basedn from configuration instead of empty
    one.
  * LSldapObject:
    * make method _updateData() protected instead of private
    * fix/improve validateAttrData()
    * submitChange():
      * on new object, check if generated DN is not already affected
      * Add security check about isNew() return
      * fix error renaming LSobject
    * fix default $attrValues handling for updateObjectsInRelation/deleteOneObjectInRelation methods
    * clean update/validate form data code to fix handling just check mode
    * fix triggering after_modify event on create
    * getValue(): ensure return is array in case of attribute
  * LSrelation: add display_name_format parameter
  * LSattribute:
    * fix canBeGenerated() when default_value isn't a string
    * fix handling default_value in generateValue()
    * add default LDAP & HTML type (ascii / text)
    * addToForm(): fix checking user rights before adding/freezing it
    * fix handling current/provided data
    * addToForm(): fix freezing
  * LSattr_ldap:
    * shadowExpire:
      * fix getUpdateData()
      * fix to rounding method to avoid date change
    * compositeValueToJSON: use static instead of self keyword (to allow override)
    * Add pwdHistory
    * date: add note about date & time with micro-seconds
    * naiveDate: Add format option
    * password: fix verify method for Salted SHA2 passwords
    * sambaAcctFlagsparse_flags(): fix handling null|empty value
  * LSattr_html:
    * jsonCompositeAttribute: Add fullWidth parameter and improve responsive display
    * sambaAcctFlags: Add note about how setting default_value
    * valueWithUnit: fix handling zero value
    * select_box: add inline parameter
    * fix handling current/provided data
    * add $singleValue class variable to handle this common case
  * LSform:
    * fix displaying error in form in case of global error
    * fix displaying multiple errors on same field (on Ajax submit)
    * display fields errors in same order as triggered
    * fix reporting failure on Ajax submit
  * LSformElement:
    * getApiValue(): add $details parameter
    * getEmptyField(): do not set value to null (already set by fetchTemplate())
    * labeledValue:
      * fix/improve display
      * add translate_labels parameter and fix translating it
      * fix label translation on freeze view
    * date: fix getPostData() method
    * mail:
      * Move autocomplete feature in text parent class
      * fix duplicated email JS button
      * supannLabeledValue: Add validation of POST values from configured nomenclatures
    * image: fix bug deleting current image
    * password:
      * fix using LSldapobject getDisplayFData method instead of getFData
      * fix sendind email in create form
      * fix multiple sent email in some cases
    * supannLabeledValue:
      * fix unparsable value display
      * improve API mode
    * supannCompositeAttribute:
      * Add possibility to override parse/format value methods to handledifferent composite value
      formats
      * Add possibility to configure date components LDAP format
      * handle API/CLI mode
  * LSformRule:
    * add validate_values() method and use it to value rules
    * do not defined validate_one_by_one constant visibility
    * add possibility to throw custom exception to provide error details
    * Improve LSformRules to throw LSformRuleException with error details and only show default
      error message if rule does not trigger itself an error
    * Handle rule without options or message
    * Add numberOfValues rule
    * configure CLI parameters autocompleters
    * compare: code cleaning
    * add zxcvbn rule for password security check
  * LSsearch:
    * rename method setParamsFormPostData() to setParamsFromRequest()
    * setParamsFromRequest(): add check on parameters load from request data
    * setParamsFromRequest(): fix error handling filter parameter
  * LSaddons:
    * mail: Add test_send_mail CLI command
    * mailquota: improve error reporting
    * posix: fix generate_shadowLastChange()
    * samba: fix PHP warning about LS_SAMBA_UNIX_ID_POOL_DN contant
    * LSaccessRightsMatrixView:
      * handle LSform layout to ordering attributes
      * handle inherited rights from user LSprofiles
  * LSurl:
    * add request HTTP method check that must match with one of supported by handler
      (default: GET or POST)
    * add_handler: fix handling all params in case of multiple patterns
    * expose current request as static class variable
    * handle_request() now handle Ajax mode detection
  * LSurlRequest: fix fatal error on logging
  * LSconfig :: get(): add array casting (using ensureIsArray())
  * LSlang:
    * fix loading alternative lang files in local directory
    * fix handling locales that only existing in local directory
  * Authentication:
    * Add authz proxy authorization support
    * LSauthMethod_HTTP: fix logging HTTP_AUTHORIZATION parsing error
  * Interface:
    * Fix/improve/factorize search pagination
    * Fix/improve LSobject & LSsearch customActions code
    * Add LSdefaut copyable feature and use it in showTechInfo
    * routes.php: fix error calling LSsession::addErrorCode() vs LSerror::addErrorCode()
    * Add footer with LdapSaisie version
    * Add preprod CSS & SVG image to easily add a watermark
    * Improve/fix LSdefaut / LSsession / LSerror / LSdebug / LSinfosBox
    * Fix handling noRedirect parameter of LSobject's customAction
    * Fix handling disableOnSuccessMsg parameter on LSobject customActions
  * LStemplate:
    * detect and stop template displaying loop (trigger a fatal error)
    * fatal_error(): correctly handle Ajax mode
  * CSS:
    * Fix possibility to scroll the menu on responsive view
    * light-blue.css:
      * improve custom select display
      * fix handling ul.LSselect_selectable_object_types
      * fix handling LSformElement_valueWithUnit width
      * Fix displaying toggle-menu button in responsive view
      * fix tables style
    * Add LStable CSS class to make easier to create customized table
    * HTML buttons are now handle by default CSS (and light-blue one)
  * CLI:
    * show:
      * fix handling --raw-values parameter
      * add JSON output (with -j|--json parameters)
    * search:
      * add --all parameter to permit to disable pagination
      * add JSON output (with -j|--json parameters)
    * generate_lang_file: some improvements
      * add -F/--fix-utf8 parameter
      * add -K/--keep-unused parameter
    * Add import & export commands
    * Add test_form_rule command
  * Default config files:
    * add ending-line commas to avoid problem on editing
    * fix value_attribute ('dn' vs '%{dn}')
  * Debian packaging:
    * Make logrotate handling all log file in /var/log/ldapsaisie
    * remove deprecated php-file-csv-datasource dependency
    * add recommend on php-unidecode (for withoutAccents() improvements)
  * helpers:
    * Add ensureIsArray() helper and use it to make code more readable
    * withoutAccents(): use unidecode lib if available
    * Improve getCallableName()
  * Code cleaning and fix some PHP warnings
  * Add some debugging/trace messages
  * Doc:
    * Add note about how setting default_value
    * API relation method: use group objects from LSexample
    * Add anchors for API sections
    * Remove PEAR File_CSV_DataSource deprecated dependency
    * add IDs to sections
    * Add README file
    * Improve doc about attribute values validation
    * LSrelation: Make canEdit_attribute parameter more visible in case of simple relation
    * improve contrib / LSformRules section
  * Fix project URLs and list emails addresses
  * LSexample:
    * LSpeople:
      * fix sambaPwdCanChange as single-value
      * improve pagination config
      * personalTitle: remove Ms deprecated possible value
    * LSgroup: upgrade generate_gidNumber_withSambaDomainObject to generate_samba_gidNumber
    * Add Ppolicy support
    * Add restore_lsexample script

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 20 Dec 2021 14:11:51 +0100

ldapsaisie (3.0.2-1) unstable; urgency=medium

  * LSsession:
    * includeFile(): improve logging
    * loadLSprofiles(): restructuring code and improve comments and logging
    * loadLSobject(): auto declare simple PHP class for simple LSObject type if
      PHP class file not found
    * Improve error messages
  * LSauthMethod :: authenticate(): fix PHP warning
  * LSurl::redirect: fix handling absolute URL without protocol
    For instance "//localhost/phpldapadmin/")
  * light-blue.css: fix objet link color in list when table row is hover
  * LStemplate::getImagePath(): handle SVG image type/ext as preferred format
  * LSsearch:
    * Fix/improve logging
    * Remove buggy _hash cache parameter and replace it by an hash accessible key
    * getHash(): fix handling onlyAccessible parameter
  * LSsearchEntry: remove useless $hash private property
  * LScli: add --trace parameter
  * modify page: fix URL encode object DN in redirection URL
  * LSlang:
    * Fix warning about return not True
    * generate_lang_file CLI command:
      * Add Q choice in interactive mode to quit
      * Factor handling possible_values of select list&box
      * Improve logging
  * Handle redirections of old-style URL even if user not authenticated
  * Translate LSerror message at formating/diplaying time
  * Attribute types:
    * image: fix error on non-AJAX form when no file is submitted
    * date:
     * Add special_values parameter (also add for LSformRule::date)
     * Make today button working even if input is empty
     * Add clear button
    * select_box: fix double translation of labels on unfreeze field
    * select_list:
      * clean code of getPossibleValues() method
      * add get_possible_values parameter
    * shadowExpire: fix getUpdateData() method to return string values and
      add doc about this undocumented LDAP attribute type
  * LSformRule:
    * provide reference to LSformElement instead of copied value
    * imagesize: use self :: log_debug() instead of LSdebug()
    * date: add special_values parameter
  * LSldapObject:
    * getValue(): add $first and $default parameters
    * submitChange(): improve logging
    * add isValidTypeName() method and use it in LSsession::loadLSobject().
      LSobject type name must now only contains letter, digits, dash or underscore.
    * loadData(): explicitly list need attributes in LDAP request
  * LSrelation:
    * fix error codes prefix
    * check relation is correctly configured before using it to avoid some unreal warnings
      in case of misconfigured relation
  * LSformElement::getEmptyField() / LSformElement.tpl: Provide value index as $value_idx
    template variable
  * Improve POSIX and Samba support:
    * Improve LSaddons samba & posix
    * Add LSattr LDAP & HTML sambaAcctFlags type
    * Fix home and profile path formats in default configuration
    * Improve POSIX & Samba config in LSexample
  * LSaddons:
    * Add showTechInfo LSaddon
    * Improve LSaddons samba & posix
    * LSmail: add possibility to send HTML email
    * SUPPAN: add support for some attributes
    * LSaccessRightsMatrixView: handle customActions & customSearchActions
  * LSldap: fix/improve update() and getEntry() methods
  * Logging:
    * Improve logging on LSobject & LSattribute triggers executions
    * Extend LSlog_handler using LSlog_staticLoggerClass
    * Add warning on unknown key requested using __get methods
    * Add __toString() method to all common extendable PHP classes to make context logging
      easier
    * Log referrer URL in case of old-style URL redirection
  * LSform:
    * fix non-AJAX form submission (or form with input[type=file])
    * fix/improve handling config (especially, fix handling ajaxSubmit configuration parameter)
  * Fix handling "0" (zero string) value
  * Doc:
    * some fixes and improvements
    * Publish and complete contrib section about LSaddons, LSformElements and LSformRules

 -- Benjamin Renard <brenard@easter-eggs.com>  Wed, 30 Sep 2020 11:35:29 +0200

ldapsaisie (3.0.1-1) unstable; urgency=medium

  * LSformElement JS: fire change event on input field cleared
  * LSview: Fix validated URL generation
  * LSformElement :: boolean: fix translation of default labels
  * LSaccessRightsMatrixView: fix tab links URL
  * Fix subDn form style
  * LSsession:
    * fix/improve methods & doc about global preference parameters
    * fix handling subDn in recoverPassword feature
    * fix usage of self :: $topDn instead of self :: getTopDn()
    * add setSubDn() and log_exception() methods
  * LScli:
    * fix/improve handling LDAP servers with configured subDn
    * search command: remove buggy --subDn parameter
  * LSerror: fix PHP error
  * light-blue.css: globally improve style and use dark-grey for text
  * login / recoverPassword forms: fix logo style when is too large
  * LSmail: fix select mail style
  * LSerror: format error message at adding time to fix formatting error in
    specific cases.
  * LSlog: add TRACE log level
  * Add some debug/trace messages
  * dumpFile(): add $force_download and $filename parameters

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 13 Aug 2020 17:28:45 +0200

ldapsaisie (3.0.0-1) unstable; urgency=medium

  * A lot of code cleaning and PHP notices fixes
  * Introduce LSurl, a new URL routing manager for LdapSaisie: all pages
    and files served by the application is now outside the web root directory.
  * Define base URL in page templates by using public_root_url parameter
  * Add a CLI commands manager and the ldapsaisie CLI tool that currently
    permit to:
     * search/list, show, create, modify and remove LSobject
     * run procedure implemented in LdapSaisie (useful to run it as cron for
      instance).
  * Provide  BASH autocompletion mechanisms for ldapsaisie CLI tool
  * Replace generate_lang_file.php and generate_ldapsaisie.pot.sh script by
    CLI commands generate_lang_file and generate_ldapsaisie_pot
  * LSsession:
     * includeFile(): allow inclusion of external file with include path search
       support (see $external parameter).
     * deprecate redirect() method in favor of LSurl :: redirect()
     * move lang stuff to a dedicated LSlang class
     * keep trace of already loaded addon to avoid loading it more than once
     * add default LSprofiles with the name of authenticable object types
     * Move custom JS & CSS handling methods from LSsession to LStemplate
  * LSsearch:
     * fix handling approx parameter
     * fix possibility to specify a filter and a pattern (in the same time)
     * fix sorting by extraDisplayedColumns (on one setParams() call)
     * fix search customActions JS validation
     * add option to disable cache on customInfos
  * LdapObject:
     * add __toString() method to fix password recovery bug
       (report by Adrien Malgoyre <adrien.malgoyre@osupytheas.fr>)
     * change getDisplayName $spe parameter default value from empty string to
       null
    *  specify object type filter on loading data
  * LSrelation: globally rework and improve it
  * LSlog:
    - fix handling non-string message
    - console handler: fix stderr switching on message other than INFO / DEBUG
    - add loggers, filters and format message by handlers
    - some fixes and improvements on get_debug_backtrace_context() method
    - add enabled parameter for handlers
  * LSerror:
    - permit to control message escape method by adding a $escape parameter to all
      accessible methods
    - do not automatically close, wait user click on cross button
  * LSauth:
    - Add possibility to configure more than one LSobject type as user
    - Add possibility to handle duplicated identifier
  * LSauthMethod::CAS: Remove deprecated LSAUTH_CAS_SERVER_SSL_CERT parameter
    (since corresponding bogus setCasServerCert() method has been remove in
    phpCAS)
  * LSaddon:
    - mail: Improve mail forging method by using PEAR Mail_mime lib
    - LSaccessRigthsMatrixView: fix handling subDn LDAP servers configuration
  * LSattr_html:
    - mail: add autocomplete feature
    - select_object: Allow multiple type of objects selection
    - wysiwyg: adjust width
    - password: add confirmInput and confirmChange features and fix/improve send
      new password feature
  * LSform:
    - Avoid page scrolling on tab change
    - Add possibility to set callback to confirm/cancel event
    - Add CSS class on submitting form to permit visual adaptation
    - validate(): fix checking elements's errors after getPostData()
  * LSformRule:
    - imagesize: fix parameters handling problem
    - filesize: improve by avoiding to create a temporary file
    - email: fix handling domain parameter if its an array
  * Add ___() function to allow declaration of messages that will be translated
    at display time
  * LSimport: fix data removing on LSobject import
  * LSselect: Allow multiple type of objects selection
  * LStemplate:
    - Now offer some new methods moved from LSsession to handle custom JS & CSS:
      addJSscript(), addLibJSscript(), addJSconfigParam(), addHelpInfos() (renamed as
      addHelpInfo()), addCssFile() and addLibCssFile()
    - fatal_error() method now use LStemplate methods to assign variables and display
      template instead of directly use Smarty methods.
  * Interface is now responsive
  * Templates:
     * Globally rework on templates files to use blocks. Common basic templates
       files are now deprecated in favor to base.tpl and base_connected.tpl:
       accueil.tpl, blank.tpl, empty.tpl, top.tpl, bottom.tpl
     * Add var_dump template function helper
  * Rework on CSS and specially on light-blue.css to make it easily customizable,
    make handling more LdapSaisie components and make it more responsive.
    All other light-*.css file now only override some CSS variables to change base
    colors.
  * LSmail: fix/improve CSS
  * Fix historical typo in configuration variable name defaultJSscipts vs defaultJSscripts
  * Fix compatibility with Safari and add error popup on Internet Explorer

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 21 Jul 2020 14:13:30 +0200

ldapsaisie (2.4.1-0) unstable; urgency=medium

  * generate_lang_file.php : handle LSprofiles's label
  * Enable globalSearch by default
  * generate_lang_file.php : add ignore choice in interactive mode
  * LSsession : improving logging
  * Fix some translation problems by forcing the LANGUAGE env variable value

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 28 Oct 2019 13:03:01 +0100

ldapsaisie (2.4.0-0) unstable; urgency=medium

  * LSauthMethod_CAS : improve logging
  * Fix global search button display on Chromium
  * Fix some PHP 7 warnings
  * LSsearch :
     * Add nbObjectsByPageChoices parameter
     * Add $GLOBALS['NB_LSOBJECT_LIST_CHOICES'] parameter
  * Update light CSS styles
  * Add LSattr_ldap :: naiveDate
  * Add LSaddon LSaccessRightsMatrixView
  * LSprofiles : add possibility to configure them a label
  * generate_lang_file.php : fix some problems

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 25 Oct 2019 18:02:49 +0200

ldapsaisie (2.3-0) unstable; urgency=medium

  * LSform_rule :: differentPassword : Add missing LSform :: getValue() function
  * LSattr_ldap_password : Fix parameters pass to verify_function and add doc about it

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 01 Jul 2019 19:16:14 +0200

ldapsaisie (2.2-0) unstable; urgency=medium

  * LSattr_ldap :
    * date : Fix handling timezone
    * password : Rework/improve on password encrypt/decrypt method
  * Logging / errors reporting :
    * Globally rework and improve logging by introducing LSlog component
    * LSerror : fix error formatting when no error code is provided
    * LSform : warn on error loading LSformRule
  * LStemplate :
    * catch error on displaying/fetching templates
    * display error page on fatal error
  * Other improvements :
    * Force search pattern in global search
    * upgradeFromGit.sh : add gettext MO file change detection
  * New features :
    * Add LSformRule :: differentPassword
    * Add LSaddon mailquota

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 01 Jul 2019 17:08:08 +0200

ldapsaisie (2.1-0) unstable; urgency=medium

  * LSattr_html :: select_list : fix children classes overriding problem
  * Translations : clean code and improvements
  * Fix question on remove object page
  * Add reset search button
  * Fix global_search in multiple subDn context
  * Global search : add button to trigger search

 -- Benjamin Renard <brenard@easter-eggs.com>  Wed, 05 Jun 2019 12:41:54 +0200

ldapsaisie (2.0-0) unstable; urgency=medium

  * LSform :
    * Don't blame on missing required attribute on non-create form and
      if attibute is not present in form (or freezed).
    * Fix display bug when user has no right on the first tab
  * LSldapObject : fix removing old RDN value after object renaming
  * LSerror : fix PHP error handling
  * LSsession :
    * Fix setLocale()  parameter handling
    * Always log include errors
  * LSattr_html_maildir : fix PHP error in class contructor
  * LSformRule :: compare : fix find operator method
  * LSformElement_password : fix syntax error in getPostData() method
  * LSsearch : make purgeParams() and purgeCache() methods static
  * Add SSH LSaddon
  * LSauth : add afterLogout() trigger
  * LSauthMethod_HTTP :
    * add LSAUTHMETHOD_HTTP_LOGOUT_REMOTE_URL parameter
    * fix constructor to load config before handling it
  * LSattribute : add help_info_in_view parameter
  * LSsearchEntry : Fix 'unknwon property error' on accessing undefined attribute
  * Clarify recover password process by hiding form after the first step
  * Globally improve configuration information access to avoid duplicated code
    and PHP warnings.
  * Log all errors on developpement instance and with magic URL parameter LSdebug
  * Explicitly defined class methods visibility and upgrade PHP class constructor
    syntax. Solve static/non-static problems on some methods, parent constructor
    calls and 'Cannot make non static method' errors.
  * Increase NB_LSOBJECT_LIST default value to 30
  * Add globalSearch feature
  * Code cleaning / Fix some PHP notices

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 21 May 2019 12:17:40 +0200

ldapsaisie (1.8-6) unstable; urgency=medium

  * Fix bug on LSformElement :: text -> getDependsFields() when using modifiers
    characters
  * LSattr_ldap :: password : Add SHA256/SHA512 & SSHA256/SSHA512 support

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 04 Feb 2019 18:33:15 +0100

ldapsaisie (1.8-5) unstable; urgency=medium

  * LSattr_html :: select_list : add translate_labels option
  * generate_lang_file.php : fix infinity loop case in parse_addon_file()
    function
  * LSsearch :: extraDisplayedColumns : add escape parameter
  * Fix and improve LSformat PHP and JS implementations
  * Debian packaging : Add php-mbstring as Recommends (need since Debian 9)
  * LStemplate : Add triggers feature
  * LSformElement_textarea : fix clear btn/Grammalecte compatibility
  * Doc : Fix PDF export

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 01 Oct 2018 13:31:37 +0200

ldapsaisie (1.8-4) unstable; urgency=medium

  * LSldapObject : Change getPatternFilter() method to use common LSsearch lib
  * Security fixes :
    + Fix XSS problem using LSdebug/LSerror/LSinfos
    + Fix search pattern validation
    + Use escape smarty modifier to enforce security
  * LSsearch : Use strnatcmp instead of strcoll in sorting method
  * LSattr_html :: jsonCompositeAttribute : fix check required method
  * LSform :
    + fix empty submit button problem in some specific cases
    + add possibility to trigger on init/submit events
  * Fix moo keybinding
  * LSdefault : add getCurrentLang() method
  * Add LSattr_html :: wysiwyg
  * Add LSaddon exportSearchResultAsCSV
  * Fix default LSpeople configuration
  * LSauthMethod::HTTP : support multiple methods to retrieve user and
    password from HTTP server
  * Documentation :
    + Improve doc on LSattr_html::pre
    + Fix PDF doc export generation
  * Improve LSsession :: loadLSobject() error debugging
  * LSformElement::boolean : add true_label and false_label parameters
  * Add parameter to specify default view

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 13 Sep 2018 16:27:24 +0200

ldapsaisie (1.8-3) unstable; urgency=medium

  * Fix local file and custom theme handling

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 01 Jun 2018 13:59:17 +0200

ldapsaisie (1.8-2) unstable; urgency=medium

  * Add missing patch of 1.7-2 Debian package version missing on last version
  * Add nocache param on JS/CSS URL to avoid cache problems

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 22 May 2018 18:52:32 +0200

ldapsaisie (1.8-1) unstable; urgency=medium

  * LSdefault : encode LSjsConfig data in Base64
  * LSattr_html :
    + password : add get_mail_attr_function parameter
    + valueWithUnit : add translate_labels, store_integer and round_down parameters
    + jsonCompositeAttribute :
      + Add help_info and multiple parameters on components
      + Fix foreach syntax for retro-compat with old Smarty versions
      + fix JS clear value method
    + select_list :
      + add possiblity to use values of other attribute as possible values
      + fix warning on empty jsonCompositeAttribute possible values
      + fix invalid possible values on empty other attribute value
  * LSldap : fix/improve getAttr() method
  * LSformElement.js : do not handle sub li elements during initialization
  * Translation : fix error when trying to translate empty string
  * ldapsaisie-generate-lang-file (generate_lang_file.php) :
    + improve to handle new config parameters
    + add interactive mode
    + add output file feature
    + add short parameters

 -- Benjamin Renard <brenard@easter-eggs.com>  Wed, 16 May 2018 17:42:02 +0200

ldapsaisie (1.7-2) unstable; urgency=medium

  * Fix cron and doc about new tmp dir path

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 09 Jan 2018 03:16:01 +0100

ldapsaisie (1.7-1) unstable; urgency=medium

  * LSattr_html :: date :
    + Fix default form rule parameters
    + Add showNowButton and showTodayButton parameters
  * LSformRule_date : add error if no date format specified
  * Add generateFunction and additionalAttrs parameters for
    extraDisplayedColumns
  * LSatt_html :: jsonCompositeAttributeFix : fix possible values ajax loading
  * generate_lang_file.php : handle LSattr_html::jsonCompositeAttribute config
  * LSattr_html :: ssh_key : fix regex
  * Add LSformRule :: ssh_pub_key
  * Replace all ereg() function call by preg_match()

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 08 Jan 2018 20:27:15 +0100

ldapsaisie (1.6-1) unstable; urgency=medium

  * LSrelation :
   + Add create action button
   + Add create button even if user can't edit the relation
  * LSldapObject : fix foreach error in getObjectKeyValueInRelation() if attribute is empty
  * Review LSformRules parameters usage and documentation

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 22 Aug 2017 15:45:44 +0200

ldapsaisie (1.5-2) unstable; urgency=medium

  * LSformElement :: select_box : fix isValidValue() method in inherited context

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 27 Jun 2017 15:12:54 +0200

ldapsaisie (1.5-1) unstable; urgency=medium

  * IMPORTANT : Rename LSattr_ldap :: postalAddress to LSattr_ldap :: postaladdress
  * Add some basic CSS theme files
  * Use light blue CSS theme file as default
  * LSattr_html :: postaladdress : improve it and add default configuration value
  * LSformElement_select : fix bug when possible_values params is unset or empty
  * Add cron file to purge old temporary files
  * Doc :
   + Improve doc on postalAddress attribute type
   + Fix <citetitle> HTML element style

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 26 Jun 2017 18:37:39 +0200

ldapsaisie (1.4-2) unstable; urgency=medium

  * Add new type of HTML attribut : jsonCompositeAttribute
  * LSrelation :
   + improve and make it easy to configure simple relation
   + add possibilty to handle relation with multiple key values
  * Fix some PHP 7 compatibility errors

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 11 May 2017 15:32:16 +0200

ldapsaisie (1.4-1) unstable; urgency=medium

  * LSobject / customAction : add noRedirect parameter
  * Add button to permit user to refresh his access rights
  * Fix problems when onlyAccessible parameter is set to True in LSobject configuration file
  * Add parameters to handle onlyAccessible LSsearch parameter for :
   + LSsession / subDn
   + LSattr_html :: select_list
   + LSattr_html :: select_object
  * LSattr_html :: select_object : Fix handling filter parameter
  * Fix view access to specific autorized LSobject even if LSobject type is not in menu

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 23 Mar 2017 16:42:25 +0100

ldapsaisie (1.3-2) unstable; urgency=low

  * LSsearch : Add visibleTo parameter to extra displayed columns
  * LSldapObject : Add helpInfo parameter for customActions
  * LSmail : add possibilty to set some display options from JS
  * LSaddon posix : Fix hard-coded parameter information and add comment for newest functions
  * LSauthMethod::HTTP : Add parameter to disable checking login/password by LDAP auth challenge
  * LSattr_html :: select_list : add values_attribute parameter
  * generate_lang_file.php : some improvements
  * upgradeFromGit : Clean template cache during upgrade
  * LSformRule :: date : Fix mktime return check
  * LSaddon / view : permit to hide a LSaddon view in menu
  * Some fixes

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 02 Feb 2017 12:15:58 +0100

ldapsaisie (1.3-1) unstable; urgency=low

 * LSaddon : Permit LSaddon to provide ajax function
 * LSaddon : Permit LSaddon to provide a custom view
 * LSsession : improve refresh
 * LSsearch : add formaterFunction parameter for extraDisplayedColumns
 * Translation :
   + Improve generate_lang_file.php script :
     + Initialize LSsession before parsing for messages permiting to
       resolv some case of complex configurations
     + Make it callable from anywhere
     + Automatically imports existing langs files
     + Add parsing of LSaddons
    + Update french translation fixing some missing strings
 * Automatically imports existing langs files
 * Doc : Fix compatibility with old version of Docbook DTD
 * Interface : Fix CSS vertical alignment of #status

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 21 Aug 2015 18:06:09 +0200

ldapsaisie (1.2-1) unstable; urgency=low

 * Translation : manage message strings in templates files
 * Add import feature
 * Add LSformRule_callable
 * LSsession : Catch initialization exceptions
 * Fix Smarty default path to default smarty3 path of Debian package
 * LSldapObject : Fix method to get rdn value
 * LSformElement :
  * valueWithUnit : improve floatint number display and add parameter for formatting control
  * select_list / select_box : permit to put possible values in labelled group

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 30 Jul 2015 16:55:06 +0200

ldapsaisie (1.1-6) unstable; urgency=low

  * Global :
    * Allow a sequence of filters in LSobjects profile configurations (Thank B.Dauvergne)
    * Redefine globals on per LDAP server basic (Thank B.Dauvergne)
    * Add global parameter defaultCSSfiles
  * LSsupann addon : Convert all defines to globals (Thank B.Dauvergne)
  * LSattr_html :: password : Add possibility to generate password using pwgen command
  * LSformElement :: select_object : Add ordered feature
  * LSattr_ldap :: boolean : Add default TRUE/FALSE values
  * view.tpl : use double quotes instead of simple in HTML

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 09 Feb 2015 11:26:00 +0100

ldapsaisie (1.1-5) unstable; urgency=low

  * Improove generate_lang_file.php script
  * Add support of supannActivite attribute
  * LSldap : fix combineFilters() method
  * LSldapObject : fix getObjectFilter()
  * Fix fr_FR.UTF8 translation

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 05 Jan 2015 16:58:18 +0100

ldapsaisie (1.1-4) unstable; urgency=low

  * LSaddons :: supann :
    * Complet redesign and improve
    * Redesign LSformElement : supannLabeledValue / supannRoleEntite
    * Add LSformElement : supannEmpCorps / supannEtuInscription / supannCompositeAttribute
  * LSsearch : fix bug in sort direction
  * LSsession :
    * Fix bug resolving user's LSprofiles
    * Add useUserCredentials parameter
  * LSform :
    * block form validation if element's errors is defined
    * preserve current tab between view, modify and create pages
    * LSformElement :
      * add no_value_label parameter
      * JS : permit form element to provide custom clean value method
      * provide class name of element in template variables
  * LSerror : Add PHP error handler
  * Function getFData() : try to catch error casting data to string

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 27 Nov 2014 10:35:22 +0100

ldapsaisie (1.1-3) unstable; urgency=low

  * Doc :
    * Add method to export documentation in EPUB format
    * Some fix
  * LSsearch :
    * Fix sort feature to be case insensitive
    * Add customAction feature
  * LSformRule :: alphanumeric : Add parameter to allow accent
  * LSformat : Full support format in JS and improve substr
  * Add common function now()
  * LSattr_html :: select_list : Add sort feature
  * LSformElement :: select_object : Add sort feature

 -- Benjamin Renard <brenard@easter-eggs.com>  Wed, 08 Oct 2014 17:26:30 +0200

ldapsaisie (1.1-2) unstable; urgency=low

  * New features :
    * Add LSattr_html::select_box
    * LSformRule :: password : Added minValidRegex parameter and use preg_match() function instead of deprecated ereg()
  * Bugs fixed :
    * LSformElement :: text : fixed bug breaking autoGenerateOnModify feature
    * JS / getFData() : fixed bug permitting to support than method() return array of string
    * LSform : fixed JS bug leaving previous errors messages in form
  * Improve debian rules file

 -- Benjamin Renard <brenard@easter-eggs.com>  Mon, 30 Jun 2014 13:53:20 +0200

ldapsaisie (1.1-1) unstable; urgency=low

  * New features :
    * Add possibility to add extra displayed columns in object search result
    * Add inarray LSformRule
    * LStemplate : add registerFunction() method permitting to register function usable by in template
    * LSform.js : add method getInput() and use it in method getValue()
    * LSformElement_text : use getValue/getInput of LSform object instead of LSformElement_text to permit value generation with more form element type
  * Bugs fixed :
    * Core : Fix error reporting
    * LSldapObject : remove unsed variable $submitError fixing object's after_modify trigger bug
    * LSattr_html_select_list : Use more robust inarray LSformRule instead of regex
    * LSrelation : fixed refresh bug when multiple relations content the same object
  * Doc :
    * Added informations about LSattr_html_valueWithUnit
    * Added details about regex format using in regex check_data

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 17 Jun 2014 16:18:01 +0200

ldapsaisie (1.0-11) unstable; urgency=low

  * Add ldapsaisie-generate-lang-file command
  * LSformElement_select_object : Added filter parameter
  * Bugs fixed :
    * LSformElement_password : fixed mail_attr parameter reading method
    * Fixed some vales check to globally permit 'zero string' value
    * LSsearch::setParams() : fixed attributes setting
    * LSldapObject::listObjects() : removed 'dn' as attribute asked in LSsearch

 -- Benjamin Renard <brenard@aconit.easter-eggs.fr>  Wed, 27 Nov 2013 18:26:55 +0100

ldapsaisie (1.0-10) unstable; urgency=low

  * Added documentation about LSformat modifiers
  * LSattr_html_select_list : fixed bug with number key value
  * generate_lang_file.php : Added inclusion of local directory
    and --additional-file-format parameter
  * LSldap : fixed problem with empty attribute on adding
  * LSsearch : Fixed bug on no attributes specifies in config for LSsearch
  * LSauthMethod::anonymous : Added parameter LSAUTHMETHOD_ANONYMOUS_DISABLE_LOGOUT
  * LSaddon :: samba : added some new functions to generate attributes values
  * Added new LSattr_ldap :: shadowExpire

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 26 Jul 2013 12:23:20 +0200

ldapsaisie (1.0-9) unstable; urgency=low

  * Fixed config.inc.php problem on upgrade

 -- Benjamin Renard <brenard@easter-eggs.com>  Tue, 09 Jul 2013 13:56:24 +0200

ldapsaisie (1.0-8) unstable; urgency=low

  * Added LSaddon::phpLdapAdmin
  * Disabled Apache directory listing and force FollowSymLinks option

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 28 Jun 2013 17:28:25 +0200

ldapsaisie (1.0-7) unstable; urgency=low

  * LSsearch : Added searchLSformat and approxLSformat parameter for searched attributes
  * Added local LSaddons and LSauth directories
  * Moved local directory in /usr/local/ldapsaisie

 -- Benjamin Renard <brenard@easter-eggs.com>  Fri, 28 Jun 2013 12:09:23 +0200

ldapsaisie (1.0-6) unstable; urgency=low

  * LStemplate : fixed template missing warning caused by Smarty3 peculiarities
  * LSformElement_password : added clearView and clearEdit parameters
  * LSaddon::posix : added generate_memberUidFromUniqueMember() function

 -- Benjamin Renard <brenard@easter-eggs.com>  Thu, 27 Jun 2013 15:08:16 +0200

ldapsaisie (1.0-5) unstable; urgency=low

  * Manage CSS path with LStemplate
  * Update documentation
  * Fixed last release bugs

 -- Benjamin Renard <brenard@zionetrix.net>  Wed, 19 Jun 2013 04:04:39 +0200

ldapsaisie (1.0-4) unstable; urgency=low

  * Added image.php to permit fully dynamic image path (including via JS)

 -- Benjamin Renard <brenard@zionetrix.net>  Wed, 19 Jun 2013 02:20:39 +0200

ldapsaisie (1.0-3) unstable; urgency=low

  * Manage image path with LStemplate (that permit local image)

 -- Benjamin Renard <brenard@zionetrix.net>  Wed, 19 Jun 2013 00:58:51 +0200

ldapsaisie (1.0-2) unstable; urgency=low

  * Added LStemplate component permited template customization
  * Handle PHP error messages
  * Remove noisy files
  * Improve LSexample (shema, LDIF and slapd configuration)
  * LSformElement::valueWithUnit : sort units params before using

 -- Benjamin Renard <brenard@zionetrix.net>  Mon, 17 Jun 2013 23:42:58 +0200

ldapsaisie (1.0-1) unstable; urgency=low

  * Initial Debian release

 -- Benjamin Renard <brenard@zionetrix.net>  Tue, 31 Mar 2013 05:25:12 +0100
