-> view/select => change to use it (php+template+js)
-> LSattr_html_select_object/LSattr_html_select_list => change to use it
-> LSldapObject :
-> change listObjectsName() / searchObject() / getSelectArray() / listObjects()
-> comment search() function
-> Add triggers to clean cache
-> LSpeople : Update search config
-> LSsession : Change function to use it :
- getSubDnLdapServer()
- loadLSprofiles()
- LSrelation : Deplace error codes declaration from LSsession in class file
- LSldapObject :
-> change getObjectFilter() / getLabel() / getSubDnValue() / getSubDnName() for can call then staticaly
-> Add afterModify() function and trigger
-> Change getObjectFilter() / listObjectsInRelation() to use Net_LDAP2_Filter
-> Add __get() function
-> Move one LSerror code for LSrelation function from LSsession class file
-> Add a global variable to save cached data ($cache)
-> Change subDn and subDnName access methods
- LSauth : Move LSsession auth procedure in a dedicated class
-> LSsession : Change startLSsession() to use it
- LSsession :
-> Add getRootDn() function
-> Fix getTopDn() to return root DN if no topDn is currently defined
-> Create dedicated functions to support recoveryPassword mecanism :
- recoverPasswd()
- recoverPasswdSendMail()
- recoverPasswdFirstStep()
- recoverPasswdSecondStep
-> Customize LSdebug return and display (php+js)
-> Clean unused error codes
-> Move LSrelation error codes
-> Comment ajax method
-> Déplacement des définitions des constantes de chemins et
de gettext dans ce fichier
-> Déplacement des ini_set() dans ce fichier
- LSdebug :
-> La variable d'activation devient la constante LSdebug
-> Le tableau de stockages des messages s'appel maintenant
LSdebug_fieds
- LSconfig : Ajout d'une classe gérant la configuration du
projet qui servira d'abstraction à la configuration
- LSsession :
-> Suppresion de la méthode loadConfig() et ajout de la
méthode startLSconfig()
-> Ajout de la méthode startLStemplate()
-> Ajout du commentaire à la méthode getTopDn()
-> La méthode vérifie l'existance de la classe portant le nom
du type d'objet avant de lancer le chargement
-> Utilisation LSconfig pour l'accès à la configuration
-> Ajout de la fonction __() : fonction de traduction utilisant à la fois le tableau globale LSlang
et gettext pour traduire les messages qu'on lui passe.
-> Ajout de la fonction tr() : fonction utilisable depuis les templates pour traduire une variable
smarty.
- LSexample :
-> Utilisation de la traduction via __() plutôt que gettext
- LSdefault :
-> Creation d'un template pour la gestion des outils apporté par LSdefaut (LSerror, LSdebug, ...)
-> Ajout de méthode de gestion de LSlang
- LSsession :
- Login/RecoverPassword : Utilisation du template LSdefault
- Gestion de la traduction :
-> Ajout de la méthode setLocale() définissant la langue de l'interface.
-> Ajout des méthodes getLangList() et localeExist()
-> Le session_start() se fait dans l'initialize désormais (pour gérer la langue même déconnecté)
-> Méthode setLdapServer() : rédifinition de la locale avec setLocale()
-> Ajout de LSlang : outil JS permetant dans l'interface de choisir sa langue
- Config :
-> De manière général, il ne doit plus y avoir d'appel de la fonction _() dans les fichiers de config, les
chaînes sont données non traduite, et la traduction se fera lors de leur utilisation.
-> Tout les labels et messages déclarer dans la config, est maintenant traduit du coté code PHP avec la
fonction __()
-> L'enconding et la langue sont désormais géré indépendament
- ViewList : Les noms des boutons (New,Refresh,...) ne sont plus traduit du côté PHP mais dans le template à
cause de leur mise en cache.
- Documentation :
-> Mise à jour relative en changement de paramètres de configuration
-> Ajout des informations sur les variables et constantes indépendantes du fichier de configuration config.inc.php
-> Mise à jour du fichier INSTALL avec les informations de la documentation
un troisième paramètre : un LSformat du filtre de recherche composé avec la valeur
du première argument.
- LSsession : Ajout de la possibilité de définir le filtre de recherche LDAP de l'objet
utilisateur d'une personne se connectant. (authObjectFilter)
- config.inc.php : Ajout de la possibilité de s'authentifier avec son mail.
pour ne pas obliger sa recopie.
- LSlog : Début d'ecriture d'une possibilité de fichiers de logs
- Ajout d'une fonction de test validPas() retournant false
- LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir.
Il fonctionne en frontend du LSaddon Maildir.
- LSsession :
-> Ajout de la méthode statique includeFile() utilisé à la place de la fonction
php include_once()
-> displayAjaxReturn() : Gestion du LSredirect
-> Ajout d'un require_once() sur functions.php
- LSaddon::FTP : Ajout de la fonction renameDirByFTP()
- LSaddon::Maildir :
-> Ajout de la fonction renameMaildirByFTP()
-> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour
pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé
- LSdefault :
-> LSdebugHidde() devient hideLSdebug()
-> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la
LSerrorsBox
-> displayErrorBox() : plus de timeout d'affichage des erreurs
-> checkAjaxReturn() : Gestion des LSredirect
- LSform :
-> plus de LSformRedirect : utilisation de LSdefault::LSredirect
- modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des
erreurs non-bloquant sur la page suivante.
- LSerror :
-> Utilisation d'une variable de session pour stocké les erreurs
-> Ajout de la méthode resetError() exécutée à chaque exécution de
LSerror::getErrors()
- LSldapObject :
-> Correction de la gestion des binding
-> Event before_modify : bloquant en cas d'échec
-> Event after_modify : non-bloquant en cas d'échec
la possibilité de laisser à l'utilisateur le choix du format de nom des subDn.
De plus, le paramètre du basedn de recherche des LSobjets est renomé :
-> topDn => basedn
- config.inc.php : Paramètre inutile supprimé
j'espère pour voir bientôt ajouté au SVN. Cela me fait mettre le doit sur
quelques problèmes de nommages, d'organisation que j'ai corrigé sur le fait :
- Concepte de level était enfaite celui de subDn : seule le nom subDn doit
rester.
- Le concept de LSrights dans LSsession et config.inc.php était mal nommé.
Il correspond plus à la définition de LSprofile en réalité. Je l'ai renommé
ainsi.
- Les paramètres authobject et authobject_pwdattr n'étaient pas très représentatif.
Je les ai renommé en authObjectType et authObjectTypeAttrPwd.
- Templates :
-> Correction du template default dans le but de changer la couleur bleu dominante juger trop
flashy :). Au passage j'ai dégagé l'image de fond de #main utilisé pour colorer le menu :
cette méthode est moche et quitte a à faire du moche je préfère utiliser un vulgaire tableau
que des bidouille de ce genre.
-> Création d'un logo pour LdapSaisie qui vient remplacer le logo Easter-Eggs utilisé jusqu'alors.
-> Ajout d'un favicon.
- LSerror :
-> J'ai déplacé les definitions de code d'erreur dans le contexte concerné (càd dans
les fichiers de définition des classes) (Feature Request #1757)
-> J'en ai profité pour renommer les codes d'erreur avec un prefixe pour eviter les doublons
-> J'ai donc modifié une grande partie des fichiers pour changer les codes erreurs utilisés
-> Ajout d'une méthode getError() utilisé par getErrors()
-> Modification de la méthode stop()
- LSformElement_password :
- Correction d'un bug dans la génération des mots de passe dans un formulaire de création d'objet.
- Ajout d'une possiblité de choisir le type de hashage du mot de passe stocké dans l'annuaire
(Feature Request #1756)
- Traduction des commentaires
- LSattribute : Ajout des vérifications dans les méthodes de la classe lors de l'utilisation des objets
html et ldap.
- LSsession :
-> Renforcement des méthodes faisant des inclusions d'autres fichiers php.
-> Les profils utilisateurs sont maintenant scalable. Il est possible
de créer autant de profil voulu avec autant de droits alloués spécifiques
-> LSsession :: whoami() et LSldapObject :: whoami() retourne la liste des profils
correspondants à l'utilisateur connecté
-> Les méthodes ont été modifiées pour prendre en compte cela en faisant la somme
des droits de chaque profils :
- LSsession :: canAccess()
- LSsession :: relationCanAccess()
- LSsession :: loadLSrights()
- LSattribute :: myRigths()
-> LSsession :: isAdmin() a été remplacé par isProfile() capable de redonner la meme
information mais pour tout profil dont le nom est passé en paramètre
-> LSsession :: loadLSrights() : gère la délagation de droits sur les objets répondant a un
filtre particulier ou dont un certain attribut possède une certaine valeur
-> LSexample :
-> Ajout d'un attribut lsGodfatherDn pour la délégation de droit objet par objet
-> Retravail des objets d'exemple pour faire en sorte de coller plus avec une réel
utilisation
- LSmail :
-> Le sujet n'était pas encore paramètrable d'avance : c'est fait.
-> Adpatation index_ajax.php
-> Ajout d'une méthode JS d'export des infos du mail saisie
- LSformElement_password : Ajout d'une possibilité d'envoie du mot de passe
par mail lors de sa modification
- LSattribute : Ajout d'un binding applicatif pour l'execution de fonction/
méthode lors d'évenement (a agrémenter)
- LSldapObject : Utilisation des evenements pour le binding onModify des
attributs
- LSaddons :: Mail : Ajout d'un header 'To:' systématiquement.
- LSform : Ajout de la méthode JS getValue()
-> Ajout d'une configuration Multi-niveau utilisant LSeecompany
- LSeecompany :
-> Refonte
-> Définition dans le schéma LSexample
- LSldapOject :
-> container_auto_create : auto création des containers de LSobject dans les
LSobjects définissant les subDn
-> Ajout de trigger :
-> Avant suppression beforeDelete() et après afterDelete()
-> Gestion des LSrelations définies et ayant une méthode remove_function
définie
-> Après la création : afterCreate()
-> auto création des containers de LSobject dans les LSobjects
définissant les subDn
- LSldap :
-> Nouvelle méthode getNewEntry()
-> méthode getEntry() : utilisation de getNewEntry() en cas de nouvelle entrée
- create.php :
-> Plus de redirection vers la fiche de l'objet après création si des erreurs
sont définies.
- LSexample :
-> Ajout de l'objectClass LSeecompany
-> Adaptation du fichier ldif
-> création d'un fichier functions.js pour extraire la partie LSdebug de
LSdefault.js.
-> création d'une méthode getFData() sensiblement la même quand PHP
- LSformElement_text : Création d'une possibilité d'auto-génération en JS de la
valeur à partir des autres champs du formulaire.
- LSconfirmBox && LSsmoothbox :
-> ajout d'une méthode positionWhenScrolling() pour le placement de la box
lors du scroll
- LSconfirmBox : Correction d'un bug IE à la fermeture
- Ajout d'un LSformElement Date :
-> includes/class/class.LSattr_ldap_date.php
-> includes/class/class.LSattr_html_date.php
-> includes/class/class.LSformElement_date.php
-> includes/class/class.LSformRule_date.php
-> includes/libs/jscalendar
-> includes/js/LSformElement_date.js
-> includes/js/LSformElement_date_field.js
-> templates/images/calendar.png
- LSformElement : Ajout d'une méthode exportValues() utilisée par
LSform::exportValues()
- LSform :
-> Utlisation de LSformElement::exportValues() pour exporter les données
du formulaire
-> Méthode setValuesFromPostData() est désormais invoqué à chaque invocation
de la méthode validate()
- LSformElement_select_object : Ajout d'une méthode exportValues() pour coller
au nouveau mode d'exportation des données de l'annuaire
- LSldapObjet : Correction d'un bug potentiel (foreach sur une variable à false)
dans la méthode updateData()
- LSsession :
-> Méthode addCssFile() & addJSscript() : ajout d'un paramètre pour la
possibilité d'inclusion de fichier externe (hors des dossiers par défaut
ex: les libs)
-> Utilisation de la Constante LS_CSS_DIR au lieu d'une chemin en dure
-> Paramètrage JS depuis Php :
-> Méthode addJSconfigParam() : ajouter un paramètre de config. JS
-> Méthode displayTemplate() adaptée pour
-> top.tpl : adapté pour afficher une div contenant les paramètres JSONisés
-> LSdefault.css : adapté pour ne pas afficher la div contenant les params.
-> LSdefault.js : récupère les informations et Initialise une variable
javascript LSjsConfig
- LSconfirmBox : Correction d'un debug : "delete this;"
-> config.inc.php :
- Deux fichiers js à include au lieu d'un seul
- Suppression du Debugger (Debugger.js incompatible)
- LSformElement_image : refonte de l'affichage
- Templates :
- LSview-action : Passage aux balises ul/li plutôt que p/a
- select.tpl : correction d'un bug concernant la sélection du subDn actif
- Création de LSconfirmBox : module de confirmation
- JS :
-> LSform.js : Modularisation du code :
- LSformElement_select_object.js
- LSformElement_image.js
- LSformElement_password.js
- CSS :
-> Modularisation :
- LSselect.css
- LSrelation.css
- LSrelation :
-> Refonte du mécanisme JS
-> Modification de l'affichage
-> Ajout d'une confirmation à la suppresion (LSconfirmBox)
- LSsmoothbox : Refonte profonde
- view.php :
- Correction d'un bug : la colone action était vide lors de la mise en cache
par LSselect.
- LSldapObject :
- getDisplayValue() : ajout d'une possibilité de l'affichage du subDn en plus
du nom
- LSsession : ajout d'un méthode haveSubDn()
- JS :
- Modularisation de la verification d'une requete Ajax
-> LSdefault : nouvelles méthodes :
-> checkAjaxReturn() : Pour les retours JSON
-> ajaxDisplayDebugAndError() : Pour les retours HTML (Type LSselect)
-> getSubDnValue()
-> getSubDnName()
- LSview/LSselect : utilisation de la méthode getSubDnName() plutôt que le
code en local
- config.inc.php :
-> Modification du paramètre ldapServer['subDn']
-> Ajout du paramètre LSaccess pour la composition du menu hors config subDn
-> Suppression ldapServer['LSobjets'] : suppression du pré-chargement
(cf.ci-dessous)
- LSsession :
-> Rédéfinition de la méthode de construction du menu de l'interface
(bug #1665)
-> Mise en cache de LSaccess
-> top.tpl : le bouton de rafraichissement subDn devient un bouton de
rafraichissement génerale de LSsession (config / LSaccess / subDn)
-> Suppression du pré-chargement des objets et donc de la méthode
loadLSobjects()
-> Ajout d'une méthode in_menu() utilisé entre par la méthode canAccess()
pour valider les accès aux objets
- create.php : Correction d'un bug de chargement d'objet.
- config.error_code.php : Correction bug encodage
- index_ajax.php :
-> Correction de bugs de chargement d'objets
-> Suppression du code de gestion des retours d'erreur multiplié et inutile
-> Le choix du niveau est maintenant dans le menu de gauche
-> Le logo est cliquable (retour à l'accueil)
- Mise en cache des subDnLdapServer (sous-niveaux)
- Modification majeur sur le module de recherche :
-> Refonte du mécanisme de la page
-> Ajout du cache de recherche (gain notable de rapidité)
-> Ajout d'un message quand la recherche ne retourne aucun résultat
-> Possibilité de faire une recherche récursive
- Personnalisation rendu possible du nom donné au concepte de niveau
- LSldapObject : Correction d'un bug dans la méthode listObjects() : Warning
lors de certains retours vides.
- LSsession :
-> Création de méthode pour centraliser les tests d'activation des caches
-> Proprité ajax_displate : permet l'affichage des debugs à travers les
requêtes ajax du type 'update'
- LSsmoothbox : Modification de l'affichage
- Externalisation de la fonction generatePassword()
- LSform : ajout de la méthode setPostData()
- LSsession_login.js : externalisation du code pour masque la sélection du niveau
- LSformRule : externalisation de la fonction checkMail()
- debug : gestion de l'affichage de dump d'objet
- Mise à jour de LSexample
- Ajout du principe de relations entre type d'objets (LSrelation)
Exemple : Utilisateur appartenant à un groupe
- Ajout du LSformElement_select_object :
Sélection d'un objet à travers une interface plus conviviale qu'une liste
déroulante.
- Mise en place des templates Smarty
- Adaptation du code au templates Smarty
- index_ajax.php -> Code php des réponses Ajax de l'interface
- includes/js -> Partie JavaScript (Mootools) de l'interface