Index: trunk/kernel/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r5183 -r5186 --- trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5183) +++ trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5186) @@ -351,12 +351,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: trunk/core/units/groups/groups_config.php =================================================================== diff -u -N -r4670 -r5186 --- trunk/core/units/groups/groups_config.php (.../groups_config.php) (revision 4670) +++ trunk/core/units/groups/groups_config.php (.../groups_config.php) (revision 5186) @@ -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: trunk/core/units/groups/groups_item.php =================================================================== diff -u -N --- trunk/core/units/groups/groups_item.php (revision 0) +++ trunk/core/units/groups/groups_item.php (revision 5186) @@ -0,0 +1,23 @@ +Validate()) return false; + $this->SetDBField('ResourceId', $this->Application->NextResourceId()); + + return parent::Create(); + } + + function Update($id = null, $system_update = false) + { + $this->VirtualFields['ResourceId'] = Array(); + $ret = parent::Update($id, $system_update); + unset($this->VirtualFields['ResourceId']); + + return $ret; + } +} + +?> \ No newline at end of file Index: trunk/kernel/units/groups/groups_config.php =================================================================== diff -u -N -r4670 -r5186 --- trunk/kernel/units/groups/groups_config.php (.../groups_config.php) (revision 4670) +++ trunk/kernel/units/groups/groups_config.php (.../groups_config.php) (revision 5186) @@ -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: trunk/kernel/units/groups/groups_item.php =================================================================== diff -u -N --- trunk/kernel/units/groups/groups_item.php (revision 0) +++ trunk/kernel/units/groups/groups_item.php (revision 5186) @@ -0,0 +1,23 @@ +Validate()) return false; + $this->SetDBField('ResourceId', $this->Application->NextResourceId()); + + return parent::Create(); + } + + function Update($id = null, $system_update = false) + { + $this->VirtualFields['ResourceId'] = Array(); + $ret = parent::Update($id, $system_update); + unset($this->VirtualFields['ResourceId']); + + return $ret; + } +} + +?> \ No newline at end of file Index: trunk/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r5183 -r5186 --- trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5183) +++ trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5186) @@ -351,12 +351,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.8.2/core/units/groups/groups_config.php =================================================================== diff -u -N -r4944 -r5186 --- branches/unlabeled/unlabeled-1.8.2/core/units/groups/groups_config.php (.../groups_config.php) (revision 4944) +++ branches/unlabeled/unlabeled-1.8.2/core/units/groups/groups_config.php (.../groups_config.php) (revision 5186) @@ -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'),