示例#1
0
 function SetGroupSecurity($group_code, $arPermissions, $arSubGroups = false)
 {
     if (($group_id = CGroup::GetIDByCode($group_code)) <= 0) {
         return false;
     }
     $arBackup = CControllerClient::GetBackup();
     foreach ($arPermissions as $module_id => $level) {
         if (!is_set($arBackup["security"][$group_code], $module_id)) {
             $arBackup["security"][$group_code][$module_id] = CGroup::GetModulePermission($group_id, $module_id);
         }
         CGroup::SetModulePermission($group_id, $module_id, $level);
     }
     if (is_array($arSubGroups)) {
         $arSubordGroupID = array();
         foreach ($arSubGroups as $sub_group_id) {
             $sub_group_id = CGroup::GetIDByCode($sub_group_id);
             if ($sub_group_id > 0) {
                 $arSubordGroupID[] = $sub_group_id;
             }
         }
         if (!is_set($arBackup["security_subord_groups"], $group_code)) {
             $arBackup["security_subord_groups"][$group_code] = CGroup::GetSubordinateGroups($group_id);
         }
         CGroup::SetSubordinateGroups($group_id, $arSubordGroupID);
     }
     CControllerClient::SetBackup($arBackup);
 }