%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/fileman/admin/ |
| Current File : /home/bitrix/www/bitrix/modules/fileman/admin/fileman_medialib_access.php |
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/prolog.php");
IncludeModuleLangFile(__FILE__);
CModule::IncludeModule("fileman");
$APPLICATION->SetTitle(GetMessage('FM_ML_ACCESS_TITLE'));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
if (!CMedialib::CanDoOperation('medialib_view_collection', 0) || !CMedialib::CanDoOperation('medialib_access', 0))
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$aContext = Array();
$aContext[] = Array(
"TEXT" => GetMessage("FM_ML_BACK_IN_ML"),
"ICON" => "",
"LINK" => "/bitrix/admin/fileman_medialib_admin.php?lang=".LANGUAGE_ID."&".bitrix_sessid_get(),
"TITLE" => GetMessage("FM_ML_BACK_IN_ML")
);
$menu = new CAdminContextMenu($aContext);
$menu->Show();
function __CanDoAccess($colId)
{
return CMedialib::CanDoOperation('medialib_view_collection', $colId) && CMedialib::CanDoOperation('medialib_access', $colId);
}
$ctRes = CMedialib::GetCollectionTree(array('CheckAccessFunk' => '__CanDoAccess'));
$curColId = isset($col_id, $ctRes['Collections'][$col_id]) ? intVal($col_id) : 0;
//Fetch groups
$arGroups = array();
$db_groups = CGroup::GetList($order="sort", $by="asc", array("ACTIVE" => "Y", "ADMIN" => "N"));
while($arRes = $db_groups->Fetch())
$arGroups[] = $arRes;
if($REQUEST_METHOD=="POST" && strlen($saveperm) > 0 && check_bitrix_sessid()) // TODO: access
{
$arTaskPerm = array();
for ($i = 0, $l = count($arGroups); $i < $l; $i++)
{
$id = $arGroups[$i]['ID'];
if (isset($_POST['g_'.$id]) && intVal($_POST['g_'.$id]) > 0)
$arTaskPerm[$id] = intVal($_POST['g_'.$id]);
}
CMedialib::SaveAccessPermissions($curColId, $arTaskPerm);
}
$arGroupTask = CMedialib::GetAccessPermissionsArray($curColId, $ctRes['Collections']);
$arTasks = Array();
$res = CTask::GetList(Array('LETTER' => 'asc'), Array('MODULE_ID' => 'fileman', 'BINDING' => 'medialib'));
while($arRes = $res->Fetch())
{
$name = $arRes['TITLE'];
if (strlen($name) == 0)
$name = $arRes['NAME'];
$arTasks[$arRes['ID']] = Array('title' => $name, 'letter' => $arRes['LETTER']);
}
?>
<form method="POST" action="<?= $APPLICATION->GetCurPage()?>?" name="ml_access_form">
<input type="hidden" name="site" value="<?= htmlspecialcharsbx($site) ?>">
<input type="hidden" name="saveperm" value="Y">
<input type="hidden" name="lang" value="<?= LANG ?>">
<?= bitrix_sessid_post()?>
<?
$aTabs = array(
array("DIV" => "medialib_access", "TAB" => GetMessage("FM_ML_TAB_NAME"), "ICON" => "fileman", "TITLE" => GetMessage("FM_ML_TAB_TITLE")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$tabControl->Begin();
?>
<?$tabControl->BeginNextTab();?>
<tr>
<td colspan="2">
<?= GetMessage('ML_SELECT_COLLECTION')?>: <select name="col_id" id="item_cols_sel_<?=$i?>" onchange="colsOnChange(this);">
<option value="0"><?= GetMessage('ML_ACCESS_FOR_ALL')?></option>
<?= CMedialib::_BuildCollectionsSelectOptions($ctRes['Collections'], $ctRes['arColTree'], 0, $curColId)?></select>
</td>
</tr>
<tr>
<td colspan="2">
<? /* INTERNAL TABLE */ ?>
<table class="internal">
<tr class="heading">
<td valign="middle" align="center" nowrap>
<?= GetMessage("ML_ACCESS_GROUP")?>
</td>
<td valign="top" align="center" nowrap>
<?= GetMessage("ML_ACCESS_TASK")?>
</td>
</tr>
<?
//for each groups
foreach ($arGroups as $arGroup)
{
$arGroup['ID'] = intVal($arGroup['ID']);
?>
<tr valign="top">
<td>
[<a href="/bitrix/admin/group_edit.php?ID=<?= $arGroup['ID']?>&lang=<?=LANGUAGE_ID?>"><?= $arGroup['ID']?></a>] <?= htmlspecialcharsex($arGroup['NAME'])?>:
</td>
<td>
<select name="g_<?= $arGroup['ID']?>" class="typeselect">
<?foreach ($arTasks as $id => $ar):?>
<option value="<?=$id?>"<?if ($arGroupTask[$arGroup['ID']] == $id) echo" selected";?>><?= htmlspecialcharsex($ar['title']);?></option>
<?endforeach;?>
</select>
</td>
</tr>
<?
}
?>
</table>
<? /* INTERNAL TABLE */ ?>
</td>
</tr>
<?$tabControl->EndTab();?>
<?
$tabControl->Buttons(
array(
"disabled" => false,
"back_url" => "fileman_medialib_admin.php?".$addUrl."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()
)
);
?>
<?$tabControl->End();?>
</form>
<script>
function colsOnChange(pSel){window.location = "/bitrix/admin/fileman_medialib_access.php?col_id=" + pSel.value + "&lang=<?= LANGUAGE_ID?>&<?= bitrix_sessid_get()?>";}
</script>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>