diff --git a/src/css/default/LSaccessRightsMatrixView.css b/src/css/default/LSaccessRightsMatrixView.css index 69ca79bd..32fa1902 100644 --- a/src/css/default/LSaccessRightsMatrixView.css +++ b/src/css/default/LSaccessRightsMatrixView.css @@ -19,6 +19,10 @@ text-align: left; } +#LSaccessRightsMatrixView table tbody th.LSaccessRightsMatrixView_layout_label { + text-align: center; +} + /* * Table rotated header */ diff --git a/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php b/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php index 9c86a446..df695a56 100644 --- a/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php +++ b/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php @@ -166,12 +166,34 @@ function LSaccessRightsMatrixView() { ); } + // Handle LSform layout + $layout = false; + if (LSconfig :: get("LSobjects.$LSobject.LSform.layout")) { + $layout = array(); + $displayed_attrs = array(); + foreach(LSconfig :: get("LSobjects.$LSobject.LSform.layout") as $tab => $tab_config) { + $layout[$tab] = array( + 'label' => __(LSconfig :: get('label', $tab, 'string', $tab_config)), + 'attrs' => LSconfig :: get('args', $tab, 'array', $tab_config), + ); + $displayed_attrs = array_merge($displayed_attrs, $layout[$tab]['attrs']); + } + $masked_attrs = array_diff(array_keys(LSconfig :: get("LSobjects.$LSobject.attrs", array(), 'array')), $displayed_attrs); + if ($masked_attrs) { + $layout['masked_attrs'] = array( + 'label' => _('Masked attributes'), + 'attrs' => $masked_attrs, + ); + } + } + $LSobjects[$LSobject] = array ( 'label' => __(LSconfig :: get("LSobjects.$LSobject.label", $LSobject, 'string')), 'attrs' => $attrs, 'relations' => $relations, 'customActions' => $customActions, 'customSearchActions' => $customSearchActions, + 'layout' => $layout, ); } diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index 4cab6888..45ee6dde 100644 Binary files a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo and b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo differ diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po index 44785ea3..65af0060 100644 --- a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po +++ b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: LdapSaisie\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-03-03 14:25+0100\n" +"PO-Revision-Date: 2021-03-16 17:23+0100\n" "Last-Translator: Benjamin Renard \n" "Language-Team: LdapSaisie \n" @@ -229,7 +229,7 @@ msgstr "" "défini." #: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:52 -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:187 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:209 msgid "Access rights matrix" msgstr "Matrice des droits d'accès" @@ -237,7 +237,11 @@ msgstr "Matrice des droits d'accès" msgid "All connected users" msgstr "Tous les utilisateurs connectés" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:183 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:184 +msgid "Masked attributes" +msgstr "Attributs masqués" + +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:205 msgid "The user him-self" msgstr "L'utilisateur lui-même" @@ -1020,17 +1024,17 @@ msgstr "Votre nouveau mot de passe vous a été envoyé à l'adresse %{mail}." msgid "Refresh" msgstr "Rafraîchir" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2726 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2730 #: templates/default/select.tpl:20 templates/default/recoverpassword.tpl:17 #: templates/default/login.tpl:16 msgid "Level" msgstr "Niveau" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2884 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2888 msgid "LSsession : The constant '%{const}' is not defined." msgstr "LSsession : La constante '%{const}' n'est pas définie." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2887 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2891 msgid "" "LSsession : The addon '%{addon}' support is uncertain. Verify system " "compatibility and the add-on configuration." @@ -1038,53 +1042,53 @@ msgstr "" "LSsession : Le support de l'addon '%{addon}' est incertain. Vérifiez la " "compatibilité du système et la configuration de l'add-on." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2890 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2894 msgid "" "LSsession : LDAP server's configuration data are invalid. Can't connect." msgstr "" "LSsession : Les données de configuration du serveur LDAP sont invalide. " "Impossible de s'y connecter." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2893 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2897 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type." msgstr "" "LSsession : Impossible de charger le type d'LSobject '%{type}' : type " "inconnu." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2896 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2900 msgid "LSsession : Failed to load LSclass '%{class}'." msgstr "LSsession : Impossible de charger la LSclass '%{class}'." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2899 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2903 msgid "LSsession : Login or password incorrect." msgstr "LSsession : Identifiant ou mot de passe incorrects." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2902 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2906 msgid "LSsession : Impossible to identify you : Duplication of identities." msgstr "LSsession : Impossible de vous identifier : Duplication d'identité." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2905 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2909 msgid "LSsession : Can't load class of authentification (%{class})." msgstr "" "LSsession : Impossible de charger la classe d'authentification (%{class})." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2908 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2912 msgid "LSsession : Can't connect to LDAP server." msgstr "LSsession : Impossible de se connecter au serveur LDAP." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2911 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2915 msgid "LSsession : Impossible to authenticate you." msgstr "LSsession : Impossible de vous identifier." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2914 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2918 msgid "LSsession : Your are not authorized to do this action." msgstr "LSsession : Vous n'êtes pas autorisé à faire cette action." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2917 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2921 msgid "LSsession : Some informations are missing to display this page." msgstr "LSsession : Des informations sont manquant pour afficher cette page." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2920 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2924 msgid "" "LSsession : The function '%{function}' of the custom action " "'%{customAction}' does not exists or is not configured." @@ -1092,24 +1096,24 @@ msgstr "" "LSsession : La fonction '%{function}' de l'action personnalisée " "'%{customAction}' n'existe pas ou n'est pas configurée." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2923 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2927 msgid "LSsession : Fail to retreive user's LDAP credentials from LSauth." msgstr "" "LSsession : Erreur en récupérant les identifiants LDAP de l'utilisateur " "depuis LSauth." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2926 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2930 msgid "" "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials." msgstr "" "LSsession : Impossible de se reconnecter au serveur LDAP avec les " "identifiants de l'utilisateur." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2929 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2933 msgid "LSsession : No import/export format define for this object type." msgstr "LSsession : Aucun format d'entrée/sortie définie pour ce type d'objet." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2932 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2936 msgid "" "LSsession : Error during creation of list of levels. Contact administrators. " "(Code : %{code})" @@ -1117,13 +1121,13 @@ msgstr "" "LSsession : Erreur durant la création de la liste des niveaux. Contacter les " "administrateurs. (Code : %{type})" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2935 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2939 msgid "LSsession : The password recovery is disabled for this LDAP server." msgstr "" "LSsession : La récupération de mot de passe est désactivée pour ce serveur " "LDAP." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2938 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2942 msgid "" "LSsession : Some informations are missing to recover your password. Contact " "administrators." @@ -1131,7 +1135,7 @@ msgstr "" "LSsession : Des informations sont manques pour pouvoir récupérer votre mot " "de passe. Contacter les administrateurs." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2941 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2945 msgid "" "LSsession : Error during password recovery. Contact administrators.(Step : " "%{step})" @@ -1139,7 +1143,7 @@ msgstr "" "LSsession : Erreur durant la récupération de votre mot de passe. Contacter " "les administrateurs. (Etape : %{step})" -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2944 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2948 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' is not declared in the LSaddon file." @@ -1147,7 +1151,7 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'est pas déclaré dans le fichier du LSaddon." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2948 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2952 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' doesn't exist." @@ -1155,11 +1159,11 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'existe pas." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2951 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2955 msgid "LSsession : invalid related object's DN pass in parameter." msgstr "LSsession : DN d'objet en relation incorrect dans les paramètres." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2954 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2958 msgid "" "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please " "upgrade it." @@ -1167,7 +1171,7 @@ msgstr "" "LSsession : le LSaddon %{addon} utilise toujours l'ancien type d'URL de " "vues. Merci de le mettre à jour." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2957 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2961 msgid "" "LSsession : You have been redirect from an old-style URL %{url}. Please " "upgrade this link." @@ -1175,7 +1179,7 @@ msgstr "" "LSsession : Vous avez été redirigé depuis une ancienne URL %{url}. Merci de " "le mettre à jour ce lien." -#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2960 +#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2964 msgid "" "LSsession : You always seem to use %{old} in your custom code: Please " "upgrade it and use %{new}.
\n"
@@ -1872,11 +1876,11 @@ msgstr "LdapSaisie - Authentification requise"
 msgid "LSauthMethod_HTTP : the %{var} environnement variable is missing."
 msgstr "LSauthMethod_HTTP : la variable d'environnement %{var} est manquante."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:88
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:87
 msgid "Send a mail from here."
 msgstr "Envoyer un mail depuis l'interface."
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:120
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:119
 msgid ""
 "LSformElement_mail: the autocomplete feature was moved to parent "
 "LSformElement_text class and you still use old configuration style with "
@@ -2488,8 +2492,8 @@ msgstr "Mme."
 msgid "Mr."
 msgstr "M."
 
-#: templates/default/LSaccessRightsMatrixView.tpl:95
-#: templates/default/LSaccessRightsMatrixView.tpl:129
+#: templates/default/LSaccessRightsMatrixView.tpl:119
+#: templates/default/LSaccessRightsMatrixView.tpl:153
 msgid "Allowed"
 msgstr "Autorisé"
 
@@ -2509,16 +2513,16 @@ msgstr "Se connecter"
 msgid "Connected as"
 msgstr "Connecté en tant que"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:87
+#: templates/default/LSaccessRightsMatrixView.tpl:111
 msgid "Custom actions"
 msgstr "Actions personnalisées"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:92
-#: templates/default/LSaccessRightsMatrixView.tpl:126
+#: templates/default/LSaccessRightsMatrixView.tpl:116
+#: templates/default/LSaccessRightsMatrixView.tpl:150
 msgid "Custom actions / Profiles"
 msgstr "Actions personnalisées / Profils"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:121
+#: templates/default/LSaccessRightsMatrixView.tpl:145
 msgid "Custom search actions"
 msgstr "Actions personnalisées sur les recherches"
 
@@ -2566,9 +2570,9 @@ msgid "Language"
 msgstr "Langue"
 
 #: templates/default/LSaccessRightsMatrixView.tpl:20
-#: templates/default/LSaccessRightsMatrixView.tpl:56
-#: templates/default/LSaccessRightsMatrixView.tpl:94
-#: templates/default/LSaccessRightsMatrixView.tpl:128
+#: templates/default/LSaccessRightsMatrixView.tpl:80
+#: templates/default/LSaccessRightsMatrixView.tpl:118
+#: templates/default/LSaccessRightsMatrixView.tpl:152
 msgid "Legend:"
 msgstr "Légende :"
 
@@ -2617,26 +2621,28 @@ msgid "Please confirm new password:"
 msgstr "Merci de confirmer le nouveau mot de passe :"
 
 #: templates/default/LSaccessRightsMatrixView.tpl:21
-#: templates/default/LSaccessRightsMatrixView.tpl:38
-#: templates/default/LSaccessRightsMatrixView.tpl:57
-#: templates/default/LSaccessRightsMatrixView.tpl:73
+#: templates/default/LSaccessRightsMatrixView.tpl:45
+#: templates/default/LSaccessRightsMatrixView.tpl:61
+#: templates/default/LSaccessRightsMatrixView.tpl:81
+#: templates/default/LSaccessRightsMatrixView.tpl:97
 msgid "R"
 msgstr "L"
 
 #: templates/default/LSaccessRightsMatrixView.tpl:23
-#: templates/default/LSaccessRightsMatrixView.tpl:40
-#: templates/default/LSaccessRightsMatrixView.tpl:59
-#: templates/default/LSaccessRightsMatrixView.tpl:75
+#: templates/default/LSaccessRightsMatrixView.tpl:47
+#: templates/default/LSaccessRightsMatrixView.tpl:63
+#: templates/default/LSaccessRightsMatrixView.tpl:83
+#: templates/default/LSaccessRightsMatrixView.tpl:99
 msgid "R/W"
 msgstr "L/É"
 
 #: templates/default/LSaccessRightsMatrixView.tpl:21
-#: templates/default/LSaccessRightsMatrixView.tpl:57
+#: templates/default/LSaccessRightsMatrixView.tpl:81
 msgid "Readable"
 msgstr "Lecture"
 
 #: templates/default/LSaccessRightsMatrixView.tpl:23
-#: templates/default/LSaccessRightsMatrixView.tpl:59
+#: templates/default/LSaccessRightsMatrixView.tpl:83
 msgid "Readable / Writable"
 msgstr "Lecture / Écriture"
 
@@ -2644,7 +2650,7 @@ msgstr "Lecture / Écriture"
 msgid "Refresh my access rights"
 msgstr "Rafraîchir mes droits d'accès"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:54
+#: templates/default/LSaccessRightsMatrixView.tpl:78
 msgid "Relations / Profiles"
 msgstr "Relations / Profils"
 
@@ -2660,21 +2666,21 @@ msgstr "Afficher/cacher le menu"
 msgid "Subject"
 msgstr "Sujet"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:49
+#: templates/default/LSaccessRightsMatrixView.tpl:73
 msgid "Their relations with other objects"
 msgstr "Leurs relations avec les autres objets"
 
-#: templates/default/LSaccessRightsMatrixView.tpl:118
+#: templates/default/LSaccessRightsMatrixView.tpl:142
 msgid "This object type has no configured custom action."
 msgstr "Ce type d'objet n'a aucune action personnalisée de configurée."
 
-#: templates/default/LSaccessRightsMatrixView.tpl:152
+#: templates/default/LSaccessRightsMatrixView.tpl:176
 msgid "This object type has no configured custom search action."
 msgstr ""
 "Ce type d'objet n'a aucune action personnalisée sur les recherches de "
 "configurée."
 
-#: templates/default/LSaccessRightsMatrixView.tpl:84
+#: templates/default/LSaccessRightsMatrixView.tpl:108
 msgid "This object type has no configured relation."
 msgstr "Ce type d'objet n'a aucune relation de configurée."
 
diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot
index 6c72ea66..85d23d98 100644
--- a/src/lang/ldapsaisie.pot
+++ b/src/lang/ldapsaisie.pot
@@ -176,7 +176,7 @@ msgid "Access Right Matrix Support : The global array %{array} is not defined."
 msgstr ""
 
 #: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:52
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:187
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:209
 msgid "Access rights matrix"
 msgstr ""
 
@@ -184,7 +184,11 @@ msgstr ""
 msgid "All connected users"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:183
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:184
+msgid "Masked attributes"
+msgstr ""
+
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.LSaccessRightsMatrixView.php:205
 msgid "The user him-self"
 msgstr ""
 
@@ -866,133 +870,133 @@ msgstr ""
 msgid "Refresh"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2726
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2730
 #: templates/default/select.tpl:20 templates/default/recoverpassword.tpl:17
 #: templates/default/login.tpl:16
 msgid "Level"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2884
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2888
 msgid "LSsession : The constant '%{const}' is not defined."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2887
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2891
 msgid ""
 "LSsession : The addon '%{addon}' support is uncertain. Verify system "
 "compatibility and the add-on configuration."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2890
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2894
 msgid ""
 "LSsession : LDAP server's configuration data are invalid. Can't connect."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2893
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2897
 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2896
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2900
 msgid "LSsession : Failed to load LSclass '%{class}'."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2899
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2903
 msgid "LSsession : Login or password incorrect."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2902
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2906
 msgid "LSsession : Impossible to identify you : Duplication of identities."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2905
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2909
 msgid "LSsession : Can't load class of authentification (%{class})."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2908
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2912
 msgid "LSsession : Can't connect to LDAP server."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2911
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2915
 msgid "LSsession : Impossible to authenticate you."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2914
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2918
 msgid "LSsession : Your are not authorized to do this action."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2917
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2921
 msgid "LSsession : Some informations are missing to display this page."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2920
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2924
 msgid ""
 "LSsession : The function '%{function}' of the custom action "
 "'%{customAction}' does not exists or is not configured."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2923
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2927
 msgid "LSsession : Fail to retreive user's LDAP credentials from LSauth."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2926
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2930
 msgid ""
 "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2929
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2933
 msgid "LSsession : No import/export format define for this object type."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2932
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2936
 msgid ""
 "LSsession : Error during creation of list of levels. Contact administrators. "
 "(Code : %{code})"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2935
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2939
 msgid "LSsession : The password recovery is disabled for this LDAP server."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2938
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2942
 msgid ""
 "LSsession : Some informations are missing to recover your password. Contact "
 "administrators."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2941
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2945
 msgid ""
 "LSsession : Error during password recovery. Contact administrators.(Step : "
 "%{step})"
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2944
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2948
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' is not declared in the LSaddon file."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2948
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2952
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' doesn't exist."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2951
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2955
 msgid "LSsession : invalid related object's DN pass in parameter."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2954
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2958
 msgid ""
 "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please "
 "upgrade it."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2957
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2961
 msgid ""
 "LSsession : You have been redirect from an old-style URL %{url}. Please "
 "upgrade this link."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2960
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSsession.php:2964
 msgid ""
 "LSsession : You always seem to use %{old} in your custom code: Please "
 "upgrade it and use %{new}.
\n"
@@ -1574,11 +1578,11 @@ msgstr ""
 msgid "LSauthMethod_HTTP : the %{var} environnement variable is missing."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:88
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:87
 msgid "Send a mail from here."
 msgstr ""
 
-#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:120
+#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_mail.php:119
 msgid ""
 "LSformElement_mail: the autocomplete feature was moved to parent "
 "LSformElement_text class and you still use old configuration style with "
@@ -2130,8 +2134,8 @@ msgstr ""
 msgid "Mr."
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:95
-#: templates/default/LSaccessRightsMatrixView.tpl:129
+#: templates/default/LSaccessRightsMatrixView.tpl:119
+#: templates/default/LSaccessRightsMatrixView.tpl:153
 msgid "Allowed"
 msgstr ""
 
@@ -2151,16 +2155,16 @@ msgstr ""
 msgid "Connected as"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:87
+#: templates/default/LSaccessRightsMatrixView.tpl:111
 msgid "Custom actions"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:92
-#: templates/default/LSaccessRightsMatrixView.tpl:126
+#: templates/default/LSaccessRightsMatrixView.tpl:116
+#: templates/default/LSaccessRightsMatrixView.tpl:150
 msgid "Custom actions / Profiles"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:121
+#: templates/default/LSaccessRightsMatrixView.tpl:145
 msgid "Custom search actions"
 msgstr ""
 
@@ -2208,9 +2212,9 @@ msgid "Language"
 msgstr ""
 
 #: templates/default/LSaccessRightsMatrixView.tpl:20
-#: templates/default/LSaccessRightsMatrixView.tpl:56
-#: templates/default/LSaccessRightsMatrixView.tpl:94
-#: templates/default/LSaccessRightsMatrixView.tpl:128
+#: templates/default/LSaccessRightsMatrixView.tpl:80
+#: templates/default/LSaccessRightsMatrixView.tpl:118
+#: templates/default/LSaccessRightsMatrixView.tpl:152
 msgid "Legend:"
 msgstr ""
 
@@ -2259,26 +2263,28 @@ msgid "Please confirm new password:"
 msgstr ""
 
 #: templates/default/LSaccessRightsMatrixView.tpl:21
-#: templates/default/LSaccessRightsMatrixView.tpl:38
-#: templates/default/LSaccessRightsMatrixView.tpl:57
-#: templates/default/LSaccessRightsMatrixView.tpl:73
+#: templates/default/LSaccessRightsMatrixView.tpl:45
+#: templates/default/LSaccessRightsMatrixView.tpl:61
+#: templates/default/LSaccessRightsMatrixView.tpl:81
+#: templates/default/LSaccessRightsMatrixView.tpl:97
 msgid "R"
 msgstr ""
 
 #: templates/default/LSaccessRightsMatrixView.tpl:23
-#: templates/default/LSaccessRightsMatrixView.tpl:40
-#: templates/default/LSaccessRightsMatrixView.tpl:59
-#: templates/default/LSaccessRightsMatrixView.tpl:75
+#: templates/default/LSaccessRightsMatrixView.tpl:47
+#: templates/default/LSaccessRightsMatrixView.tpl:63
+#: templates/default/LSaccessRightsMatrixView.tpl:83
+#: templates/default/LSaccessRightsMatrixView.tpl:99
 msgid "R/W"
 msgstr ""
 
 #: templates/default/LSaccessRightsMatrixView.tpl:21
-#: templates/default/LSaccessRightsMatrixView.tpl:57
+#: templates/default/LSaccessRightsMatrixView.tpl:81
 msgid "Readable"
 msgstr ""
 
 #: templates/default/LSaccessRightsMatrixView.tpl:23
-#: templates/default/LSaccessRightsMatrixView.tpl:59
+#: templates/default/LSaccessRightsMatrixView.tpl:83
 msgid "Readable / Writable"
 msgstr ""
 
@@ -2286,7 +2292,7 @@ msgstr ""
 msgid "Refresh my access rights"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:54
+#: templates/default/LSaccessRightsMatrixView.tpl:78
 msgid "Relations / Profiles"
 msgstr ""
 
@@ -2302,19 +2308,19 @@ msgstr ""
 msgid "Subject"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:49
+#: templates/default/LSaccessRightsMatrixView.tpl:73
 msgid "Their relations with other objects"
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:118
+#: templates/default/LSaccessRightsMatrixView.tpl:142
 msgid "This object type has no configured custom action."
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:152
+#: templates/default/LSaccessRightsMatrixView.tpl:176
 msgid "This object type has no configured custom search action."
 msgstr ""
 
-#: templates/default/LSaccessRightsMatrixView.tpl:84
+#: templates/default/LSaccessRightsMatrixView.tpl:108
 msgid "This object type has no configured relation."
 msgstr ""
 
diff --git a/src/templates/default/LSaccessRightsMatrixView.tpl b/src/templates/default/LSaccessRightsMatrixView.tpl
index 9eb5684d..85e390f6 100644
--- a/src/templates/default/LSaccessRightsMatrixView.tpl
+++ b/src/templates/default/LSaccessRightsMatrixView.tpl
@@ -29,7 +29,30 @@
         
       
       
-      {foreach $LSobjects[$LSobject]['attrs'] as $name => $conf}
+      {if $LSobjects[$LSobject]['layout']}
+        {foreach $LSobjects[$LSobject]['layout'] as $tab_name => $tab}
+          
+            {$tab.label}
+          
+          {foreach $tab.attrs as $name}
+          {if !isset($LSobjects[$LSobject]['attrs'][$name])}{continue}{/if}
+          {assign var=conf value=$LSobjects[$LSobject]['attrs'][$name]}
+          
+            {$conf.label} ?
+            {foreach $LSprofiles as $profil => $profil_label}
+            
+            {if $conf.rights[$profil] == 'r'}
+              {tr msg="R"}
+            {elseif $conf.rights[$profil] == 'w'}
+              {tr msg="R/W"}
+            {/if}
+            
+            {/foreach}
+          
+          {/foreach}
+        {/foreach}
+      {else}
+        {foreach $LSobjects[$LSobject]['attrs'] as $name => $conf}
         
           {$conf.label} ?
           {foreach $LSprofiles as $profil => $profil_label}
@@ -42,7 +65,8 @@
           
           {/foreach}
         
-      {/foreach}
+        {/foreach}
+      {/if}