Index: branches/unlabeled/unlabeled-1.8.2/kernel/units/groups/groups_config.php =================================================================== diff -u -r4944 -r5188 --- branches/unlabeled/unlabeled-1.8.2/kernel/units/groups/groups_config.php (.../groups_config.php) (revision 4944) +++ branches/unlabeled/unlabeled-1.8.2/kernel/units/groups/groups_config.php (.../groups_config.php) (revision 5188) @@ -3,7 +3,7 @@ $config = Array( 'Prefix' => 'g', - 'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), + 'ItemClass' => Array('class' => 'GroupsItem', 'file' => 'groups_item.php', 'build_event' => 'OnItemBuild'), 'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array('class' => 'GroupsEventHandler', 'file' => 'groups_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class' => 'kDBTagProcessor', 'file' => '','build_event'=>'OnBuild'), Index: branches/unlabeled/unlabeled-1.8.2/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -r5183 -r5188 --- branches/unlabeled/unlabeled-1.8.2/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5183) +++ branches/unlabeled/unlabeled-1.8.2/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5188) @@ -350,12 +350,12 @@ $perm_value = 0; $groups = $this->Application->RecallVar('UserGroups'); foreach ($cat_hierarchy as $category_id) { - $sql = 'SELECT PermissionValue + $sql = 'SELECT SUM(PermissionValue) FROM '.TABLE_PREFIX.'Permissions WHERE Permission = "'.$name.'" AND CatId = '.$category_id.' AND GroupId IN ('.$groups.') AND Type = '.$type; $res = $this->Conn->GetOne($sql); if ($res !== false) { - $perm_value = $res; + $perm_value = $res ? 1 : 0; break; } } Index: branches/unlabeled/unlabeled-1.49.2/kernel/include/usersession.php =================================================================== diff -u -r4897 -r5188 --- branches/unlabeled/unlabeled-1.49.2/kernel/include/usersession.php (.../usersession.php) (revision 4897) +++ branches/unlabeled/unlabeled-1.49.2/kernel/include/usersession.php (.../usersession.php) (revision 5188) @@ -935,8 +935,10 @@ while($rs && !$rs->EOF) { $index = $rs->fields["CatId"]; - if(!is_numeric($PermValue[$index])) + if(!is_numeric($PermValue[$index]) || $rs->fields["PermissionValue"]) { + // remember permission value of not set or allowed $PermValue[$index] = $rs->fields["PermissionValue"]; + } $rs->MoveNext(); } $cats = array_reverse(explode(",",$CatList)); Index: branches/unlabeled/unlabeled-1.8.2/kernel/units/general/helpers/permissions_helper.php =================================================================== diff -u -r5183 -r5188 --- branches/unlabeled/unlabeled-1.8.2/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5183) +++ branches/unlabeled/unlabeled-1.8.2/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5188) @@ -350,12 +350,12 @@ $perm_value = 0; $groups = $this->Application->RecallVar('UserGroups'); foreach ($cat_hierarchy as $category_id) { - $sql = 'SELECT PermissionValue + $sql = 'SELECT SUM(PermissionValue) FROM '.TABLE_PREFIX.'Permissions WHERE Permission = "'.$name.'" AND CatId = '.$category_id.' AND GroupId IN ('.$groups.') AND Type = '.$type; $res = $this->Conn->GetOne($sql); if ($res !== false) { - $perm_value = $res; + $perm_value = $res ? 1 : 0; break; } }