40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
|
|
<?php
|
|||
|
|
$mid = "conmed.authserver";
|
|||
|
|
if($_POST['Update'] && check_bitrix_sessid()){
|
|||
|
|
$rawList = $_POST['client_list'];
|
|||
|
|
$lines = explode("\n", str_replace("\r", "", $rawList));
|
|||
|
|
$processedLines = [];
|
|||
|
|
|
|||
|
|
foreach($lines as $line) {
|
|||
|
|
$line = trim($line);
|
|||
|
|
if(empty($line)) continue;
|
|||
|
|
|
|||
|
|
// Лимит 3 позволяет корректно обрабатывать https:// в третьем поле
|
|||
|
|
$pair = explode(":", $line, 3);
|
|||
|
|
$clientId = trim($pair[0]);
|
|||
|
|
$secret = trim($pair[1]);
|
|||
|
|
$domain = isset($pair[2]) ? trim($pair[2], " /") : "";
|
|||
|
|
|
|||
|
|
if (strpos($secret, '$2y$') !== 0) {
|
|||
|
|
$secret = password_hash($secret, PASSWORD_BCRYPT);
|
|||
|
|
}
|
|||
|
|
$processedLines[] = $clientId . ":" . $secret . ":" . $domain;
|
|||
|
|
}
|
|||
|
|
\Bitrix\Main\Config\Option::set($mid, "client_list", implode("\n", $processedLines));
|
|||
|
|
}
|
|||
|
|
$clientList = \Bitrix\Main\Config\Option::get($mid, "client_list");
|
|||
|
|
$tabControl = new CAdminTabControl("tabControl", [["DIV"=>"edit1","TAB"=>"Настройки","TITLE"=>"Доверенные сайты"]]);
|
|||
|
|
$tabControl->Begin();
|
|||
|
|
?>
|
|||
|
|
<form method="post">
|
|||
|
|
<?=bitrix_sessid_post()?>
|
|||
|
|
<?$tabControl->BeginNextTab()?>
|
|||
|
|
<tr>
|
|||
|
|
<td width="40%" valign="top">Список клиентов (ID:SECRET:DOMAIN):</td>
|
|||
|
|
<td width="60%">
|
|||
|
|
<textarea name="client_list" rows="10" cols="90" style="font-family:monospace;"><?=htmlspecialcharsbx($clientList)?></textarea>
|
|||
|
|
<br>
|
|||
|
|
<small>Формат: <b>ID : SECRET : https://id.con-med.ru</b> (с протоколом, без слеша в конце)</small>
|
|||
|
|
</td>
|
|||
|
|
</tr>
|
|||
|
|
<?$tabControl->Buttons()?><input type="submit" name="Update" value="Сохранить" class="adm-btn-save"><?$tabControl->End()?></form>
|