aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/user_perm.php51
-rw-r--r--doc/ChangeLog6
-rw-r--r--template/default/admin/user_perm.tpl22
-rw-r--r--template/default/default.css8
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,5 +1,11 @@
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
managed by included page, localized items are managed directly in
the template.
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 @@
<h1>{TITLE}</h1>
-<form method="post" action="{F_ACTION}">
- {DOUBLE_SELECT}
-</form>
+<!-- BEGIN groups -->
+<fieldset>
+ <legend>{lang:Categories authorized thanks to group associations}</legend>
-<p>{lang:Only private categories are listed}</p>
+ <ul>
+ <!-- BEGIN category -->
+ <li>{groups.category.NAME}</li>
+ <!-- END category -->
+ </ul>
+</fieldset>
+<!-- END groups -->
+
+<fieldset>
+ <legend>{lang:Other private categories}</legend>
+
+ <form method="post" action="{F_ACTION}">
+ {DOUBLE_SELECT}
+ </form>
+</fieldset>
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