[cleanup] improved a bit aspect handling
[cleanup] minor stuff
[evol] introduce item 'full-handle' and reorganize command arguments, and renamed commands
[cleanup] code reorganization
[fix] family display was broken
[cleanup] minor simplifications in LdapObject
[cleanup] simplifications thanks to default config
[fix] corrected object default config
[fix/evol] ensure a shadow/object/aspect is not cast(/post-cast) multiple times, and btw correct the raise_error() method
[fix] corrected setup comment
[cleanup] includes reorganization
[fix] added missing start of YAML document in MP shadow config files
[evol] added default config and simplified MilkyPond shadow config (and minor other changes)
[fix] corrected aspect schema
[fix] check for dependency aspects for an aspect was missing
[fix] check for needed aspect for an object was subject to crash
[evol] try harder to find intermediate objects in tree
[evol/fix] fixed creation hooks call, hooks->plugins with hooks and simplified hooks, added plugin parameters in config and updated aspect/fs
[fix] check better if a field value has changed or not
[evol] apply password hash if requested
[fix] ensure shadowwalker options have a proper default
[evol] improve tree display, and move code out of shadowwalker
[evol] don't try to find raw item object if it is already known, be lazy
[fix] try harder to find item name
[fix] also print aspect handle when handles are requested
[cleanup] internal rework #5
[cleanup] internal rework #4
[cleanup] internal rework #3
[cleanup] internal rework #2
[cleanup] internal rework #1
[cleanup] improve elements classes generation (with a few more checks)
[evol] rework how object/aspect classes are generated and ensure each shadow materials is in a proper container (to allow loading multiple shadows)
[fix] renamed object description() method which conflicted with the quite common attribute of the same name
[fix] corrected hooking methods
[fix] correct shadowwalker show command usage
[fix] corrected aspect schema ('associate_unclaimed_attributes' parameter was missing)
[cleanup] move default empty hooks aside and include them (and share them between LdapObject and LdapAspect)
[cleanup] s/mapper/shadow/ for consistency
[fix/evol] corrected before delete hook and added complete hook support for objects
[fix] use new recursive delete with hooks in shadowwalker
[fix] aspect hooks loading was broken, and moved file loading into the Config class
[fix] fixed aspects default hooks
[evol] completed aspect hooks panoply
[cleanup] Shadow load_object() -> add_object() for consistency
[evol] improve config #14 (validate global and shadow config, and removed shadowwalker's stuff from the general classes)
[evol] improve config #13 (reorganized config/schema loading/validating, transform Controler into Shadow, and began reworking things to get a real Shadow view)
[evol] fix and improve before hooks for aspects
[cleanup] hook_mod -> hook_modify
[evol] improve config #12 (improved object definition check #3 + added aspect definition check)
[evol] improve config #11 (improved object definition check #2)
[evol] improve config #10 (improved object definition check)
[evol] improve config #9 (preliminary work to check object definition against schema)
[-] todolist update
[evol] improve config #8 (shadow selection support)
[evol] display family members optionally in show command (can be lengthy)
[evol] improve config #7 (move shadow loading in the Controller)
[evol] improve config #6 (rename config files)
[-] cleanup
[evol] improve config #5 (check for missing foreign object in relations)
[evol] improve config #4 (check for missing aspect)
[evol] improve config #3 (move non-framework translations in config dir)
[evol] improve config #2 (aspects config is separated)
[evol] improve config #1 (objects+relations config is separated)
[fix] correct item display name when a raw object is not recognized
[-] cleanup: removed silly optional_classes support, as aspects handle this nicely
[-] todolist update: fields containing a DN should be handled by relations
[evol] improved code for objects recognition, created display helper for raw items, and added family items display support
[fix] forgot to update todolist
[evol] recognize objects out of search result, and display them properly
[evol] added search command (working, but items are not recognized yet)
[evol] added aspect dependency support
[evol] move all activeldap workarounds away, and properly manage operational attributes (using schema instead of a hardcoded list)
[evol] move all item modification into LdapObject, clean things a bit, and use this code for creation too instead of the partial modification support needed to add the MUST attributetypes, this is more flexible
[fix] inverted logic when testing relation existence
[fix] for non-enumeration association the object was not loaded when requested with the target() method, so now test existance with exists?() instead which forces loading
[fix] move missing attribute check into the save() method to ensure it is done after hooks (which can modify attributes and change the result of the test)
[fix] fs aspect primaryGroup corrected, and now handle single-valued relation data, and btw disallow adding the same value multiple times
[fix] silly syntax error
[evol] begining of the error abstraction with a simplied exception list, with translation using gettext (no translations yet)
[evol] preliminary (dirty) work on hooks
[fix] code cleanup and a few fixes
[evol] improved the 'tree' command a bit (limit to subtree, and allow listing all objects)
[evol] todolist update
[evol] 'create' action now ask for a location (which icurrently s a parent object)
[evol] added short version for global program options
[evol] added option for recursive items deletion
[evol] added aspects modification support, complain about missing fields (added for creation too), and better list present (non-empty) attributes
[fix] forgot an error condition in latest commit
[evol] improved 'list' command
[evol] added a basic 'create' command, allowing to set fields with a single value to ensure required fields are not missing; btw ensure the objectClass attributetype is never considered as a field
[fix] LdapObject: correct human_name() and description() to not fail when no :name_attribute and :desc_attribute is defined
[fix] corrected workaround for activeldap#26720 which was broken for creation
[evol/fix] added uploading of files for binary fields, fixed broken '-=' operator in the 'mod' command, fixed another index bug for the 'show' command, and modified the show commmand to display binary fields without newline (usefull for pipes or redirections)
[evol] the 'list' command now display the number of items
[evol/fix] added 'del' command, added command usage information (using cmdparse subclass was necessary), and fixed a parsing mistake in the 'show' command with field and index