mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-18 00:09:06 +01:00
Add default LSprofiles with the name of authenticable object types
Consquently adjust LSaccessRigthsMatrixView addon and make some representative change in LSexample for demo
This commit is contained in:
parent
cf1a98e4b3
commit
d68b15bac3
5 changed files with 102 additions and 44 deletions
|
@ -2,16 +2,56 @@
|
||||||
<!-- Début LSprofiles -->
|
<!-- Début LSprofiles -->
|
||||||
<sect4 id='config-LSprofile'>
|
<sect4 id='config-LSprofile'>
|
||||||
<title>Profils d'utilisateurs</title>
|
<title>Profils d'utilisateurs</title>
|
||||||
|
|
||||||
<para>Cette section décrit la manière dont sont définis les profils d'utilisateurs
|
<para>Cette section décrit la manière dont sont définis les profils d'utilisateurs
|
||||||
se connectant à l'interface appelés <emphasis>LSprofile</emphasis>. Il est
|
se connectant à l'interface appelés <emphasis>LSprofile</emphasis>. Il est possible
|
||||||
possible de définir autant de profils d'utilisateurs que l'on souhaite. Pour
|
d'attribuer un profil à l'utilisateur connecté sur tout ou partie de l'annuaire LDAP.
|
||||||
chaque profil d'utilisateur, il faudra définir dans quelles parties de
|
</para>
|
||||||
l'annuaire ce profil existe (Exemple : les admistrateurs de groupes existent
|
|
||||||
uniquement dans la branche de l'annuaire stockant les groupes). Enfin pour
|
<sect5 id='config-LSprofile-default'>
|
||||||
chaque partie de l'annuaire, il faudra définir la manière d'identifier si
|
<title>Profils d'utilisateurs par défaut</title>
|
||||||
l'utilisateur qui se connecte appartient à ce profil.</para>
|
<para>Il existe des profils d'utilisateurs par défaut, non liée à la configuration de
|
||||||
|
l'application:
|
||||||
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>user</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>Tous les utilisateurs connectés à l'utilisateur. Ce &LSprofile; est valide sur l'ensemble de l'annuaire.</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>self</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>L'utilisateur connecté sur son objet correspondant dans l'annuaire. Ce &LSprofile; est utile pour donner des
|
||||||
|
droits à l'utilisateur sur lui-même.</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>nom du type de l'objet connecté</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>Un &LSprofile; du nom du type d'objet utilisateur connecté est automatiquement ajouté à l'utilisateur.
|
||||||
|
Ainsi, si l'utilisateur connecté est un &LSobject; <literal>LSpeople</literal> par exemple, il aura le &LSprofile;
|
||||||
|
<literal>LSpeople</literal> sur tous l'annuaire. Ce &LSprofile; est utile pour donner des droits à tous un type
|
||||||
|
d'objets pouvant se connecter à l'application (par exemple, tous les utilisateurs applicatifs).</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect5>
|
||||||
|
|
||||||
|
<sect5 id='config-LSprofile-custom'>
|
||||||
|
<title>Profils d'utilisateurs personalisés</title>
|
||||||
|
<para>Il est possible de définir autant de profils d'utilisateurs que l'on souhaite. Pour chaque profil
|
||||||
|
d'utilisateur personnalisé, il faudra définir dans quelles parties de l'annuaire ce profil existe (Exemple :
|
||||||
|
les admistrateurs de groupes existent uniquement dans la branche de l'annuaire stockant les groupes). Enfin
|
||||||
|
pour chaque partie de l'annuaire, il faudra définir la manière d'identifier si l'utilisateur qui se connecte
|
||||||
|
appartient à ce profil.</para>
|
||||||
|
|
||||||
<programlisting linenumbering="unnumbered">
|
<programlisting linenumbering="unnumbered">
|
||||||
<citetitle>Structure</citetitle>...
|
<citetitle>Structure</citetitle>...
|
||||||
<![CDATA['LSprofile' => array (
|
<![CDATA['LSprofile' => array (
|
||||||
|
@ -27,12 +67,12 @@
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'LSobjects' => array ( // via une liste d'objet sur lequel l'utilisateur a des pouvoirs
|
'LSobjects' => array ( // via une liste d'objet sur lequel l'utilisateur a des pouvoirs
|
||||||
[nom du LSobject] => array (
|
[nom du LSobject] => array (
|
||||||
'attr' => [nom de l'attribut clé],
|
'attr' => [nom de l'attribut clé],
|
||||||
'attr_value' => [format de la valeur de l'attribut clé],
|
'attr_value' => [format de la valeur de l'attribut clé],
|
||||||
// ou
|
// ou
|
||||||
'filter' => [format du filtre de recherche],
|
'filter' => [format du filtre de recherche],
|
||||||
|
|
||||||
'basedn' => [basedn de recherche],
|
'basedn' => [basedn de recherche],
|
||||||
'params' => [configuration de la recherche]
|
'params' => [configuration de la recherche]
|
||||||
),
|
),
|
||||||
|
@ -56,7 +96,7 @@
|
||||||
...
|
...
|
||||||
),]]>
|
),]]>
|
||||||
...
|
...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Le paramètre <varname>LSprofiles</varname> est un tableau associatif contenant,
|
Le paramètre <varname>LSprofiles</varname> est un tableau associatif contenant,
|
||||||
|
@ -66,7 +106,7 @@ la configuration nécessaire pour déterminer si l'utilisateur connecté apparti
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Dans chaque configuration de <emphasis>LSprofile</emphasis>, il est possible
|
Dans chaque configuration de <emphasis>LSprofile</emphasis>, il est possible
|
||||||
d'identifier l'appartenance ou non de l'utilisateur connecté de deux manières :
|
d'identifier l'appartenance ou non de l'utilisateur connecté de deux manières :
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -74,9 +114,9 @@ d'identifier l'appartenance ou non de l'utilisateur connecté de deux manières&
|
||||||
|
|
||||||
<!-- D - Pour basedn -->
|
<!-- D - Pour basedn -->
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Pour une branche de l'annuaire donnée (<emphasis>basedn</emphasis>) :
|
<para>Pour une branche de l'annuaire donnée (<emphasis>basedn</emphasis>) :
|
||||||
en listant les utilisateurs appartenant à ce <emphasis>LSprofile</emphasis> pour
|
en listant les utilisateurs appartenant à ce <emphasis>LSprofile</emphasis> pour
|
||||||
tous les objets de la branche. Il sera possible de lister les utilisateurs dont
|
tous les objets de la branche. Il sera possible de lister les utilisateurs dont
|
||||||
on connait le <emphasis>DN</emphasis> ou de lister les utilisateurs appartenant
|
on connait le <emphasis>DN</emphasis> ou de lister les utilisateurs appartenant
|
||||||
à une liste stockée dans l'annuaire (par exemple la liste des membres d'un
|
à une liste stockée dans l'annuaire (par exemple la liste des membres d'un
|
||||||
groupe).</para>
|
groupe).</para>
|
||||||
|
@ -103,12 +143,12 @@ groupe).</para>
|
||||||
),]]>
|
),]]>
|
||||||
...
|
...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<simpara>Explication : Pour un <emphasis>LSprofile</emphasis> et un
|
<simpara>Explication : Pour un <emphasis>LSprofile</emphasis> et un
|
||||||
<emphasis>basedn</emphasis> donnés, on définit l'utilisateur appartenant au
|
<emphasis>basedn</emphasis> donnés, on définit l'utilisateur appartenant au
|
||||||
<emphasis>LSprofile</emphasis> en donnant son <emphasis>DN</emphasis>. Si on
|
<emphasis>LSprofile</emphasis> en donnant son <emphasis>DN</emphasis>. Si on
|
||||||
souhaite lister plusieurs utilisateurs, on utilise un tableau associatif dans
|
souhaite lister plusieurs utilisateurs, on utilise un tableau associatif dans
|
||||||
lequel les clés sont les <emphasis>DNs</emphasis> des utilisateurs et les valeurs
|
lequel les clés sont les <emphasis>DNs</emphasis> des utilisateurs et les valeurs
|
||||||
associées sont toutes <emphasis>NULL</emphasis>.</simpara>
|
associées sont toutes <emphasis>NULL</emphasis>.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
<!-- F - Liste de DNs -->
|
<!-- F - Liste de DNs -->
|
||||||
|
|
||||||
|
@ -130,10 +170,10 @@ associées sont toutes <emphasis>NULL</emphasis>.</simpara>
|
||||||
),]]>
|
),]]>
|
||||||
...
|
...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<simpara>Explication : Pour un <emphasis>LSprofile</emphasis> et un
|
<simpara>Explication : Pour un <emphasis>LSprofile</emphasis> et un
|
||||||
<emphasis>basedn</emphasis> donnés, on liste les utilisateurs du
|
<emphasis>basedn</emphasis> donnés, on liste les utilisateurs du
|
||||||
<emphasis>LSprofile</emphasis> référencés dans l'attribut <varname>attr</varname>
|
<emphasis>LSprofile</emphasis> référencés dans l'attribut <varname>attr</varname>
|
||||||
de l'object de type <varname>LSobject</varname> et selon le format de valeur
|
de l'object de type <varname>LSobject</varname> et selon le format de valeur
|
||||||
décrit dans <varname>attr_value</varname>.</simpara>
|
décrit dans <varname>attr_value</varname>.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
<!-- F - Liste stocké -->
|
<!-- F - Liste stocké -->
|
||||||
|
@ -148,8 +188,8 @@ décrit dans <varname>attr_value</varname>.</simpara>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Pour un type de <emphasis>LSobject</emphasis> donné : en listant
|
<simpara>Pour un type de <emphasis>LSobject</emphasis> donné : en listant
|
||||||
les objets pour lesquels l'utilisateur aura les droits du LSprofile. Il sera
|
les objets pour lesquels l'utilisateur aura les droits du LSprofile. Il sera
|
||||||
possible, à travers une recherche paramétrable dans l'annuaire, de lister les
|
possible, à travers une recherche paramétrable dans l'annuaire, de lister les
|
||||||
objets pour lesquels l'utilisateur appartiendra au
|
objets pour lesquels l'utilisateur appartiendra au
|
||||||
<emphasis>LSprofile</emphasis>.</simpara>
|
<emphasis>LSprofile</emphasis>.</simpara>
|
||||||
<programlisting linenumbering="unnumbered">
|
<programlisting linenumbering="unnumbered">
|
||||||
<citetitle>Structure</citetitle>...
|
<citetitle>Structure</citetitle>...
|
||||||
|
@ -157,12 +197,12 @@ objets pour lesquels l'utilisateur appartiendra au
|
||||||
[nom d'un LSprofile] => array (
|
[nom d'un LSprofile] => array (
|
||||||
'LSobjects' => array ( // via un liste d'objet pour lequel l'utilisateur
|
'LSobjects' => array ( // via un liste d'objet pour lequel l'utilisateur
|
||||||
// appartient au LSprofile
|
// appartient au LSprofile
|
||||||
[nom du LSobject] => array (
|
[nom du LSobject] => array (
|
||||||
'attr' => [nom de l'attribut clé],
|
'attr' => [nom de l'attribut clé],
|
||||||
'attr_value' => [format de la valeur de l'attribut clé],
|
'attr_value' => [format de la valeur de l'attribut clé],
|
||||||
// or
|
// or
|
||||||
'filter' => [format du filtre de recherche],
|
'filter' => [format du filtre de recherche],
|
||||||
|
|
||||||
'basedn' => [basedn de recherche],
|
'basedn' => [basedn de recherche],
|
||||||
'params' => [configuration de la recherche]
|
'params' => [configuration de la recherche]
|
||||||
),
|
),
|
||||||
|
@ -186,7 +226,7 @@ objets pour lesquels l'utilisateur appartiendra au
|
||||||
...
|
...
|
||||||
),]]>
|
),]]>
|
||||||
...
|
...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>Explications : Dans la configuration d'un <emphasis>LSprofile</emphasis>,
|
<para>Explications : Dans la configuration d'un <emphasis>LSprofile</emphasis>,
|
||||||
la valeur clé <emphasis>LSobjects</emphasis> signifie qu'on est dans un cas de la
|
la valeur clé <emphasis>LSobjects</emphasis> signifie qu'on est dans un cas de la
|
||||||
délégation de droits sur des types d'LSobject. Dans ce tableau associatif, il
|
délégation de droits sur des types d'LSobject. Dans ce tableau associatif, il
|
||||||
|
@ -228,7 +268,7 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>attr</term>
|
<term>attr</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Nom de l'attribut des LSobjets contenant une valeur clé qui
|
<simpara>Nom de l'attribut des LSobjets contenant une valeur clé qui
|
||||||
permettra d'identifier l'utilisateur comme ayant droit.</simpara>
|
permettra d'identifier l'utilisateur comme ayant droit.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -238,7 +278,7 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Le format de la valeur clé prise par l'attribut <varname>attr</varname>.
|
<simpara>Le format de la valeur clé prise par l'attribut <varname>attr</varname>.
|
||||||
Ce format est composé à partir des données de l'objet de l'utilisateur
|
Ce format est composé à partir des données de l'objet de l'utilisateur
|
||||||
connecté. Voir le paragraphe <link linkend="config-LSformat">Format
|
connecté. Voir le paragraphe <link linkend="config-LSformat">Format
|
||||||
paramètrable</link> pour plus d'informations sur l'écriture du format.</simpara>
|
paramètrable</link> pour plus d'informations sur l'écriture du format.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -246,9 +286,9 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>filter</term>
|
<term>filter</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Ce paramètre remplace les paramètres <varname>attr</varname> et
|
<simpara>Ce paramètre remplace les paramètres <varname>attr</varname> et
|
||||||
<varname>attr_value</varname>. Il est possible ici d'écrire directement le
|
<varname>attr_value</varname>. Il est possible ici d'écrire directement le
|
||||||
format paramètrable du filtre recherche dans l'annuaire. Ce filtre sera
|
format paramètrable du filtre recherche dans l'annuaire. Ce filtre sera
|
||||||
automatiquement agrémenté des conditions sur l'attribut <emphasis>objectclass</emphasis>.
|
automatiquement agrémenté des conditions sur l'attribut <emphasis>objectclass</emphasis>.
|
||||||
Voir le paragraphe <link linkend="config-LSformat">Format paramètrable</link>
|
Voir le paragraphe <link linkend="config-LSformat">Format paramètrable</link>
|
||||||
pour plus d'informations sur l'écriture du format.</simpara>
|
pour plus d'informations sur l'écriture du format.</simpara>
|
||||||
|
@ -259,7 +299,7 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<term>basedn</term>
|
<term>basedn</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>C'est le <emphasis>basedn</emphasis> de la recherche. Il est possible
|
<simpara>C'est le <emphasis>basedn</emphasis> de la recherche. Il est possible
|
||||||
ainsi de la limiter sur les LSojects d'une branche précise de l'annuaire.
|
ainsi de la limiter sur les LSojects d'une branche précise de l'annuaire.
|
||||||
<emphasis>(Paramètre facultatif)</emphasis></simpara>
|
<emphasis>(Paramètre facultatif)</emphasis></simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -267,7 +307,7 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>params</term>
|
<term>params</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>C'est un tableau associatif contenant les paramètres étendus de la
|
<simpara>C'est un tableau associatif contenant les paramètres étendus de la
|
||||||
recherche. Voir le paragraphe <link linkend="config-search-params">
|
recherche. Voir le paragraphe <link linkend="config-search-params">
|
||||||
Paramètres étendus des recherches dans l'annuaire</link> pour plus de détails.
|
Paramètres étendus des recherches dans l'annuaire</link> pour plus de détails.
|
||||||
<emphasis>(Paramètre facultatif)</emphasis></simpara>
|
<emphasis>(Paramètre facultatif)</emphasis></simpara>
|
||||||
|
@ -287,6 +327,8 @@ objets retournés. Les paramètres de la recherche sont :
|
||||||
<emphasis>LSprofile</emphasis> à l'aide de la clé <literal>label</literal>. Ce
|
<emphasis>LSprofile</emphasis> à l'aide de la clé <literal>label</literal>. Ce
|
||||||
label sera utilisé pour faire référence au <emphasis>LSprofile</emphasis> lorsque
|
label sera utilisé pour faire référence au <emphasis>LSprofile</emphasis> lorsque
|
||||||
nécéssaire. <emphasis>(Paramètre facultatif)</emphasis></para>
|
nécéssaire. <emphasis>(Paramètre facultatif)</emphasis></para>
|
||||||
|
|
||||||
|
</sect5>
|
||||||
|
|
||||||
</sect4>
|
</sect4>
|
||||||
<!-- Fin LSprofiles -->
|
<!-- Fin LSprofiles -->
|
||||||
|
|
|
@ -48,7 +48,8 @@ $GLOBALS['LSobjects']['LSsysaccount'] = array (
|
||||||
'linkAttributeValue' => "dn",
|
'linkAttributeValue' => "dn",
|
||||||
'rights' => array(
|
'rights' => array(
|
||||||
'admin' => 'w',
|
'admin' => 'w',
|
||||||
'admingroup' => 'w'
|
'admingroup' => 'w',
|
||||||
|
'LSsysaccount' => 'r',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -78,6 +79,7 @@ $GLOBALS['LSobjects']['LSsysaccount'] = array (
|
||||||
),
|
),
|
||||||
'rights' => array(
|
'rights' => array(
|
||||||
'self' => 'r',
|
'self' => 'r',
|
||||||
|
'LSsysaccount' => 'r',
|
||||||
'admin' => 'w',
|
'admin' => 'w',
|
||||||
),
|
),
|
||||||
'view' => 1,
|
'view' => 1,
|
||||||
|
@ -139,6 +141,7 @@ $GLOBALS['LSobjects']['LSsysaccount'] = array (
|
||||||
'multiple' => 1,
|
'multiple' => 1,
|
||||||
'rights' => array(
|
'rights' => array(
|
||||||
'self' => 'r',
|
'self' => 'r',
|
||||||
|
'LSsysaccount' => 'r',
|
||||||
'admin' => 'w',
|
'admin' => 'w',
|
||||||
),
|
),
|
||||||
'view' => 1,
|
'view' => 1,
|
||||||
|
|
|
@ -24,5 +24,6 @@ $GLOBALS['LSaddons']['loads'] = array (
|
||||||
'samba',
|
'samba',
|
||||||
'posix',
|
'posix',
|
||||||
'ftp',
|
'ftp',
|
||||||
'maildir'
|
'maildir',
|
||||||
|
'LSaccessRightsMatrixView'
|
||||||
);
|
);
|
||||||
|
|
|
@ -61,9 +61,17 @@ function LSaccessRightsMatrixView() {
|
||||||
$LSprofiles = array(
|
$LSprofiles = array(
|
||||||
'user' => _('All connected users'),
|
'user' => _('All connected users'),
|
||||||
);
|
);
|
||||||
|
// Authenticable user objects types
|
||||||
|
$authObjTypes = LSauth :: getAuthObjectTypes();
|
||||||
|
foreach ($authObjTypes as $objType => $objParams)
|
||||||
|
if (LSsession :: loadLSobject($objType))
|
||||||
|
$LSprofiles[$objType] = LSldapObject :: getLabel($objType);
|
||||||
|
|
||||||
|
// Custom configured LSprofiles
|
||||||
if (isset(LSsession :: $ldapServer["LSprofiles"]) && is_array(LSsession :: $ldapServer["LSprofiles"]))
|
if (isset(LSsession :: $ldapServer["LSprofiles"]) && is_array(LSsession :: $ldapServer["LSprofiles"]))
|
||||||
foreach(LSsession :: $ldapServer["LSprofiles"] as $LSprofile => $LSprofile_conf)
|
foreach(LSsession :: $ldapServer["LSprofiles"] as $LSprofile => $LSprofile_conf)
|
||||||
$LSprofiles[$LSprofile] = (isset($LSprofile_conf['label'])?__($LSprofile_conf['label']):$LSprofile);
|
$LSprofiles[$LSprofile] = (isset($LSprofile_conf['label'])?__($LSprofile_conf['label']):$LSprofile);
|
||||||
|
|
||||||
$LSobjects = array();
|
$LSobjects = array();
|
||||||
foreach (LSsession :: $ldapServer["LSaccess"] as $LSobject) {
|
foreach (LSsession :: $ldapServer["LSaccess"] as $LSobject) {
|
||||||
if (!LSsession :: loadLSobject($LSobject))
|
if (!LSsession :: loadLSobject($LSobject))
|
||||||
|
@ -74,7 +82,7 @@ function LSaccessRightsMatrixView() {
|
||||||
foreach(LSconfig :: get("LSobjects.$LSobject.attrs", array()) as $attr_name => $attr_config) {
|
foreach(LSconfig :: get("LSobjects.$LSobject.attrs", array()) as $attr_name => $attr_config) {
|
||||||
$raw_attr_rights = LSconfig :: get('rights', array(), 'array', $attr_config);
|
$raw_attr_rights = LSconfig :: get('rights', array(), 'array', $attr_config);
|
||||||
$attr_rights = array();
|
$attr_rights = array();
|
||||||
if ($LSobject == LSsession :: get('authenticated_user_type'))
|
if (array_key_exists($LSobject, $authObjTypes))
|
||||||
$attr_rights['self'] = LSconfig :: get('self', False, null, $raw_attr_rights);
|
$attr_rights['self'] = LSconfig :: get('self', False, null, $raw_attr_rights);
|
||||||
foreach(array_keys($LSprofiles) as $LSprofile) {
|
foreach(array_keys($LSprofiles) as $LSprofile) {
|
||||||
$attr_rights[$LSprofile] = LSconfig :: get($LSprofile, False, null, $raw_attr_rights);
|
$attr_rights[$LSprofile] = LSconfig :: get($LSprofile, False, null, $raw_attr_rights);
|
||||||
|
@ -90,7 +98,7 @@ function LSaccessRightsMatrixView() {
|
||||||
foreach(LSconfig :: get("LSobjects.$LSobject.LSrelation", array()) as $relation_name => $relation_config) {
|
foreach(LSconfig :: get("LSobjects.$LSobject.LSrelation", array()) as $relation_name => $relation_config) {
|
||||||
$raw_relation_rights = LSconfig :: get('rights', array(), 'array', $relation_config);
|
$raw_relation_rights = LSconfig :: get('rights', array(), 'array', $relation_config);
|
||||||
$relation_rights = array();
|
$relation_rights = array();
|
||||||
if ($LSobject == LSsession :: get('authenticated_user_type'))
|
if (array_key_exists($LSobject, $authObjTypes))
|
||||||
$relation_rights['self'] = LSconfig :: get('self', False, null, $raw_relation_rights);
|
$relation_rights['self'] = LSconfig :: get('self', False, null, $raw_relation_rights);
|
||||||
foreach(array_keys($LSprofiles) as $LSprofile) {
|
foreach(array_keys($LSprofiles) as $LSprofile) {
|
||||||
$relation_rights[$LSprofile] = LSconfig :: get($LSprofile, False, null, $raw_relation_rights);
|
$relation_rights[$LSprofile] = LSconfig :: get($LSprofile, False, null, $raw_relation_rights);
|
||||||
|
@ -112,7 +120,7 @@ function LSaccessRightsMatrixView() {
|
||||||
reset($LSobjects);
|
reset($LSobjects);
|
||||||
$LSobject = (isset($_REQUEST['LSobject']) && array_key_exists($_REQUEST['LSobject'], $LSobjects)?$_REQUEST['LSobject']:key($LSobjects));
|
$LSobject = (isset($_REQUEST['LSobject']) && array_key_exists($_REQUEST['LSobject'], $LSobjects)?$_REQUEST['LSobject']:key($LSobjects));
|
||||||
|
|
||||||
if ($LSobject == LSsession :: get('authenticated_user_type'))
|
if (array_key_exists($LSobject, $authObjTypes))
|
||||||
$LSprofiles = array_merge(array('self' => _('The user him-self')), $LSprofiles);
|
$LSprofiles = array_merge(array('self' => _('The user him-self')), $LSprofiles);
|
||||||
|
|
||||||
LSlog :: get_logger('LSaddon_LSaccessRightsMatrixView') -> debug($LSobjects);
|
LSlog :: get_logger('LSaddon_LSaccessRightsMatrixView') -> debug($LSobjects);
|
||||||
|
|
|
@ -1896,9 +1896,10 @@ class LSsession {
|
||||||
$access=array();
|
$access=array();
|
||||||
foreach(self :: $ldapServer['LSaccess'] as $objectType) {
|
foreach(self :: $ldapServer['LSaccess'] as $objectType) {
|
||||||
if (self :: loadLSobject($objectType)) {
|
if (self :: loadLSobject($objectType)) {
|
||||||
if (self :: canAccess($objectType)) {
|
if (self :: canAccess($objectType))
|
||||||
$access[$objectType] = LSconfig :: get('LSobjects.'.$objectType.'.label');
|
$access[$objectType] = $objectType :: getLabel();
|
||||||
}
|
else
|
||||||
|
self :: log_debug("loadLSaccess(): authenticated user have no access to $objectType");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$LSaccess[self :: $topDn] = $access;
|
$LSaccess[self :: $topDn] = $access;
|
||||||
|
@ -2005,6 +2006,9 @@ class LSsession {
|
||||||
public static function whoami($dn) {
|
public static function whoami($dn) {
|
||||||
$retval = array('user');
|
$retval = array('user');
|
||||||
|
|
||||||
|
if (self :: $LSuserObjectType)
|
||||||
|
$retval[] = self :: $LSuserObjectType;
|
||||||
|
|
||||||
foreach(self :: $LSprofiles as $profile => $infos) {
|
foreach(self :: $LSprofiles as $profile => $infos) {
|
||||||
if(self :: isLSprofile($dn,$profile)) {
|
if(self :: isLSprofile($dn,$profile)) {
|
||||||
$retval[]=$profile;
|
$retval[]=$profile;
|
||||||
|
|
Loading…
Reference in a new issue