From 41af4f9305c43b15b286cdcb6f95371965cab6e2 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Wed, 19 Jun 2024 17:54:39 +0200 Subject: [PATCH] LSaddon::dyngroup: Add showDyngroupMembers view function --- .../LSaddons/config.LSaddons.dyngroup.php | 3 + .../LSobjects/config.LSobjects.LSdyngroup.php | 10 ++ src/css/default/showDyngroupMembers.css | 11 ++ src/images/default/group.png | Bin 0 -> 753 bytes src/includes/addons/LSaddons.dyngroup.php | 62 +++++++++ src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo | Bin 96882 -> 97196 bytes src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po | 30 ++++- src/lang/ldapsaisie.pot | 28 +++++ src/templates/default/showDyngroupMembers.tpl | 119 ++++++++++++++++++ 9 files changed, 262 insertions(+), 1 deletion(-) create mode 100644 src/css/default/showDyngroupMembers.css create mode 100644 src/images/default/group.png create mode 100644 src/templates/default/showDyngroupMembers.tpl diff --git a/src/conf/LSaddons/config.LSaddons.dyngroup.php b/src/conf/LSaddons/config.LSaddons.dyngroup.php index 72884d5f..12160b1e 100644 --- a/src/conf/LSaddons/config.LSaddons.dyngroup.php +++ b/src/conf/LSaddons/config.LSaddons.dyngroup.php @@ -29,6 +29,9 @@ // Dynamic group object type define('DYNGROUP_OBJECT_TYPE', 'LSdyngroup'); +// Dynamic group member object type +define('DYNGROUP_MEMBER_OBJECT_TYPE', 'LSpeople'); + /* * Members DN attributes */ diff --git a/src/conf/LSobjects/config.LSobjects.LSdyngroup.php b/src/conf/LSobjects/config.LSobjects.LSdyngroup.php index cc0bbf6e..286ff0c1 100644 --- a/src/conf/LSobjects/config.LSobjects.LSdyngroup.php +++ b/src/conf/LSobjects/config.LSobjects.LSdyngroup.php @@ -40,6 +40,16 @@ $GLOBALS['LSobjects']['LSdyngroup'] = array ( 'label' => 'Dynamic groups', 'customActions' => array ( + 'showDyngroupMembers' => array ( + 'label' => 'Show members', + 'icon' => 'group', + 'function' => 'showDyngroupMembers', + 'noConfirmation' => true, + 'disableOnSuccessMsg' => true, + 'rights' => array ( + 'admin', + ), + ), 'showTechInfo' => array ( 'function' => 'showTechInfo', 'label' => 'Show technical information', diff --git a/src/css/default/showDyngroupMembers.css b/src/css/default/showDyngroupMembers.css new file mode 100644 index 00000000..e0563405 --- /dev/null +++ b/src/css/default/showDyngroupMembers.css @@ -0,0 +1,11 @@ +#showDyngroupMembers { + margin-left: 1em; +} + +#showDyngroupMembers table.LStable tr.error { + background-color: var(--error-color); +} + +#showDyngroupMembers table.LStable .center { + text-align: center; +} diff --git a/src/images/default/group.png b/src/images/default/group.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb4e1f1e1cd6ee67d33ffd24f09ddd5c3478bec GIT binary patch literal 753 zcmV(G`SI(6vnfMgxg){D+Lwutc1Si0swhN#FwOv#}l83ts6rCW;r!9Q9l zl<41549yYiq6clJ;(J(YgF_14nmKFB@QK(mo6I~sr{BJxJ$rsp0HSt^ntND0Z;o48 z>O2Ckm9}n?$F`*>$L{;{zT>f+bCm7tpaqw^4q@%k z&cHHt3=3xZmt6rQ_dtDM#)Xwp66-Thu=<9?(zFvpy0gAr0U4Z3smE5f@pZNr!NoqT zEjSPuCQzMw(H;?yvf{+e;!7(;4hv)+d%cjKFiBL%egy0aeCof8z<>rLEjMsF|CBRH z86WcxAYvS6H;Yq)jY1Z-rrjWiu~m;clLmJlDAE7UhMJ*jBxp}s&nQkrZvqDXxsiv3 zSJ78>4W2GFIu$$+Ic&5Pq{1?zhIy(24enCZy35e>z6~XgVx$x%k(+>tPw)9SL~R?4 zs${`1bqjTFC3F)dxIIw>)!QP7$vk+;^#2c5r{lsjtwKYnfnn+j{~{GK;|I8rvPFU z5NbS#W7m)ofjNER&&ggR6fXi0xd4%4143#8JZlhXW+2TN#8b=5@L&-EUlY^cTT=>w zb_~+jfcRCYfdj}H0J49#sP#gtxE~%YBJiQ3AjMgoQJKuMITA}Iz|zizG7pw|7R*XF j=$D`QjOCK>V3B}dL4UFUkhgq600000NkvXXu0mjf1x-zB literal 0 HcmV?d00001 diff --git a/src/includes/addons/LSaddons.dyngroup.php b/src/includes/addons/LSaddons.dyngroup.php index ef3c3614..dac722b3 100644 --- a/src/includes/addons/LSaddons.dyngroup.php +++ b/src/includes/addons/LSaddons.dyngroup.php @@ -361,6 +361,68 @@ function triggerUpdateDynGroupsMembersCacheOnUserChanges(&$user, &$changed_attrs return !$error; } +/** + * Show dyngroup members + * + * @author Benjamin Renard + * + * @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') return true; diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index 19df34fff4e5c60912257caf80937e4d5cf72ae2..bf1025db2055a86e921420f684d8894650f15c54 100644 GIT binary patch delta 16147 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 QWU5my74Gbt>dIU3f71N~YXATM delta 15909 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\n" "Language-Team: LdapSaisie \n" @@ -322,6 +322,7 @@ msgstr "Vos modifications ont été enregistrées." #: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.showSupportInfo.php:78 +#: includes/addons/LSaddons.dyngroup.php:408 #: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.showTechInfo.php:128 msgid "Go back" @@ -407,6 +408,10 @@ msgstr "" "délai de quelques minutes pourra être nécessaire pour que vos modifications " "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 msgid "POSIX Support: The constant %{const} is not defined." msgstr "Support POSIX : La constante %{const} n'est pas définie." @@ -3727,6 +3732,11 @@ msgstr "Identifiant" msgid "Imported objects" 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 msgid "LDAP server" msgstr "Serveur LDAP" @@ -3747,6 +3757,16 @@ msgstr "Légende :" msgid "Logout" 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 msgid "Message" msgstr "Message" @@ -3776,6 +3796,14 @@ msgstr "Aucun champ." msgid "No imported object" 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 msgid "No value" msgstr "Aucune valeur" diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot index baec5b74..a492f801 100644 --- a/src/lang/ldapsaisie.pot +++ b/src/lang/ldapsaisie.pot @@ -250,6 +250,7 @@ msgstr "" #: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.showSupportInfo.php:78 +#: includes/addons/LSaddons.dyngroup.php:408 #: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.showTechInfo.php:128 msgid "Go back" @@ -320,6 +321,10 @@ msgid "" "necessary to handle your changes on this groups." msgstr "" +#: includes/addons/LSaddons.dyngroup.php:404 +msgid "%{name}: members" +msgstr "" + #: includes/addons/LSaddons.posix.php:27 msgid "POSIX Support: The constant %{const} is not defined." msgstr "" @@ -3203,6 +3208,11 @@ msgstr "" msgid "Imported objects" 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 msgid "LDAP server" msgstr "" @@ -3223,6 +3233,16 @@ msgstr "" msgid "Logout" 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 msgid "Message" msgstr "" @@ -3252,6 +3272,14 @@ msgstr "" msgid "No imported object" 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 msgid "No value" msgstr "" diff --git a/src/templates/default/showDyngroupMembers.tpl b/src/templates/default/showDyngroupMembers.tpl new file mode 100644 index 00000000..24216b33 --- /dev/null +++ b/src/templates/default/showDyngroupMembers.tpl @@ -0,0 +1,119 @@ +{extends file='ls:base_connected.tpl'} +{block name="content"} +
+

{$pagetitle}

+ {include file='ls:LSview_actions.tpl'} + +

{tr msg="Members's UID"}

+ + + + + + + + + {if $member_uids || $cache_member_uids} + {foreach $member_uids as $uid} + {if in_array($uid, $cache_member_uids)} + + + + + {else} + + + + + {/if} + {/foreach} + {foreach $cache_member_uids as $uid} + {if in_array($uid, $member_uids)}{continue}{/if} + + + + + {/foreach} + {else} + + + + {/if} + +
{tr msg="Members's UID"}{tr msg="In cache"}
+ {if $member_object_type} + {$uid} + {else} + {$uid} + {/if} +
+ {if $member_object_type} + {$uid} + {else} + {$uid} + {/if} + X
X + {if $member_object_type} + {$uid} + {else} + {$uid} + {/if} +
{tr msg="No member's UID."}
+ +

{tr msg="Members's DN"}

+ + + + + + + + + {if $member_dns || $cache_member_dns} + {foreach $member_dns as $dn} + {if in_array($dn, $cache_member_dns)} + + + + + {else} + + + + + {/if} + {/foreach} + {foreach $cache_member_dns as $dn} + {if in_array($dn, $member_dns)}{continue}{/if} + + + + + {/foreach} + {else} + + + + {/if} + +
{tr msg="Members's DN"}{tr msg="In cache"}
+ {if $member_object_type} + {$dn} + {else} + {$dn} + {/if} +
+ {if $member_object_type} + {$dn} + {else} + {$dn} + {/if} + X
X + {if $member_object_type} + {$dn} + {else} + {$dn} + {/if} +
{tr msg="No member's DN."}
+
+{/block}