Exemple #1
0
	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;
	}
Exemple #2
0
	$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 
Exemple #3
0
    ?>
	<?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