public static function GeneratePHPInstall($arValues) { $str = ''; $arDefValues = $arValues["default"]["options"]; $arInfo = CControllerGroupSettings::GetData(); if(isset($arValues["default"]["modules"])) { $vArr = ''; foreach($arInfo as $module_id=>$arProp) { if($module_id == 'main') continue; if(in_array($module_id, $arValues["default"]["modules"])) $vArr .= '"'.$module_id.'"=>"Y", '; else $vArr .= '"'.$module_id.'"=>"N", '; } $str .= 'CControllerClient::SetModules(Array('.$vArr.'));'."\r\n"; } else $str .= 'CControllerClient::RestoreModules();'."\r\n"; foreach($arInfo as $mname=>$arProp) { if(!is_array($arProp["options"]) || count($arProp["options"])<=0) continue; $arOptions = $arProp["options"]; foreach($arOptions as $id=>$arOptionParams) { if(isset($arDefValues[$mname][$id])) $str .= 'CControllerClient::SetOptionString("'.EscapePHPString($mname).'", "'.EscapePHPString($id).'", "'.EscapePHPString($arDefValues[$mname][$id]).'");'."\r\n"; elseif(substr($id, 0, 2)!='__') $str .= 'CControllerClient::RestoreOption("'.EscapePHPString($mname).'", "'.EscapePHPString($id).'");'."\r\n"; } } $arSecurity = $arValues["default"]["security"]; if($arSecurity["limit_admin"] == "Y") $str .= 'CControllerClient::SetOptionString("main", "~controller_limited_admin", "Y");'."\r\n"; else $str .= 'CControllerClient::SetOptionString("main", "~controller_limited_admin", "N");'."\r\n"; $subordinate_id = COperation::GetIDByName('edit_subordinate_users'); $arGroups = Array(); $arUniqTasks = Array(); if(is_array($arSecurity["groups"])) { foreach($arSecurity["groups"] as $group_id=>$arPermissions) { $arDefinedPermissions = Array(); $arUnDefinedPermissions = Array(); $bSubOrdGroups = false; foreach($arInfo as $module_id=>$arProp) { if(isset($arPermissions[$module_id])) { $arDefinedPermissions[$module_id] = $arPermissions[$module_id]; $task_id = $arPermissions[$module_id]; if(strlen($task_id)>1 && (!is_array($arUniqTasks[$module_id]) || !in_array($task_id, $arUniqTasks[$module_id]))) { $arUniqTasks[$module_id][] = $task_id; $dbr_task = CTask::GetList(Array(), Array('NAME'=>$task_id, 'MODULE_ID'=>$module_id, "BINDING" => 'module')); if($ar_task = $dbr_task->Fetch()) { if($module_id == 'main' || $ar_task['SYS']!='Y') { $arOperations = CTask::GetOperations($ar_task["ID"], true); if($ar_task['SYS']!='Y') { $str .= 'CControllerClient::SetTaskSecurity('.CControllerGroupSettings::__PHPToString($task_id).', '.CControllerGroupSettings::__PHPToString($module_id).', '.CControllerGroupSettings::__PHPToString($arOperations).', '.CControllerGroupSettings::__PHPToString($ar_task["LETTER"]).');'."\r\n"; } if($module_id == 'main' && in_array('edit_subordinate_users', $arOperations)) { $bSubOrdGroups = true; } } } } } else $arUnDefinedPermissions[] = $module_id; } $str .= 'CControllerClient::RestoreGroupSecurity('.CControllerGroupSettings::__PHPToString($group_id).', '.CControllerGroupSettings::__PHPToString($arUnDefinedPermissions).');'."\r\n"; if($bSubOrdGroups) { $arSGroupsTmp = preg_split("/[\r\n,;]+/", $arSecurity["subord_groups"][$group_id]); $arSGroups = array(); foreach($arSGroupsTmp as $sGroupTmp) { $sGroupTmp = trim($sGroupTmp); if ($sGroupTmp != '') $arSGroups[] = $sGroupTmp; } $str .= 'CControllerClient::SetGroupSecurity('.CControllerGroupSettings::__PHPToString($group_id).', '.CControllerGroupSettings::__PHPToString($arDefinedPermissions).', '.CControllerGroupSettings::__PHPToString($arSGroups).');'."\r\n"; } else $str .= 'CControllerClient::SetGroupSecurity('.CControllerGroupSettings::__PHPToString($group_id).', '.CControllerGroupSettings::__PHPToString($arDefinedPermissions).');'."\r\n"; $arGroups[] = $group_id; } } $str .= 'CControllerClient::RestoreSecurity('.CControllerGroupSettings::__PHPToString($arGroups).');'."\r\n"; $arThirdSettings = CControllerGroupSettings::Get3rdPartyOptions(); foreach($arThirdSettings as $obOption) { $str .= $obOption->GetOptionPHPCode($arValues); } return $str; }
$GROUP_DEFAULT_RIGHT = COption::GetOptionString($module_id, "GROUP_DEFAULT_RIGHT", "D"); $GROUP_DEFAULT_TASK = CTask::GetIdByLetter($GROUP_DEFAULT_RIGHT,$module_id,'module'); if ($GROUP_DEFAULT_TASK) COption::SetOptionString($module_id, "GROUP_DEFAULT_TASK", $GROUP_DEFAULT_TASK); } ?> <tr> <td width="50%"><b><?php echo GetMessage("MAIN_BY_DEFAULT"); ?> </b></td> <td width="50%"> <script>var arSubordTasks = [];</script> <? $arTasksInModule = CTask::GetTasksInModules(true,$module_id,'module'); $nID = COperation::GetIDByName('edit_subordinate_users'); $arTasks = $arTasksInModule['main']; echo SelectBoxFromArray("GROUP_DEFAULT_TASK", $arTasks, htmlspecialcharsbx($GROUP_DEFAULT_TASK)); $show_subord = false; $arTaskIds = $arTasks['reference_id']; $arSubordTasks = Array(); $l = count($arTaskIds); for ($i=0;$i<$l;$i++) { $arOpInTask = CTask::GetOperations($arTaskIds[$i]); if (in_array($nID,$arOpInTask)) { $arSubordTasks[] = $arTaskIds[$i]; ?><script> arSubordTasks.push(<?php
?> <?php $tabControl->BeginNextTab(); ?> <tr> <td width="40%"><?php echo GetMessage("KERNEL"); ?> </td> <td width="60%"> <script>var arSubordTasks = [];</script> <?php $arTasksModules = CTask::GetTasksInModules(true, false, 'module'); $arTasks = CGroup::GetTasks($ID, true); $nID = COperation::GetIDByName('edit_subordinate_users'); $nID2 = COperation::GetIDByName('view_subordinate_users'); if ($strError != '') { $v = $_REQUEST["TASKS_main"]; } else { $v = isset($arTasks['main']) ? $arTasks['main'] : false; } echo SelectBoxFromArray("TASKS_main", $arTasksModules['main'], $v, GetMessage("DEFAULT")); $show_subord = false; $arTaskIds = $arTasksModules['main']['reference_id']; $l = count($arTaskIds); for ($i = 0; $i < $l; $i++) { $arOpInTask = CTask::GetOperations($arTaskIds[$i]); if (in_array($nID, $arOpInTask) || in_array($nID2, $arOpInTask)) { ?> <script> arSubordTasks.push(<?php