From 3cf427b4d6733f39b5a8f89bcfc8e5c1851adf18 Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 17 Aug 2005 15:25:32 +0000 Subject: - improvement : in admin/user_perm, already authorized categories thanks to group associations are displayed and not taken into account for user specific permissions. git-svn-id: http://piwigo.org/svn/trunk@818 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/user_perm.php | 51 +++++++++++++++++++++++++++++++++++- doc/ChangeLog | 6 +++++ template/default/admin/user_perm.tpl | 22 +++++++++++++--- template/default/default.css | 8 ++++++ 4 files changed, 82 insertions(+), 5 deletions(-) diff --git a/admin/user_perm.php b/admin/user_perm.php index 56af243bb..400678ce2 100644 --- a/admin/user_perm.php +++ b/admin/user_perm.php @@ -141,12 +141,56 @@ $template->assign_vars( ) ); + +// retrieve category ids authorized to the groups the user belongs to +$group_authorized = array(); + +$query = ' +SELECT DISTINCT cat_id, c.uppercats, c.global_rank + FROM '.USER_GROUP_TABLE.' AS ug + INNER JOIN '.GROUP_ACCESS_TABLE.' AS ga + ON ug.group_id = ga.group_id + INNER JOIN '.CATEGORIES_TABLE.' AS c + ON c.id = ga.cat_id + WHERE ug.user_id = '.$page['user'].' +;'; +$result = pwg_query($query); + +if (mysql_num_rows($result) > 0) +{ + $template->assign_block_vars('groups', array()); + + $cats = array(); + while ($row = mysql_fetch_array($result)) + { + array_push($cats, $row); + array_push($group_authorized, $row['cat_id']); + } + usort($cats, 'global_rank_compare'); + + foreach ($cats as $category) + { + $template->assign_block_vars( + 'groups.category', + array( + 'NAME' => get_cat_display_name_cache($category['uppercats'], '', false) + ) + ); + } +} + // only private categories are listed $query_true = ' SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.' INNER JOIN '.USER_ACCESS_TABLE.' ON cat_id = id WHERE status = \'private\' - AND user_id = '.$page['user'].' + AND user_id = '.$page['user']; +if (count($group_authorized) > 0) +{ + $query_true.= ' + AND cat_id NOT IN ('.implode(',', $group_authorized).')'; +} +$query_true.= ' ;'; display_select_cat_wrapper($query_true,array(),'category_option_true'); @@ -166,6 +210,11 @@ if (count($authorized_ids) > 0) $query_false.= ' AND id NOT IN ('.implode(',', $authorized_ids).')'; } +if (count($group_authorized) > 0) +{ + $query_false.= ' + AND id NOT IN ('.implode(',', $group_authorized).')'; +} $query_false.= ' ;'; display_select_cat_wrapper($query_false,array(),'category_option_false'); diff --git a/doc/ChangeLog b/doc/ChangeLog index 8b7603164..5664c19dd 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2005-08-17 Pierrick LE GALL + + * improvement : in admin/user_perm, already authorized categories + thanks to group associations are displayed and not taken into + account for user specific permissions. + 2005-08-17 Pierrick LE GALL * modification : major simplification of admin.php. Titles are diff --git a/template/default/admin/user_perm.tpl b/template/default/admin/user_perm.tpl index ebb4be2e7..108885d1e 100644 --- a/template/default/admin/user_perm.tpl +++ b/template/default/admin/user_perm.tpl @@ -1,7 +1,21 @@

{TITLE}

-
- {DOUBLE_SELECT} -
+ +
+ {lang:Categories authorized thanks to group associations} -

{lang:Only private categories are listed}

+ +
+ + +
+ {lang:Other private categories} + +
+ {DOUBLE_SELECT} +
+
diff --git a/template/default/default.css b/template/default/default.css index 4ac6caa96..ac65a076b 100644 --- a/template/default/default.css +++ b/template/default/default.css @@ -596,4 +596,12 @@ div#theNavbar>dl>dd>ul { list-style-type: square; padding-left: 15px; margin: 5px; +} + +div#adminMain>fieldset { + margin: 10px; +} + +fieldset>legend { + font-style: italic; } \ No newline at end of file -- cgit v1.2.3