Index: trunk/kernel/action.php =================================================================== diff -u -N -r4124 -r4243 --- trunk/kernel/action.php (.../action.php) (revision 4124) +++ trunk/kernel/action.php (.../action.php) (revision 4243) @@ -206,32 +206,29 @@ break; case "m_group_sysperm": if($ro_perm) break; - if($_POST["GroupEditStatus"]==0) - { + if ($_POST["GroupEditStatus"] == 0) { $objSession->ResetSysPermCache(); - $GroupId = $_POST["GroupId"]; - if($GroupId) - { + $GroupId = $_POST['GroupId']; + if ($GroupId) { $objEditItems = new clsGroupList(); - $objEditItems->SourceTable = $objSession->GetEditTable("PortalGroup"); - $g = $objEditItems->GetItemByField("ResourceId",$GroupId); - if(is_object($g)) - { - - $PermList = explode(",",$_POST["PermList"]); - for($i=0;$iSourceTable = $objSession->GetEditTable('PortalGroup'); + $g = $objEditItems->GetItemByField('ResourceId', $GroupId); + if (is_object($g)) { + $PermList = explode(',', $_POST['PermList']); + $inheritance = GetVar('inherit') ? GetVar('inherit') : Array(); + $permission_values = GetVar('permvalue') ? GetVar('permvalue') : Array(); + for($i = 0; $i < count($PermList); $i++) { + if (@in_array($PermList[$i], $inheritance)) { $value = -1; } - else - { + else { $value = 0; - if(@in_array($PermList[$i],$_POST["permvalue"])) - $value = 1; + if (@in_array($PermList[$i], $permission_values)) { + $value = 1; + } } - $g->SetSystemPermission($PermList[$i],$value); + + $g->SetSystemPermission($PermList[$i], $value); } } }