Compare commits

..

No commits in common. "6646ca91f12a12330efd85a0a6958e4a536b56e5" and "4235c05b1250e63995d9265d03653eeadf84d63c" have entirely different histories.

10 changed files with 28 additions and 279 deletions

View file

@ -29,9 +29,6 @@
// Dynamic group object type // Dynamic group object type
define('DYNGROUP_OBJECT_TYPE', 'LSdyngroup'); define('DYNGROUP_OBJECT_TYPE', 'LSdyngroup');
// Dynamic group member object type
define('DYNGROUP_MEMBER_OBJECT_TYPE', 'LSpeople');
/* /*
* Members DN attributes * Members DN attributes
*/ */

View file

@ -40,16 +40,6 @@ $GLOBALS['LSobjects']['LSdyngroup'] = array (
'label' => 'Dynamic groups', 'label' => 'Dynamic groups',
'customActions' => array ( 'customActions' => array (
'showDyngroupMembers' => array (
'label' => 'Show members',
'icon' => 'group',
'function' => 'showDyngroupMembers',
'noConfirmation' => true,
'disableOnSuccessMsg' => true,
'rights' => array (
'admin',
),
),
'showTechInfo' => array ( 'showTechInfo' => array (
'function' => 'showTechInfo', 'function' => 'showTechInfo',
'label' => 'Show technical information', 'label' => 'Show technical information',

View file

@ -1,11 +0,0 @@
#showDyngroupMembers {
margin-left: 1em;
}
#showDyngroupMembers table.LStable tr.error {
background-color: var(--error-color);
}
#showDyngroupMembers table.LStable .center {
text-align: center;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

View file

@ -361,68 +361,6 @@ function triggerUpdateDynGroupsMembersCacheOnUserChanges(&$user, &$changed_attrs
return !$error; return !$error;
} }
/**
* Show dyngroup members
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*
* @param LSldapObject $ldapObject The LSldapObject
*
* @return array|false array of memberUid URI attribute values or false in case of error
*/
function showDyngroupMembers($ldapObject) {
$member_dns = ensureIsArray($ldapObject -> attrs[ DYNGROUP_MEMBER_DN_ATTRIBUTE ] -> getValue());
$cache_member_dns = ensureIsArray($ldapObject -> attrs[ DYNGROUP_MEMBER_DN_STATIC_ATTRIBUTE ] -> getValue());
$member_uids = ensureIsArray($ldapObject -> attrs[ DYNGROUP_MEMBER_UID_ATTRIBUTE ] -> getValue());
$cache_member_uids = ensureIsArray($ldapObject -> attrs[ DYNGROUP_MEMBER_UID_STATIC_ATTRIBUTE ] -> getValue());
sort($member_dns);
sort($cache_member_dns);
sort($member_uids);
sort($cache_member_uids);
LStemplate :: assign('member_dns', $member_dns);
LStemplate :: assign('cache_member_dns', $cache_member_dns);
LStemplate :: assign('member_uids', $member_uids);
LStemplate :: assign('cache_member_uids', $cache_member_uids);
if (
defined('DYNGROUP_MEMBER_OBJECT_TYPE')
&& LSsession :: loadLSobject(constant('DYNGROUP_MEMBER_OBJECT_TYPE'))
) {
$member_type = constant('DYNGROUP_MEMBER_OBJECT_TYPE');
$uid2dn = (
LSconfig :: get("LSobjects.$member_type.rdn")."=%{uid},".
LSconfig :: get("LSobjects.$member_type.container_dn").",".
LSsession :: getTopDn()
);
LStemplate :: assign('member_object_type', $member_type);
LStemplate :: assign('uid2dn', $uid2dn);
}
else {
LStemplate :: assign('member_object_type', null);
}
LStemplate :: assign('pagetitle', getFData(_('%{name}: members'), $ldapObject -> getDisplayName()));
$LSview_actions=array();
$LSview_actions['return'] = array (
'label' => _('Go back'),
'url' => 'object/'.$ldapObject->getType().'/'.urlencode($ldapObject->getDn()),
'action' => 'view'
);
LStemplate :: assign('LSview_actions', $LSview_actions);
if (LSsession :: loadLSclass('LSform')) {
LSform :: loadDependenciesDisplayView();
}
LStemplate :: addCssFile('showDyngroupMembers.css');
LSsession :: setTemplate('showDyngroupMembers.tpl');
// Display template
LSsession :: displayTemplate();
exit();
}
if (php_sapi_name() != 'cli') if (php_sapi_name() != 'cli')
return true; return true;

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: LdapSaisie\n" "Project-Id-Version: LdapSaisie\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2024-06-19 17:52+0200\n" "PO-Revision-Date: 2024-06-05 12:29+0200\n"
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n" "Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
"Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise." "Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise."
"org>\n" "org>\n"
@ -322,7 +322,6 @@ msgstr "Vos modifications ont été enregistrées."
#: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.mail.php:565
#: includes/addons/LSaddons.showSupportInfo.php:78 #: includes/addons/LSaddons.showSupportInfo.php:78
#: includes/addons/LSaddons.dyngroup.php:408
#: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.accesslog.php:248
#: includes/addons/LSaddons.showTechInfo.php:128 #: includes/addons/LSaddons.showTechInfo.php:128
msgid "Go back" msgid "Go back"
@ -408,10 +407,6 @@ msgstr ""
"délai de quelques minutes pourra être nécessaire pour que vos modifications " "délai de quelques minutes pourra être nécessaire pour que vos modifications "
"soient prises en compte sur ces groupes." "soient prises en compte sur ces groupes."
#: includes/addons/LSaddons.dyngroup.php:404
msgid "%{name}: members"
msgstr "%{name} : membres"
#: includes/addons/LSaddons.posix.php:27 #: includes/addons/LSaddons.posix.php:27
msgid "POSIX Support: The constant %{const} is not defined." msgid "POSIX Support: The constant %{const} is not defined."
msgstr "Support POSIX : La constante %{const} n'est pas définie." msgstr "Support POSIX : La constante %{const} n'est pas définie."
@ -3732,11 +3727,6 @@ msgstr "Identifiant"
msgid "Imported objects" msgid "Imported objects"
msgstr "Objets importés" msgstr "Objets importés"
#: templates/default/showDyngroupMembers.tpl:12
#: templates/default/showDyngroupMembers.tpl:68
msgid "In cache"
msgstr "En cache"
#: templates/default/recoverpassword.tpl:13 templates/default/login.tpl:12 #: templates/default/recoverpassword.tpl:13 templates/default/login.tpl:12
msgid "LDAP server" msgid "LDAP server"
msgstr "Serveur LDAP" msgstr "Serveur LDAP"
@ -3757,16 +3747,6 @@ msgstr "Légende :"
msgid "Logout" msgid "Logout"
msgstr "Déconnexion" msgstr "Déconnexion"
#: templates/default/showDyngroupMembers.tpl:63
#: templates/default/showDyngroupMembers.tpl:67
msgid "Members's DN"
msgstr "DNs des membres"
#: templates/default/showDyngroupMembers.tpl:7
#: templates/default/showDyngroupMembers.tpl:11
msgid "Members's UID"
msgstr "UID des membres"
#: templates/default/LSmail.tpl:28 #: templates/default/LSmail.tpl:28
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
@ -3796,14 +3776,6 @@ msgstr "Aucun champ."
msgid "No imported object" msgid "No imported object"
msgstr "Aucun objet importé" msgstr "Aucun objet importé"
#: templates/default/showDyngroupMembers.tpl:113
msgid "No member's DN."
msgstr "Aucun DN de membre."
#: templates/default/showDyngroupMembers.tpl:57
msgid "No member's UID."
msgstr "Aucun UID de membre."
#: templates/default/import.tpl:65 #: templates/default/import.tpl:65
msgid "No value" msgid "No value"
msgstr "Aucune valeur" msgstr "Aucune valeur"

View file

@ -20,10 +20,6 @@ $GLOBALS['LSlang'] = array (
"<strong>Used with caution !</strong> The name of the OpenLDAP module to used to check the password quality." => "<strong>Used with caution !</strong> The name of the OpenLDAP module to used to check the password quality." =>
"<strong>À utiliser avec vigilance !</strong> Nom du module pour OpenLDAP à utiliser pour vérifier la qualité du mot de passe.", "<strong>À utiliser avec vigilance !</strong> Nom du module pour OpenLDAP à utiliser pour vérifier la qualité du mot de passe.",
# ldap_servers.1.subDn
"== All ==" =>
"== Tout ==",
# LSobjects.LSpeople.attrs.lsGodfatherDn.label # LSobjects.LSpeople.attrs.lsGodfatherDn.label
# LSobjects.LSgroup.attrs.lsGodfatherDn.label # LSobjects.LSgroup.attrs.lsGodfatherDn.label
# LSobjects.LSdyngroup.attrs.lsGodfatherDn.label # LSobjects.LSdyngroup.attrs.lsGodfatherDn.label
@ -165,7 +161,6 @@ $GLOBALS['LSlang'] = array (
"Description", "Description",
# LSobjects.pwdPolicy.attrs.pwdCheckQuality.no_value_label # LSobjects.pwdPolicy.attrs.pwdCheckQuality.no_value_label
# LSobjects.pwdPolicy.attrs.pwdCheckQuality.html_options.possible_values.0
"Disabled (default)" => "Disabled (default)" =>
"Désactivé (par défaut)", "Désactivé (par défaut)",
@ -206,10 +201,6 @@ $GLOBALS['LSlang'] = array (
"E-mail address" => "E-mail address" =>
"Adresse e-mail", "Adresse e-mail",
# LSobjects.LSpeople.ioFormat.enable_disable_shell.label
"Enable/disable commands shell" =>
"Activer/désactiver l'interpréteur de commandes",
# LSobjects.LSpeople.LSsearch.customActions.exportSearchResultAsCSV.label # LSobjects.LSpeople.LSsearch.customActions.exportSearchResultAsCSV.label
"Export result as CSV" => "Export result as CSV" =>
"Exporter le résultat au format CSV", "Exporter le résultat au format CSV",
@ -243,6 +234,10 @@ $GLOBALS['LSlang'] = array (
"Given email address is invalid." => "Given email address is invalid." =>
"L'adresse mail saisie est invalide.", "L'adresse mail saisie est invalide.",
# ldap_servers.0.LSprofiles.godfather.label
"Godfather" =>
"Parrain",
# LSobjects.LSpeople.LSrelation.godfather.label # LSobjects.LSpeople.LSrelation.godfather.label
"Godfather of ..." => "Godfather of ..." =>
"Parrain de ...", "Parrain de ...",
@ -440,6 +435,10 @@ $GLOBALS['LSlang'] = array (
"Mrs" => "Mrs" =>
"Mme", "Mme",
# LSobjects.LSpeople.attrs.personalTitle.html_options.possible_values.Mlle
"Ms" =>
"Mlle",
# LSobjects.pwdPolicy.attrs.pwdInHistory.check_data.integer.msg # LSobjects.pwdPolicy.attrs.pwdInHistory.check_data.integer.msg
# LSobjects.pwdPolicy.attrs.pwdMinLength.check_data.integer.msg # LSobjects.pwdPolicy.attrs.pwdMinLength.check_data.integer.msg
# LSobjects.pwdPolicy.attrs.pwdMaxAge.check_data.integer.msg # LSobjects.pwdPolicy.attrs.pwdMaxAge.check_data.integer.msg
@ -465,6 +464,20 @@ $GLOBALS['LSlang'] = array (
"Name must contain alphanumeric values only." => "Name must contain alphanumeric values only." =>
"Le nom doit contenir uniquement des valeurs alpha-numériques.", "Le nom doit contenir uniquement des valeurs alpha-numériques.",
# LSobjects.LSpeople.attrs.pwdChangedTime.no_value_label
# LSobjects.LSpeople.attrs.pwdGraceUseTime.no_value_label
# LSobjects.LSpeople.attrs.shadowLastChange.no_value_label
# LSobjects.LSpeople.attrs.sambaLogonTime.no_value_label
# LSobjects.LSpeople.attrs.sambaLogoffTime.no_value_label
# LSobjects.LSpeople.attrs.sambaKickoffTime.html_options.special_values.2147483647
# LSobjects.LSpeople.attrs.sambaPwdLastSet.no_value_label
# LSobjects.LSpeople.attrs.sambaPwdMustChange.html_options.special_values.2147483647
# LSobjects.LSpeople.attrs.sambaPwdCanChange.html_options.special_values.2147483647
# LSobjects.LSsysaccount.attrs.pwdChangedTime.no_value_label
# LSobjects.LSsysaccount.attrs.pwdGraceUseTime.no_value_label
"Never" =>
"Jamais",
# LSobjects.pwdPolicy.attrs.pwdSafeModify.no_value_label # LSobjects.pwdPolicy.attrs.pwdSafeModify.no_value_label
# LSobjects.pwdPolicy.attrs.pwdLockout.no_value_label # LSobjects.pwdPolicy.attrs.pwdLockout.no_value_label
# LSobjects.pwdPolicy.attrs.pwdMustChange.no_value_label # LSobjects.pwdPolicy.attrs.pwdMustChange.no_value_label
@ -480,10 +493,6 @@ $GLOBALS['LSlang'] = array (
"No grace delay (default)" => "No grace delay (default)" =>
"Aucun délai de grâce (par défaut)", "Aucun délai de grâce (par défaut)",
# LSobjects.LSpeople.attrs.gidNumber.html_options.possible_values.0
"No group" =>
"Aucun groupe",
# LSobjects.pwdPolicy.attrs.pwdInHistory.no_value_label # LSobjects.pwdPolicy.attrs.pwdInHistory.no_value_label
"No history (default)" => "No history (default)" =>
"Pas d'historique (par défaut)", "Pas d'historique (par défaut)",
@ -513,6 +522,11 @@ $GLOBALS['LSlang'] = array (
"Not locked" => "Not locked" =>
"Non-bloqué", "Non-bloqué",
# LSobjects.LSpeople.attrs.pwdReset.no_value_label
# LSobjects.LSsysaccount.attrs.pwdReset.no_value_label
"Not set" =>
"Non défini",
# LSobjects.pwdPolicy.attrs.pwdInHistory.label # LSobjects.pwdPolicy.attrs.pwdInHistory.label
"Number of old passwords kept in history" => "Number of old passwords kept in history" =>
"Nombre d'anciens mots de passe à conserver dans l'historique", "Nombre d'anciens mots de passe à conserver dans l'historique",
@ -670,10 +684,6 @@ $GLOBALS['LSlang'] = array (
"Set this attribute and delete <em>pwdAccountLockedTime</em> attribute value to unlock the account." => "Set this attribute and delete <em>pwdAccountLockedTime</em> attribute value to unlock the account." =>
"Définissez cet attribut et supprimez l'attribut <em>pwdAccountLockedTime</em> pour débloquer le compte.", "Définissez cet attribut et supprimez l'attribut <em>pwdAccountLockedTime</em> pour débloquer le compte.",
# LSobjects.LSdyngroup.customActions.showDyngroupMembers.label
"Show members" =>
"Voir les membres",
# LSobjects.LSpeople.customActions.showTechInfo.label # LSobjects.LSpeople.customActions.showTechInfo.label
# LSobjects.LSgroup.customActions.showTechInfo.label # LSobjects.LSgroup.customActions.showTechInfo.label
# LSobjects.LSdyngroup.customActions.showTechInfo.label # LSobjects.LSdyngroup.customActions.showTechInfo.label

View file

@ -250,7 +250,6 @@ msgstr ""
#: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.mail.php:565
#: includes/addons/LSaddons.showSupportInfo.php:78 #: includes/addons/LSaddons.showSupportInfo.php:78
#: includes/addons/LSaddons.dyngroup.php:408
#: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.accesslog.php:248
#: includes/addons/LSaddons.showTechInfo.php:128 #: includes/addons/LSaddons.showTechInfo.php:128
msgid "Go back" msgid "Go back"
@ -321,10 +320,6 @@ msgid ""
"necessary to handle your changes on this groups." "necessary to handle your changes on this groups."
msgstr "" msgstr ""
#: includes/addons/LSaddons.dyngroup.php:404
msgid "%{name}: members"
msgstr ""
#: includes/addons/LSaddons.posix.php:27 #: includes/addons/LSaddons.posix.php:27
msgid "POSIX Support: The constant %{const} is not defined." msgid "POSIX Support: The constant %{const} is not defined."
msgstr "" msgstr ""
@ -3208,11 +3203,6 @@ msgstr ""
msgid "Imported objects" msgid "Imported objects"
msgstr "" msgstr ""
#: templates/default/showDyngroupMembers.tpl:12
#: templates/default/showDyngroupMembers.tpl:68
msgid "In cache"
msgstr ""
#: templates/default/recoverpassword.tpl:13 templates/default/login.tpl:12 #: templates/default/recoverpassword.tpl:13 templates/default/login.tpl:12
msgid "LDAP server" msgid "LDAP server"
msgstr "" msgstr ""
@ -3233,16 +3223,6 @@ msgstr ""
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: templates/default/showDyngroupMembers.tpl:63
#: templates/default/showDyngroupMembers.tpl:67
msgid "Members's DN"
msgstr ""
#: templates/default/showDyngroupMembers.tpl:7
#: templates/default/showDyngroupMembers.tpl:11
msgid "Members's UID"
msgstr ""
#: templates/default/LSmail.tpl:28 #: templates/default/LSmail.tpl:28
msgid "Message" msgid "Message"
msgstr "" msgstr ""
@ -3272,14 +3252,6 @@ msgstr ""
msgid "No imported object" msgid "No imported object"
msgstr "" msgstr ""
#: templates/default/showDyngroupMembers.tpl:113
msgid "No member's DN."
msgstr ""
#: templates/default/showDyngroupMembers.tpl:57
msgid "No member's UID."
msgstr ""
#: templates/default/import.tpl:65 #: templates/default/import.tpl:65
msgid "No value" msgid "No value"
msgstr "" msgstr ""

View file

@ -1,119 +0,0 @@
{extends file='ls:base_connected.tpl'}
{block name="content"}
<div id='showDyngroupMembers'>
<h1>{$pagetitle}</h1>
{include file='ls:LSview_actions.tpl'}
<h2>{tr msg="Members's UID"}</h2>
<table class="LStable">
<thead>
<tr>
<th>{tr msg="Members's UID"}</th>
<th>{tr msg="In cache"}</th>
</tr>
</thead>
<tbody>
{if $member_uids || $cache_member_uids}
{foreach $member_uids as $uid}
{if in_array($uid, $cache_member_uids)}
<tr>
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{getFData format=$uid2dn data=$uid|escape:'url'}">{$uid}</a>
{else}
{$uid}
{/if}
</td>
<td class="center">✓</td>
</tr>
{else}
<tr class="error">
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{getFData format=$uid2dn data=$uid|escape:'url'}">{$uid}</a>
{else}
{$uid}
{/if}
</td>
<td class="center">X</td>
</tr>
{/if}
{/foreach}
{foreach $cache_member_uids as $uid}
{if in_array($uid, $member_uids)}{continue}{/if}
<tr class="error">
<td class="center">X</td>
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{getFData format=$uid2dn data=$uid|escape:'url'}">{$uid}</a>
{else}
{$uid}
{/if}
</td>
</tr>
{/foreach}
{else}
<tr>
<td colspan="2">{tr msg="No member's UID."}</td>
</tr>
{/if}
</tbody>
</table>
<h2>{tr msg="Members's DN"}</h2>
<table class="LStable">
<thead>
<tr>
<th>{tr msg="Members's DN"}</th>
<th>{tr msg="In cache"}</th>
</tr>
</thead>
<tbody>
{if $member_dns || $cache_member_dns}
{foreach $member_dns as $dn}
{if in_array($dn, $cache_member_dns)}
<tr>
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{$dn|escape:'url'}">{$dn}</a>
{else}
{$dn}
{/if}
</td>
<td class="center">✓</td>
</tr>
{else}
<tr class="error">
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{$dn|escape:'url'}">{$dn}</a>
{else}
{$dn}
{/if}
</td>
<td class="center">X</td>
</tr>
{/if}
{/foreach}
{foreach $cache_member_dns as $dn}
{if in_array($dn, $member_dns)}{continue}{/if}
<tr class="error">
<td class="center">X</td>
<td>
{if $member_object_type}
<a href="object/{$member_object_type}/{$dn|escape:'url'}">{$dn}</a>
{else}
{$dn}
{/if}
</td>
</tr>
{/foreach}
{else}
<tr>
<td colspan="2">{tr msg="No member's DN."}</td>
</tr>
{/if}
</tbody>
</table>
</div>
{/block}