diff options
Diffstat (limited to 'admin')
-rw-r--r-- | admin/cat_perm.php | 42 | ||||
-rw-r--r-- | admin/themes/default/template/cat_perm.tpl | 32 |
2 files changed, 55 insertions, 19 deletions
diff --git a/admin/cat_perm.php b/admin/cat_perm.php index 7b555e3be..d5c41edf7 100644 --- a/admin/cat_perm.php +++ b/admin/cat_perm.php @@ -280,35 +280,39 @@ SELECT user_id, group_id } $user_granted_by_group_ids = array(); - + foreach ($granted_groups as $group_users) { - $user_granted_by_group_ids = array_merge($user_granted_by_group_ids, - $group_users); + $user_granted_by_group_ids = array_merge($user_granted_by_group_ids, $group_users); } - $user_granted_by_group_ids = array_unique($user_granted_by_group_ids); + $user_granted_by_group_ids = array_unique($user_granted_by_group_ids); - $user_granted_indirect_ids = array_diff($user_granted_by_group_ids, - $user_granted_direct_ids); - $user_granted_indirect_ids = - order_by_name($user_granted_indirect_ids, $users); - foreach ($user_granted_indirect_ids as $user_id) + $user_granted_indirect_ids = array_diff( + $user_granted_by_group_ids, + $user_granted_direct_ids + ); + + $template->assign('nb_users_granted_indirect', count($user_granted_indirect_ids)); + + foreach ($granted_groups as $group_id => $group_users) { - foreach ($granted_groups as $group_id => $group_users) + $group_usernames = array(); + foreach ($group_users as $user_id) { - if (in_array($user_id, $group_users)) + if (in_array($user_id, $user_granted_indirect_ids)) { - $template->append( - 'user_granted_indirects', - array( - 'USER'=>$users[$user_id], - 'GROUP'=>$groups[$group_id] - ) - ); - break; + array_push($group_usernames, $users[$user_id]); } } + + $template->append( + 'user_granted_indirect_groups', + array( + 'group_name' => $groups[$group_id], + 'group_users' => implode(', ', $group_usernames), + ) + ); } } diff --git a/admin/themes/default/template/cat_perm.tpl b/admin/themes/default/template/cat_perm.tpl index 728669894..718c7ba47 100644 --- a/admin/themes/default/template/cat_perm.tpl +++ b/admin/themes/default/template/cat_perm.tpl @@ -18,6 +18,20 @@ jQuery(document).ready(function() { jQuery("#selectStatus").change(function() { checkStatusOptions(); }); + + jQuery("#indirectPermissionsDetailsShow").click(function(){ + jQuery("#indirectPermissionsDetailsShow").hide(); + jQuery("#indirectPermissionsDetailsHide").show(); + jQuery("#indirectPermissionsDetails").show(); + return false; + }); + + jQuery("#indirectPermissionsDetailsHide").click(function(){ + jQuery("#indirectPermissionsDetailsShow").show(); + jQuery("#indirectPermissionsDetailsHide").hide(); + jQuery("#indirectPermissionsDetails").hide(); + return false; + }); }); {/literal}{/footer_script} @@ -41,11 +55,15 @@ jQuery(document).ready(function() { <legend>{'Groups and users'|@translate}</legend> <p> +{if count($groups) > 0} <strong>{'Permission granted for groups'|@translate}</strong> <br> <select data-placeholder="{'Select groups...'|@translate}" class="chzn-select" multiple style="width:700px;" name="groups[]"> {html_options options=$groups selected=$groups_selected} </select> +{else} + {'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a> +{/if} </p> <p> @@ -56,6 +74,20 @@ jQuery(document).ready(function() { </select> </p> +{if isset($nb_users_granted_indirect)} + <p> + {'%u users have automatic permission because they belong to a granted group.'|@translate|@sprintf:$nb_users_granted_indirect} + <a href="#" id="indirectPermissionsDetailsHide" style="display:none">{'hide details'|@translate}</a> + <a href="#" id="indirectPermissionsDetailsShow">{'show details'|@translate}</a> + + <ul id="indirectPermissionsDetails" style="display:none"> + {foreach from=$user_granted_indirect_groups item=group_details} + <li><strong>{$group_details.group_name}</strong> : {$group_details.group_users}</li> + {/foreach} + </ul> + </p> +{/if} + {* <h4>{'Groups'|@translate}</h4> |